* useDydxClient: Add screen endpoint * Screen api in onboarding flow * PnlChart rounding * UnauthorizedDialog * Add RateLimitDialog * Update dialog open logic * nits * Screen before Transfer * Validate network, remove input autofill color * Use screenAddresses from dydxClient * Check recipientAddresses * lock-file * Change Wallet Restricted Dialog to v4-blocked message * nits * Unused param * consolidate environment validateFn * Remove extra space, simplify WithdrawForm error msg * Simply map logic, rearrange priority of screened messages * WalletRestricted -> RestrictedWallet * Update restriction modal title and add something went wrong * Handle 429 rate limit
30 lines
902 B
TypeScript
30 lines
902 B
TypeScript
import { useEffect } from 'react';
|
|
import { useDispatch } from 'react-redux';
|
|
|
|
import { LocalStorageKey } from '@/constants/localStorage';
|
|
|
|
import { DEFAULT_APP_ENVIRONMENT, type DydxNetwork } from '@/constants/networks';
|
|
|
|
import { useLocalStorage } from '@/hooks';
|
|
|
|
import { initializeLocalization } from '@/state/app';
|
|
|
|
import abacusStateManager from '@/lib/abacus';
|
|
import { validateAgainstAvailableEnvironments } from '@/lib/network';
|
|
|
|
export const useInitializePage = () => {
|
|
const dispatch = useDispatch();
|
|
|
|
// Sync localStorage value with Redux
|
|
const [localStorageNetwork] = useLocalStorage<DydxNetwork>({
|
|
key: LocalStorageKey.SelectedNetwork,
|
|
defaultValue: DEFAULT_APP_ENVIRONMENT,
|
|
validateFn: validateAgainstAvailableEnvironments,
|
|
});
|
|
|
|
useEffect(() => {
|
|
dispatch(initializeLocalization());
|
|
abacusStateManager.start({ network: localStorageNetwork });
|
|
}, []);
|
|
};
|