UNPKG

react-intlayer

Version:

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

41 lines (38 loc) 1.58 kB
'use client'; import { useEditedContentRenderer } from "../editor/useEditedContentRenderer.mjs"; import { useMarkdownContext } from "./MarkdownProvider.mjs"; import { getContent, getContentNodeByKeyPath, getMarkdownMetadata } from "@intlayer/core"; import { useEditorLocale } from "@intlayer/editor-react"; //#region src/markdown/MarkdownRenderer.tsx const MarkdownRenderer = ({ dictionaryKey, keyPath, children, locale }) => { const { renderMarkdown } = useMarkdownContext(); const editedContentContext = useEditedContentRenderer({ dictionaryKey, keyPath, children }); if (typeof editedContentContext !== "string") { const transformedEditedContent = getContent(editedContentContext, { dictionaryKey, keyPath }, locale); if (typeof transformedEditedContent !== "string") { console.error(`Incorrect Markdown content. Edited Markdown content type: ${typeof transformedEditedContent}. Expected string. Value ${JSON.stringify(transformedEditedContent)}`); return renderMarkdown(children); } return renderMarkdown(transformedEditedContent); } return renderMarkdown(editedContentContext); }; const MarkdownMetadataRenderer = ({ dictionaryKey, keyPath, children, metadataKeyPath }) => { const editedContentContext = useEditedContentRenderer({ dictionaryKey, keyPath, children }); const currentLocale = useEditorLocale(); return getContentNodeByKeyPath(getMarkdownMetadata(editedContentContext), metadataKeyPath, currentLocale); }; //#endregion export { MarkdownMetadataRenderer, MarkdownRenderer }; //# sourceMappingURL=MarkdownRenderer.mjs.map