UNPKG

react-intlayer

Version:

Easily internationalize i18n your React applications with type-safe multilingual content management.

38 lines 1.2 kB
"use client"; import configuration from "@intlayer/config/built"; import { useCallback, useContext } from "react"; import { IntlayerClientContext } from "./IntlayerProvider.mjs"; import { useLocaleCookie } from "./useLocaleCookie.mjs"; const useLocale = ({ onLocaleChange } = {}) => { const { defaultLocale, locales: availableLocales } = configuration?.internationalization ?? {}; const { locale, setLocale: setLocaleState } = useContext( IntlayerClientContext ); const { setLocaleCookie } = useLocaleCookie(); const setLocale = useCallback( (locale2) => { if (!availableLocales?.map(String).includes(locale2)) { console.error(`Locale ${locale2} is not available`); return; } setLocaleState(locale2); setLocaleCookie(locale2); onLocaleChange?.(locale2); }, [availableLocales, onLocaleChange, setLocaleCookie, setLocaleState] ); return { locale, // Current locale defaultLocale, // Principal locale defined in config availableLocales, // List of the available locales defined in config setLocale // Function to set the locale }; }; export { useLocale }; //# sourceMappingURL=useLocale.mjs.map