@@ -35,6 +35,7 @@ import {
3535 UNSET_VALUE ,
3636 BooleanControl ,
3737 EnumControl ,
38+ NumberControl ,
3839 StringControl ,
3940 WorkerGroupControl ,
4041 type WorkerGroup ,
@@ -352,6 +353,22 @@ export default function AdminFeatureFlagsRoute() {
352353 />
353354 ) }
354355
356+ { control . type === "number" && (
357+ < NumberControl
358+ value = { isSet ? ( values [ key ] as number ) : undefined }
359+ min = { control . min }
360+ max = { control . max }
361+ onChange = { ( val ) => {
362+ if ( val === undefined ) {
363+ unsetFlag ( key ) ;
364+ } else {
365+ setFlagValue ( key , val ) ;
366+ }
367+ } }
368+ dimmed = { ! isSet }
369+ />
370+ ) }
371+
355372 { control . type === "string" && (
356373 < StringControl
357374 value = { isSet ? ( values [ key ] as string ) : "" }
@@ -400,6 +417,7 @@ export default function AdminFeatureFlagsRoute() {
400417 lockedKeys = { unlocked ? [ ] : GLOBAL_LOCKED_FLAGS }
401418 onConfirm = { handleSave }
402419 isSaving = { isSaving }
420+ saveError = { saveError }
403421 />
404422 </ main >
405423 ) ;
@@ -467,6 +485,7 @@ function ConfirmDialog({
467485 lockedKeys,
468486 onConfirm,
469487 isSaving,
488+ saveError,
470489} : {
471490 open : boolean ;
472491 onOpenChange : ( open : boolean ) => void ;
@@ -476,6 +495,7 @@ function ConfirmDialog({
476495 lockedKeys : readonly string [ ] ;
477496 onConfirm : ( ) => void ;
478497 isSaving : boolean ;
498+ saveError : string | null ;
479499} ) {
480500 const editableKeys = Object . keys ( controlTypes )
481501 . filter ( ( key ) => ! lockedKeys . includes ( key ) )
@@ -519,7 +539,7 @@ function ConfirmDialog({
519539 These changes affect all organizations globally. Please review carefully.
520540 </ DialogDescription >
521541
522- < div className = "flex flex-col gap-2 pb-2" >
542+ < div className = "flex max-h-[50vh] flex-col gap-2 overflow-y-auto pb-2" >
523543 { changes . length === 0 ? (
524544 < p className = "text-sm text-text-dimmed" > No changes to apply.</ p >
525545 ) : (
@@ -546,6 +566,8 @@ function ConfirmDialog({
546566 ) }
547567 </ div >
548568
569+ { saveError && < Callout variant = "error" > { saveError } </ Callout > }
570+
549571 < DialogFooter >
550572 < Button variant = "tertiary/small" onClick = { ( ) => onOpenChange ( false ) } >
551573 Cancel
0 commit comments