@@ -205,7 +205,7 @@ export function CreateBulkActionInspector({
205205 const fetcher = useTypedFetcher < typeof loader > ( ) ;
206206 const { value, replace } = useSearchParams ( ) ;
207207 const [ action , setAction ] = useState < BulkActionAction > (
208- ( value ( "action" ) ?? "replay" ) as BulkActionAction
208+ bulkActionActionFromString ( value ( "action" ) )
209209 ) ;
210210 const location = useOptimisticLocation ( ) ;
211211 const user = useUser ( ) ;
@@ -217,10 +217,10 @@ export function CreateBulkActionInspector({
217217 } , [ organization . id , project . id , environment . id , location . search ] ) ;
218218
219219 useEffect ( ( ) => {
220- setAction ( ( value ( "action" ) ?? "replay" ) as BulkActionAction ) ;
220+ setAction ( bulkActionActionFromString ( value ( "action" ) ) ) ;
221221 } , [ value ( "action" ) ] ) ;
222222
223- const mode = value ( "mode" ) ?? "filter" ;
223+ const mode = bulkActionModeFromString ( value ( "mode" ) ) ;
224224
225225 const data = fetcher . data != null ? fetcher . data : undefined ;
226226
@@ -367,8 +367,8 @@ export function CreateBulkActionInspector({
367367 < Label > Preview</ Label >
368368 < BulkActionFilterSummary
369369 selected = { mode === "selected" ? selectedItems . size : data ?. count }
370- mode = { mode as BulkActionMode }
371- action = { action as BulkActionAction }
370+ mode = { mode }
371+ action = { action }
372372 filters = { filters }
373373 />
374374 </ InputGroup >
@@ -404,8 +404,8 @@ export function CreateBulkActionInspector({
404404 < div className = "flex flex-col gap-3 divide-y divide-grid-dimmed pt-2" >
405405 < BulkActionFilterSummary
406406 selected = { mode === "selected" ? selectedItems . size : data ?. count }
407- mode = { mode as BulkActionMode }
408- action = { action as BulkActionAction }
407+ mode = { mode }
408+ action = { action }
409409 filters = { filters }
410410 />
411411 < Paragraph variant = "small" className = "pt-3" >
@@ -457,3 +457,17 @@ export function CreateBulkActionInspector({
457457 </ Form >
458458 ) ;
459459}
460+
461+ function bulkActionModeFromString ( value : string | undefined ) : BulkActionMode {
462+ if ( ! value ) return "filter" ;
463+ const parsed = BulkActionMode . safeParse ( value ) ;
464+ if ( ! parsed . success ) return "filter" ;
465+ return parsed . data ;
466+ }
467+
468+ function bulkActionActionFromString ( value : string | undefined ) : BulkActionAction {
469+ if ( ! value ) return "replay" ;
470+ const parsed = BulkActionAction . safeParse ( value ) ;
471+ if ( ! parsed . success ) return "replay" ;
472+ return parsed . data ;
473+ }
0 commit comments