react-intlayer
Version:
Easily internationalize i18n your React applications with type-safe multilingual content management.
38 lines • 1.16 kB
JavaScript
"use client";
import { getContent } from "@intlayer/core";
import { useEditedContentActions } from "@intlayer/editor-react";
const useEditedContentRenderer = ({
dictionaryKey,
keyPath,
children
}) => {
const editedContentContext = useEditedContentActions();
if (editedContentContext) {
const editedValue = editedContentContext.getEditedContentValue(
dictionaryKey,
keyPath
);
const value = editedValue ?? children;
return value;
}
return children;
};
const EditedContentRenderer = (props) => {
const content = useEditedContentRenderer(props);
if (typeof content === "object") {
const transformedEditedContent = getContent(content, props, props.locale);
if (typeof transformedEditedContent !== "string") {
console.error(
`Incorrect edited content format. Content type: ${typeof transformedEditedContent}. Expected string. Value ${JSON.stringify(transformedEditedContent)}`
);
return props.children;
}
return transformedEditedContent;
}
return content;
};
export {
EditedContentRenderer,
useEditedContentRenderer
};
//# sourceMappingURL=useEditedContentRenderer.mjs.map