import { Dispatch, ReactElement, SetStateAction, useState, KeyboardEvent, useEffect, useRef } from "react"; import { cachedParseLabel } from "@/statecharts/parser"; export function TextDialog(props: {setModal: Dispatch>, text: string, done: (newText: string|undefined) => void}) { const [text, setText] = useState(props.text); function onKeyDown(e: KeyboardEvent) { if (e.key === "Enter") { if (!e.shiftKey) { e.preventDefault(); props.done(text); props.setModal(null); } } if (e.key === "Escape") { props.setModal(null); e.stopPropagation(); } e.stopPropagation(); } let parseError = ""; try { cachedParseLabel(text); } catch (e) { // @ts-ignore parseError = e.message; } return
{/* Text label:
*/}