"use client"; import { useState } from "react"; import type { UndoAction } from "@/uhm/lib/editor/state/useEditorState"; import type { EditorMode } from "@/uhm/lib/editor/session/sessionTypes"; import { ProjectPanel } from "./editor/ProjectPanel"; import { ToolsPanel } from "./editor/ToolsPanel"; import { CommitPanel } from "./editor/CommitPanel"; import { CommitHistoryPanel } from "./editor/CommitHistoryPanel"; import { UndoListPanel } from "./editor/UndoListPanel"; import { SessionPanel } from "./editor/SessionPanel"; import { SubmitModal } from "./editor/SubmitModal"; type Props = { mode: EditorMode; setMode: (mode: EditorMode) => void; entityStatus?: string | null; onUndo: () => void; onCommit: () => void; onSubmit: (content: string) => void; onRestoreCommit: (commitId: string) => void; isSaving: boolean; isSubmitting: boolean; sectionTitle: string; sectionStatus: string; commitTitle: string; onCommitTitleChange: (title: string) => void; commitCount: number; hasHeadCommit: boolean; headCommitId: string | null; latestCommitLabel: string | null; commits: Array<{ id: string; created_at?: string; edit_summary: string; user_id: string; }>; changesCount: number; undoStack: UndoAction[]; createdEntities: Array<{ id: string; name: string; }>; createdGeometries: Array<{ id: string | number; geometryType: string; semanticType?: string | null; entityNames: string[]; }>; width?: number; }; export default function Editor({ mode, setMode, entityStatus, onUndo, onCommit, onSubmit, onRestoreCommit, isSaving, isSubmitting, sectionTitle, sectionStatus, commitTitle, onCommitTitleChange, commitCount, hasHeadCommit, headCommitId, latestCommitLabel, commits, changesCount, undoStack, createdEntities, createdGeometries, width = 280, }: Props) { const [isSubmitModalOpen, setIsSubmitModalOpen] = useState(false); const [submitContent, setSubmitContent] = useState(""); const handleOpenSubmitModal = () => { setSubmitContent(""); setIsSubmitModalOpen(true); }; const handleConfirmSubmit = () => { setIsSubmitModalOpen(false); onSubmit(submitContent); }; const handleCancelSubmit = () => { setIsSubmitModalOpen(false); }; return (