import { useBreakpointValue, useTheme as useChakraTheme, useColorModeValue, useToken, } from '@chakra-ui/react'; import type { Theme } from '~/types'; export { useBreakpointValue, useColorMode, useColorModeValue as useColorValue, useToken, } from '@chakra-ui/react'; /** * Determine if device is mobile or desktop based on Chakra UI theme breakpoints. */ export const useMobile = (): boolean => useBreakpointValue({ base: true, md: true, lg: false, xl: false }) ?? true; /** * Get the current theme object. */ export const useTheme = (): Theme.Full => useChakraTheme(); /** * Convenience function to combine Chakra UI's useToken & useColorModeValue. */ export const useColorToken = ( token: keyof Theme.Full, light: L, dark: D, ): L | D => useColorModeValue(useToken(token, light), useToken(token, dark));