diff --git a/src/hooks/useLocalStorage.ts b/src/hooks/useLocalStorage.ts index 8b6d57827..e1ad57fb4 100644 --- a/src/hooks/useLocalStorage.ts +++ b/src/hooks/useLocalStorage.ts @@ -35,28 +35,23 @@ export const useLocalStorage = ( window.dispatchEvent(new StorageEvent('storage', { key, newValue: JSON.stringify(value) })) }, [key, value, defaultValue]) - useEffect(() => { - const handleStorageChange = (event: StorageEvent) => { + const handleStorageChange = useCallback( + (event: StorageEvent) => { if (event.key === key && event.newValue && JSON.stringify(value) !== event.newValue) { setValue(JSON.parse(event.newValue!)) } - } - - window.addEventListener('storage', handleStorageChange) + }, + [key, value], + ) - return () => { - window.removeEventListener('storage', handleStorageChange) - } - }, [key, value]) + useEvent('storage', handleStorageChange) return [value, setValue] } -type Value = T | null +type LocalStorageValue = T | null -export function useReadLocalStorage(key: string): Value { - // Get from local storage then - // parse stored json or return initialValue +export function useReadLocalStorage(key: string): LocalStorageValue { const readValue = useCallback((): Value => { return getStorageValue(key, null) }, [key]) diff --git a/src/transaction-flow/input/SelectPrimaryName/SelectPrimaryName-flow.tsx b/src/transaction-flow/input/SelectPrimaryName/SelectPrimaryName-flow.tsx index adc992b94..966dcd154 100644 --- a/src/transaction-flow/input/SelectPrimaryName/SelectPrimaryName-flow.tsx +++ b/src/transaction-flow/input/SelectPrimaryName/SelectPrimaryName-flow.tsx @@ -17,7 +17,6 @@ import { } from '@app/components/@molecules/NameTableHeader/NameTableHeader' import { ScrollBoxWithSpinner, SpinnerRow } from '@app/components/@molecules/ScrollBoxWithSpinner' import { useNamesForAddress } from '@app/hooks/ensjs/subgraph/useNamesForAddress' -import { useHasGlobalError } from '@app/hooks/errors/useHasGlobalError' import { useGetPrimaryNameTransactionFlowItem } from '@app/hooks/primary/useGetPrimaryNameTransactionFlowItem' import { useResolverStatus } from '@app/hooks/resolver/useResolverStatus' import useDebouncedCallback from '@app/hooks/useDebouncedCallback' @@ -308,8 +307,6 @@ const SelectPrimaryName = ({ data: { address }, dispatch, onDismiss }: Props) => const hasNoEligibleNames = !searchQuery && namesData?.pages.length === 1 && namesData.pages[0].length === 0 - const hasGlobalError = useHasGlobalError() - if (isLoading) return ( @@ -398,7 +395,7 @@ const SelectPrimaryName = ({ data: { address }, dispatch, onDismiss }: Props) =>