react-intlayer
Version:
Easily internationalize i18n your React applications with type-safe multilingual content management.
96 lines • 4.25 kB
JavaScript
;
"use client";
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var IntlayerProvider_exports = {};
__export(IntlayerProvider_exports, {
IntlayerClientContext: () => IntlayerClientContext,
IntlayerProvider: () => IntlayerProvider,
IntlayerProviderContent: () => IntlayerProviderContent,
useIntlayerContext: () => useIntlayerContext
});
module.exports = __toCommonJS(IntlayerProvider_exports);
var import_jsx_runtime = require("react/jsx-runtime");
var import_built = __toESM(require("@intlayer/config/built"));
var import_core = require("@intlayer/core");
var import_editor_react = require("@intlayer/editor-react");
var import_react = require("react");
var import_IntlayerEditorProvider = require('../editor/IntlayerEditorProvider.cjs');
var import_useLocaleCookie = require('./useLocaleCookie.cjs');
const IntlayerClientContext = (0, import_react.createContext)({
locale: import_useLocaleCookie.localeCookie ?? import_built.default?.internationalization?.defaultLocale,
setLocale: () => null,
disableEditor: false
});
const useIntlayerContext = () => (0, import_react.useContext)(IntlayerClientContext);
const IntlayerProviderContent = ({
locale: localeProp,
defaultLocale: defaultLocaleProp,
children,
setLocale: setLocaleProp,
disableEditor
}) => {
const { internationalization } = import_built.default ?? {};
const { defaultLocale: defaultLocaleConfig, locales: availableLocales } = internationalization ?? {};
const defaultLocale = localeProp ?? import_useLocaleCookie.localeCookie ?? defaultLocaleProp ?? defaultLocaleConfig;
const [currentLocale, setCurrentLocale] = (0, import_editor_react.useCrossFrameState)(
import_editor_react.MessageKey.INTLAYER_CURRENT_LOCALE,
defaultLocale
);
const setLocaleBase = (newLocale) => {
if (currentLocale.toString() === newLocale.toString()) return;
if (!availableLocales?.map(String).includes(newLocale)) {
console.error(`Locale ${newLocale} is not available`);
return;
}
setCurrentLocale(newLocale);
(0, import_useLocaleCookie.setLocaleCookie)(newLocale);
};
const setLocale = setLocaleProp ?? setLocaleBase;
const resolvedLocale = (0, import_core.localeResolver)(localeProp ?? currentLocale);
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
IntlayerClientContext.Provider,
{
value: {
locale: resolvedLocale,
setLocale,
disableEditor
},
children
}
);
};
const IntlayerProvider = (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_IntlayerEditorProvider.IntlayerEditorProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(IntlayerProviderContent, { ...props }) });
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
IntlayerClientContext,
IntlayerProvider,
IntlayerProviderContent,
useIntlayerContext
});
//# sourceMappingURL=IntlayerProvider.cjs.map