UNPKG

@udus/notion-renderer

Version:
37 lines (36 loc) 1.3 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { useMapper } from "../hooks.js"; import { InlineEquation } from "./InlineEquation.js"; import { Mention } from "./Mention.js"; import { Text } from "./Text.js"; export const RichTextItem = (props) => { if (!props.richText) return null; return (_jsx("span", { className: "notion-rich-text-item", children: _jsx(RichTextItemContent, { ...props }) })); }; const RichTextItemContent = ({ richText: richTextItem, }) => { const { richTextItemMapper } = useMapper(); const mapper = { equation: InlineEquation, mention: Mention, text: Text, ...richTextItemMapper, }; switch (richTextItem.type) { case "equation": { const TypeEquation = mapper[richTextItem.type]; return _jsx(TypeEquation, { richText: richTextItem }); } case "mention": { const TypeMention = mapper[richTextItem.type]; return _jsx(TypeMention, { richText: richTextItem }); } case "text": { const TypeText = mapper[richTextItem.type]; return _jsx(TypeText, { richText: richTextItem }); } default: console.warn(`${richTextItem.type} is never.`); return null; } };