react-intlayer
Version:
Easily internationalize i18n your React applications with type-safe multilingual content management.
24 lines (21 loc) • 1.27 kB
JavaScript
'use client';
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
const require_client_IntlayerProvider = require('./IntlayerProvider.cjs');
const require_client_useDictionary = require('./useDictionary.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/useDictionaryAsync.ts
/**
* On the server side, Hook that transform a dictionary and return the content
*
* If the locale is not provided, it will use the locale from the client context
*/
const useDictionaryAsync = async (dictionaryPromise, locale) => {
const { locale: currentLocale } = (0, react.useContext)(require_client_IntlayerProvider.IntlayerClientContext);
const localeTarget = (0, react.useMemo)(() => locale ?? currentLocale ?? _intlayer_config_built.default?.internationalization.defaultLocale, [currentLocale, locale]);
return require_client_useDictionary.useDictionary(await (0, react.useMemo)(async () => await dictionaryPromise[localeTarget]?.(), [dictionaryPromise, localeTarget]), localeTarget);
};
//#endregion
exports.useDictionaryAsync = useDictionaryAsync;
//# sourceMappingURL=useDictionaryAsync.cjs.map