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 { nodes: Node[]; memoId?: number; readonly?: boolean; className?: string; onClick?: (e: React.MouseEvent) => void; } const MemoContent: React.FC = (props: Props) => { const { className, memoId, nodes, onClick } = props; const currentUser = useCurrentUser(); const memoStore = useMemoStore(); const memoContentContainerRef = useRef(null); const allowEdit = !props.readonly && memoId && currentUser?.id === memoStore.getMemoById(memoId)?.creatorId; const handleMemoContentClick = async (e: React.MouseEvent) => { if (onClick) { onClick(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;