UNPKG

react-intlayer

Version:

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

55 lines (52 loc) 2.45 kB
'use client'; const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs'); const require_client_IntlayerProvider = require('../client/IntlayerProvider.cjs'); const require_UI_ContentSelector = require('../UI/ContentSelector.cjs'); let react = require("react"); let react_jsx_runtime = require("react/jsx-runtime"); let _intlayer_core = require("@intlayer/core"); let _intlayer_types = require("@intlayer/types"); let _intlayer_editor_react = require("@intlayer/editor-react"); //#region src/editor/ContentSelectorWrapper.tsx const ContentSelectorWrapperContent = ({ children, dictionaryKey, keyPath }) => { const { focusedContent, setFocusedContent } = (0, _intlayer_editor_react.useFocusDictionary)(); const { postMessage, senderId } = (0, _intlayer_editor_react.useCommunicator)(); const filteredKeyPath = (0, react.useMemo)(() => keyPath.filter((key) => key.type !== _intlayer_types.NodeType.Translation), [keyPath]); return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_UI_ContentSelector.ContentSelector, { onPress: (0, react.useCallback)(() => setFocusedContent({ dictionaryKey, keyPath: filteredKeyPath }), [dictionaryKey, filteredKeyPath]), onHover: (0, react.useCallback)(() => postMessage({ type: `${_intlayer_editor_react.MessageKey.INTLAYER_HOVERED_CONTENT_CHANGED}/post`, data: { dictionaryKey, keyPath: filteredKeyPath }, senderId }), [dictionaryKey, filteredKeyPath]), onUnhover: (0, react.useCallback)(() => postMessage({ type: `${_intlayer_editor_react.MessageKey.INTLAYER_HOVERED_CONTENT_CHANGED}/post`, data: null, senderId }), [senderId]), isSelecting: (0, react.useMemo)(() => (focusedContent?.dictionaryKey === dictionaryKey && (focusedContent?.keyPath?.length ?? 0) > 0 && (0, _intlayer_core.isSameKeyPath)(focusedContent?.keyPath ?? [], filteredKeyPath)) ?? false, [ focusedContent, filteredKeyPath, dictionaryKey ]), children }); }; const ContentSelectorRenderer = ({ children, ...props }) => { const { enabled } = (0, _intlayer_editor_react.useEditorEnabled)(); const { disableEditor } = require_client_IntlayerProvider.useIntlayerContext(); if (enabled && !disableEditor) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ContentSelectorWrapperContent, { ...props, children }); return children; }; //#endregion exports.ContentSelectorRenderer = ContentSelectorRenderer; //# sourceMappingURL=ContentSelectorWrapper.cjs.map