import * as React from "react"; import MarkdownDiv from "../../markdown-div/markdown-div.js"; import { GrowingEntry } from "../../growing-entry/growing-entry.js"; import { MarkdownOverlayEditorStyle } from "./markdown-overlay-editor-style.js"; import { EditPencil, Checkmark } from "../../../common/utils.js"; import type { MarkdownCell, Rectangle, SelectionRange } from "../../data-grid/data-grid-types.js"; interface Props { readonly targetRect: Rectangle; readonly onChange: (ev: React.ChangeEvent) => void; readonly forceEditMode: boolean; readonly onFinish: (newValue?: MarkdownCell | undefined) => void; readonly validatedSelection?: SelectionRange; readonly value: MarkdownCell; createNode?: (content: string) => DocumentFragment; } export const MarkdownOverlayEditor: React.FunctionComponent = p => { const { value, onChange, forceEditMode, createNode, targetRect, onFinish, validatedSelection } = p; const markdown = value.data; const readonly = value.readonly === true; const [editMode, setEditMode] = React.useState(markdown === "" || forceEditMode); const onEditClick = React.useCallback(() => { setEditMode(e => !e); }, []); const addLeftPad = markdown ? "gdg-ml-6" : ""; if (editMode) { return ( { if (e.key === "Enter") e.stopPropagation(); }} onChange={onChange} />
onFinish(value)}>
); } return ( {!readonly && ( <>
)}