UNPKG

@dragonaxe/i18n

Version:
54 lines (53 loc) 1.78 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const React = require("react"); const factory = require("./factory-B8AWz8Jy.cjs"); const i18nContext = React.createContext({ localeId: "", locales: [], setLocaleId: (localeId) => { }, getCdnService: () => { throw new Error("Cdn Service not defined."); } }); const useI18nContext = () => { return React.useContext(i18nContext); }; const I18nContextProvider = (props) => { const fact = new factory.PrismicClientFactory(); const client = fact.getClient(props.repoName, props.publicToken); const cdnServiceService = new factory.PrismicMultilangualCdnService(client); const getStoredLocale = () => { if (globalThis.localStorage) { const storedLocale = localStorage.getItem(props.localstorageLocalKey); if (storedLocale) { return storedLocale; } } return props.fallbackLocale; }; const [currentLocale, setCurrentLocale] = React.useState(getStoredLocale()); const [locales, setLocales] = React.useState([]); const [cdnService] = React.useState(cdnServiceService); const handleChangeLocale = (localeId) => { if (globalThis.localStorage) { localStorage.setItem(props.localstorageLocalKey, localeId); } setCurrentLocale(localeId); }; const contextProps = { localeId: currentLocale, locales, setLocaleId: handleChangeLocale, getCdnService: () => cdnService }; React.useEffect(() => { cdnService.getLocales().then((localesResult) => { setLocales(localesResult); }); }, []); return /* @__PURE__ */ React.createElement(i18nContext.Provider, { value: contextProps }, props.children); }; exports.I18nContextProvider = I18nContextProvider; exports.useI18nContext = useI18nContext;