UNPKG

react-intlayer

Version:

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

39 lines (36 loc) 1.46 kB
'use client'; const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs'); const require_client_useLocaleStorage = require('./useLocaleStorage.cjs'); const require_client_IntlayerProvider = require('./IntlayerProvider.cjs'); let react = require("react"); let _intlayer_config_built = require("@intlayer/config/built"); _intlayer_config_built = require_rolldown_runtime.__toESM(_intlayer_config_built); //#region src/client/useLocale.ts /** * On the client side, hook to get the current locale and all related fields */ const useLocale = ({ isCookieEnabled, onLocaleChange } = {}) => { const { defaultLocale, locales: availableLocales } = _intlayer_config_built.default?.internationalization ?? {}; const { locale, setLocale: setLocaleState, isCookieEnabled: isCookieEnabledContext } = (0, react.useContext)(require_client_IntlayerProvider.IntlayerClientContext); return { locale, defaultLocale, availableLocales, setLocale: (0, react.useCallback)((locale$1) => { if (!availableLocales?.map(String).includes(locale$1)) { console.error(`Locale ${locale$1} is not available`); return; } setLocaleState(locale$1); require_client_useLocaleStorage.setLocaleInStorage(locale$1, isCookieEnabled ?? isCookieEnabledContext ?? true); onLocaleChange?.(locale$1); }, [ availableLocales, onLocaleChange, setLocaleState ]) }; }; //#endregion exports.useLocale = useLocale; //# sourceMappingURL=useLocale.cjs.map