Files
sre-01-tokenization/packages/nextjs/hooks/scaffold-eth/useDisplayUsdMode.ts
2026-01-10 18:17:37 +07:00

22 lines
811 B
TypeScript

import { useCallback, useEffect, useState } from "react";
import { useGlobalState } from "~~/services/store/store";
export const useDisplayUsdMode = ({ defaultUsdMode = false }: { defaultUsdMode?: boolean }) => {
const nativeCurrencyPrice = useGlobalState(state => state.nativeCurrency.price);
const isPriceFetched = nativeCurrencyPrice > 0;
const predefinedUsdMode = isPriceFetched ? Boolean(defaultUsdMode) : false;
const [displayUsdMode, setDisplayUsdMode] = useState(predefinedUsdMode);
useEffect(() => {
setDisplayUsdMode(predefinedUsdMode);
}, [predefinedUsdMode]);
const toggleDisplayUsdMode = useCallback(() => {
if (isPriceFetched) {
setDisplayUsdMode(!displayUsdMode);
}
}, [displayUsdMode, isPriceFetched]);
return { displayUsdMode, toggleDisplayUsdMode };
};