@@ -31,7 +31,6 @@ import {
3131 SheetHeader ,
3232 SheetTitle ,
3333} from '@/components/ui/sheet' ;
34- import { Slider } from '@/components/ui/slider' ;
3534import { Switch } from '@/components/ui/switch' ;
3635import { Textarea } from '@/components/ui/textarea' ;
3736import { trpc } from '@/lib/trpc' ;
@@ -96,7 +95,6 @@ export function FlagSheet({
9695 flag,
9796} : FlagSheetProps ) {
9897 const [ keyManuallyEdited , setKeyManuallyEdited ] = useState ( false ) ;
99- const [ sliderValue , setSliderValue ] = useState ( 0 ) ;
10098 const isEditing = Boolean ( flag ) ;
10199
102100 const form = useForm < FlagFormData > ( {
@@ -132,10 +130,8 @@ export function FlagSheet({
132130 rolloutPercentage : flag . rolloutPercentage || 0 ,
133131 rules : ( flag . rules as any [ ] ) || [ ] ,
134132 } ) ;
135- setSliderValue ( flag . rolloutPercentage || 0 ) ;
136133 } else {
137134 form . reset ( ) ;
138- setSliderValue ( 0 ) ;
139135 }
140136 setKeyManuallyEdited ( false ) ;
141137 }
@@ -425,48 +421,39 @@ export function FlagSheet({
425421 control = { form . control }
426422 name = "rolloutPercentage"
427423 render = { ( { field } ) => {
428- useEffect ( ( ) => {
429- const formValue = Number ( field . value ) || 0 ;
430- if ( formValue !== sliderValue ) {
431- setSliderValue ( formValue ) ;
432- }
433- } , [ field . value ] ) ;
424+ const currentValue = Number ( field . value ) || 0 ;
434425
435426 return (
436427 < FormItem >
437428 < div className = "flex items-center justify-between" >
438429 < FormLabel > Rollout Percentage</ FormLabel >
439430 < span className = "font-mono font-semibold text-sm" >
440- { sliderValue } %
431+ { currentValue } %
441432 </ span >
442433 </ div >
443434 < FormControl >
444435 < div className = "space-y-3" >
445- < Slider
446- className = "w-full"
447- max = { 100 }
448- min = { 0 }
449- onValueChange = { ( values ) => {
450- const newValue = values [ 0 ] ;
451- setSliderValue ( newValue ) ;
452- field . onChange ( newValue ) ;
453- } }
454- step = { 5 }
455- value = { [ sliderValue ] }
436+ < input
437+ className = "slider h-2 w-full cursor-pointer appearance-none rounded-lg bg-gray-200 dark:bg-gray-700"
438+ max = "100"
439+ min = "0"
440+ onChange = { ( e ) =>
441+ field . onChange ( Number ( e . target . value ) )
442+ }
443+ step = "5"
444+ type = "range"
445+ value = { currentValue }
456446 />
457447 < div className = "flex justify-center gap-2" >
458448 { [ 0 , 25 , 50 , 75 , 100 ] . map ( ( preset ) => (
459449 < button
460450 className = { `rounded border px-2 py-1 text-xs transition-colors ${
461- sliderValue === preset
451+ currentValue === preset
462452 ? 'border-primary bg-primary text-primary-foreground'
463453 : 'border-border hover:border-primary/50'
464454 } `}
465455 key = { preset }
466- onClick = { ( ) => {
467- setSliderValue ( preset ) ;
468- field . onChange ( preset ) ;
469- } }
456+ onClick = { ( ) => field . onChange ( preset ) }
470457 type = "button"
471458 >
472459 { preset } %
0 commit comments