1- //import { DraftStats } from '@/lib/enhancers/draftStats'
2-
31import { GitPullRequestIcon , IssueOpenedIcon } from '@primer/octicons-react'
42import { cva , type VariantProps } from 'class-variance-authority'
53import {
@@ -9,14 +7,13 @@ import {
97 EyeOff ,
108 Image ,
119 Link ,
12- LucideProps ,
1310 MailCheck ,
1411 MessageSquareDashed ,
1512 Monitor ,
1613 Search ,
1714 TextSelect ,
1815} from 'lucide-react'
19- import react , { useMemo , useState } from 'react'
16+ import { useMemo , useState } from 'react'
2017import { twMerge } from 'tailwind-merge'
2118import type { CommentSpot } from '@/lib/enhancer'
2219import type { DraftStats } from '@/lib/enhancers/draftStats'
@@ -97,7 +94,6 @@ const Badge = ({ text, type }: BadgeProps) => {
9794 )
9895}
9996
100-
10197interface Segment {
10298 text ?: string
10399 type : keyof typeof typeIcons
@@ -111,30 +107,31 @@ interface MultiSegmentProps {
111107
112108const MultiSegment = ( { segments, value, onValueChange } : MultiSegmentProps ) => {
113109 return (
114- < div className = " inline-flex items-center gap-0" >
110+ < div className = ' inline-flex items-center gap-0' >
115111 { segments . map ( ( segment , index ) => {
116112 const Icon = typeIcons [ segment . type ]
117113 const isFirst = index === 0
118114 const isLast = index === segments . length - 1
119115
120- const roundedClasses = isFirst && isLast
121- ? ''
122- : isFirst
123- ? '!rounded-r-none'
124- : isLast
125- ? '!rounded-l-none'
126- : '!rounded-none'
116+ const roundedClasses =
117+ isFirst && isLast
118+ ? ''
119+ : isFirst
120+ ? '!rounded-r-none'
121+ : isLast
122+ ? '!rounded-l-none'
123+ : '!rounded-none'
127124
128125 return (
129126 < button
130- key = { index }
127+ key = { segment . value }
131128 className = { `${ statBadge ( {
132129 clickable : true ,
133130 selected : value === segment . value ,
134131 type : segment . type ,
135132 } ) } ${ roundedClasses } `}
136133 onClick = { ( ) => onValueChange ( segment . value ) }
137- type = " button"
134+ type = ' button'
138135 >
139136 { segment . type === 'blank' || < Icon className = 'w-3 h-3' /> }
140137 { segment . text }
@@ -392,7 +389,6 @@ export const ClaudePrototype = () => {
392389 const updateFilter = < K extends keyof FilterState > ( key : K , value : FilterState [ K ] ) => {
393390 setFilters ( ( prev ) => ( { ...prev , [ key ] : value } ) )
394391 }
395- const [ showFilters , setShowFilters ] = useState ( false )
396392
397393 const filteredDrafts = useMemo ( ( ) => {
398394 let filtered = [ ...drafts ]
@@ -571,24 +567,27 @@ export const ClaudePrototype = () => {
571567 < div className = 'relative flex overflow-hidden' >
572568 < MultiSegment
573569 value = { filters . sentFilter }
574- onValueChange = { ( value ) => updateFilter ( 'sentFilter' , value as 'all' | 'sent' | 'unsent' ) }
570+ onValueChange = { ( value ) =>
571+ updateFilter ( 'sentFilter' , value as 'all' | 'sent' | 'unsent' )
572+ }
575573 segments = { [
576574 {
577- type : 'unsent' ,
578575 text : '' ,
579- value : 'unsent'
576+ type : 'unsent' ,
577+ value : 'unsent' ,
580578 } ,
581579 {
582- type : 'blank' ,
583580 text : 'both' ,
584- value : 'all'
581+ type : 'blank' ,
582+ value : 'all' ,
585583 } ,
586584 {
587- type : 'sent' ,
588585 text : '' ,
589- value : 'sent'
590- }
591- ] } />
586+ type : 'sent' ,
587+ value : 'sent' ,
588+ } ,
589+ ] }
590+ />
592591 </ div >
593592 </ div >
594593 </ div >
0 commit comments