import { useRef } from "react"; import useCurrentUser from "@/hooks/useCurrentUser"; import { useMemoStore } from "@/store/v1"; import { Node, NodeType } from "@/types/proto/api/v2/markdown_service"; import Renderer from "./Renderer"; import { RendererContext } from "./types"; interface Props { memoId: number; nodes: Node[]; readonly?: boolean; className?: string; onMemoContentClick?: (e: React.MouseEvent) => void; } const MemoContent: React.FC = (props: Props) => { const { className, memoId, nodes, onMemoContentClick } = props; const currentUser = useCurrentUser(); const memoStore = useMemoStore(); const memoContentContainerRef = useRef(null); const allowEdit = currentUser?.id === memoStore.getMemoById(memoId)?.creatorId && !props.readonly; const handleMemoContentClick = async (e: React.MouseEvent) => { if (onMemoContentClick) { onMemoContentClick(e); } }; let prevNode: Node | null = null; let skipNextLineBreakFlag = false; return (
{nodes.map((node, index) => { if (prevNode?.type !== NodeType.LINE_BREAK && node.type === NodeType.LINE_BREAK && skipNextLineBreakFlag) { skipNextLineBreakFlag = false; return null; } prevNode = node; skipNextLineBreakFlag = true; return ; })}
); }; export default MemoContent;