@@ -46,17 +46,12 @@ const statBadge = cva(
4646 unsent : 'bg-amber-100 text-amber-700' ,
4747 } ,
4848 clickable : {
49- true : 'cursor-pointer border border-transparent hover:border-opacity-50' ,
50- false : '' ,
51- } ,
52- selected : {
53- true : 'border-opacity-100' ,
49+ true : 'cursor-pointer border border-transparent hover:border-current' ,
5450 false : '' ,
5551 } ,
5652 } ,
5753 defaultVariants : {
5854 clickable : false ,
59- selected : false ,
6055 } ,
6156 } ,
6257)
@@ -80,19 +75,17 @@ type BadgeProps = VariantProps<typeof statBadge> & {
8075 type : keyof typeof typeIcons
8176 text ?: number | string
8277 onClick ?: ( ) => void
83- isSelected ?: boolean
8478}
8579
86- const Badge = ( { text, type, onClick, isSelected } : BadgeProps ) => {
80+ const Badge = ( { text, type, onClick } : BadgeProps ) => {
8781 const Icon = typeIcons [ type ]
8882 const Component = onClick ? 'button' : 'span'
8983
9084 return (
9185 < Component
9286 className = { twMerge ( statBadge ( {
9387 type,
94- clickable : ! ! onClick ,
95- selected : ! ! isSelected
88+ clickable : ! ! onClick
9689 } ) ) }
9790 onClick = { onClick }
9891 { ...( onClick && { type : 'button' } ) }
@@ -603,22 +596,29 @@ function filterControls(
603596 < Badge type = 'code' />
604597 </ label >
605598 </ div >
606- < div className = 'flex rounded-md overflow-hidden' >
599+ < div className = 'relative flex rounded-md overflow-hidden' >
600+ { /* Sliding indicator */ }
601+ < div
602+ className = 'absolute top-0 h-0.5 bg-current transition-all duration-200'
603+ style = { {
604+ width : '33.33%' ,
605+ left : filters . sentFilter === 'unsent' ? '0%' :
606+ filters . sentFilter === 'all' ? '33.33%' : '66.66%'
607+ } }
608+ />
609+
607610 < Badge
608611 type = 'unsent'
609612 onClick = { ( ) => updateFilter ( 'sentFilter' , 'unsent' ) }
610- isSelected = { filters . sentFilter === 'unsent' }
611613 />
612614 < Badge
613615 type = 'blank'
614616 text = 'both'
615617 onClick = { ( ) => updateFilter ( 'sentFilter' , 'all' ) }
616- isSelected = { filters . sentFilter === 'all' }
617618 />
618619 < Badge
619620 type = 'sent'
620621 onClick = { ( ) => updateFilter ( 'sentFilter' , 'sent' ) }
621- isSelected = { filters . sentFilter === 'sent' }
622622 />
623623 </ div >
624624 </ div >
0 commit comments