diff --git a/packages/arb-token-bridge-ui/src/components/TransferPanel/SettingsDialog.tsx b/packages/arb-token-bridge-ui/src/components/TransferPanel/SettingsDialog.tsx index a24eb1ae5c..3c385b5d17 100644 --- a/packages/arb-token-bridge-ui/src/components/TransferPanel/SettingsDialog.tsx +++ b/packages/arb-token-bridge-ui/src/components/TransferPanel/SettingsDialog.tsx @@ -191,7 +191,10 @@ export const SettingsDialog = React.memo((props: UseDialogProps) => { setQueryParams({ destinationAddress: undefined }) setDestinationAddress(undefined) } else { - setQueryParams({ destinationAddress }) + // If string is empty, we want to remove the param from URL (passing undefined) + setQueryParams({ + destinationAddress: destinationAddress || undefined + }) } }} isFooterHidden diff --git a/packages/arb-token-bridge-ui/src/hooks/useArbQueryParams.tsx b/packages/arb-token-bridge-ui/src/hooks/useArbQueryParams.tsx index 8ddc5b509b..5a7451bd2d 100644 --- a/packages/arb-token-bridge-ui/src/hooks/useArbQueryParams.tsx +++ b/packages/arb-token-bridge-ui/src/hooks/useArbQueryParams.tsx @@ -132,7 +132,8 @@ export const useArbQueryParams = () => { setQueryParams (setter for all query state variables with debounced accumulator) ] */ - const [queryParams, setQueryParams] = useQueryParams() + const [queryParams, setQueryParams] = + useQueryParams() const debouncedSetQueryParams = useCallback( ( @@ -145,7 +146,7 @@ export const useArbQueryParams = () => { return [queryParams, debouncedSetQueryParams] as const } -export const queryParamProviderOptions: QueryParamOptions = { +export const queryParamProviderOptions = { searchStringToObject: queryString.parse, objectToSearchString: queryString.stringify, updateType: 'replaceIn', // replace just a single parameter when updating query-state, leaving the rest as is @@ -164,7 +165,7 @@ export const queryParamProviderOptions: QueryParamOptions = { mode: withDefault(ModeParam, undefined), // mode: 'embed', or undefined for normal mode theme: withDefault(ThemeParam, defaultTheme) // theme customization } -} +} as const satisfies QueryParamOptions export function ArbQueryParamProvider({ children }: {