'use client' import { Button } from 'components/Button' import { Gear } from 'components/Icons' import Overlay from 'components/Overlay/Overlay' import Switch from 'components/Switch' import Text from 'components/Text' import { Tooltip } from 'components/Tooltip' import { ASSETS } from 'constants/assets' import { DISPLAY_CURRENCY_KEY, ENABLE_ANIMATIONS_KEY } from 'constants/localStore' import { useAnimations } from 'hooks/useAnimations' import useToggle from 'hooks/useToggle' import useStore from 'store' import { getDisplayCurrencies } from 'utils/assets' export default function Settings() { useAnimations() const [showMenu, setShowMenu] = useToggle() const enableAnimations = useStore((s) => s.enableAnimations) const displayCurrency = useStore((s) => s.displayCurrency) const displayCurrencies = getDisplayCurrencies() const storageDisplayCurrency = localStorage.getItem(DISPLAY_CURRENCY_KEY) if (storageDisplayCurrency) { const storedDisplayCurrency = ASSETS.find( (asset) => asset.symbol === JSON.parse(storageDisplayCurrency).symbol, ) if (storedDisplayCurrency && storedDisplayCurrency !== displayCurrency) { setDisplayCurrency(storedDisplayCurrency) } } function handleReduceMotion() { useStore.setState({ enableAnimations: !enableAnimations }) if (typeof window !== 'undefined') window.localStorage.setItem(ENABLE_ANIMATIONS_KEY, enableAnimations ? 'false' : 'true') } function handleCurrencyChange(e: React.ChangeEvent) { const displayCurrency = displayCurrencies.find((c) => c.symbol === e.target.value) if (!displayCurrency) return setDisplayCurrency(displayCurrency) } function setDisplayCurrency(displayCurrency: Asset) { useStore.setState({ displayCurrency: displayCurrency }) localStorage.setItem(DISPLAY_CURRENCY_KEY, JSON.stringify(displayCurrency)) } return (
) }