UNPKG

react-intlayer

Version:

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

70 lines 2.16 kB
"use client"; import { Fragment, jsx, jsxs } from "react/jsx-runtime"; import configuration from "@intlayer/config/built"; import { EditorProvider, useCrossURLPathSetter, useEditorEnabled, useIframeClickInterceptor } from "@intlayer/editor-react"; const IntlayerEditorHooksEnabled = () => { useCrossURLPathSetter(); useIframeClickInterceptor(); return /* @__PURE__ */ jsx(Fragment, {}); }; const { editor } = configuration; const IntlayerEditorHook = () => { const { enabled } = useEditorEnabled(); return enabled ? /* @__PURE__ */ jsx(IntlayerEditorHooksEnabled, {}) : /* @__PURE__ */ jsx(Fragment, {}); }; const IntlayerEditorProvider = ({ children }) => { return /* @__PURE__ */ jsxs( EditorProvider, { postMessage: (data) => { if (typeof window === "undefined") return; const isInIframe = window.self !== window.top; if (!isInIframe) return; if (editor.applicationURL.length > 0) { window?.postMessage( data, // Use to restrict the origin of the editor for security reasons. // Correspond to the current application URL to synchronize the locales states. editor.applicationURL ); } if (editor.editorURL.length > 0) { window.parent?.postMessage( data, // Use to restrict the origin of the editor for security reasons. // Correspond to the editor URL to synchronize the locales states. editor.editorURL ); } if (editor.cmsURL.length > 0) { window.parent?.postMessage( data, // Use to restrict the origin of the CMS for security reasons. // Correspond to the CMS URL. editor.cmsURL ); } }, allowedOrigins: [ editor?.editorURL, editor?.cmsURL, editor?.applicationURL ], mode: "client", configuration, children: [ /* @__PURE__ */ jsx(IntlayerEditorHook, {}), children ] } ); }; export { IntlayerEditorProvider }; //# sourceMappingURL=IntlayerEditorProvider.mjs.map