import { useState } from "react"; import { useTransitionPresence } from "@chopin/editor/transition-presence"; import { DocumentActionsMenu } from "../document-actions-menu"; import { motionImmediately } from "../motion-input"; import { NavigationDialog } from "../navigation-dialog"; import { TerminalAlert } from "../terminal-alert"; import { AuditPlate } from "./frame"; import type { FormEvent } from "react"; import type { DocumentAction } from "../document-actions-menu"; export function InteractiveSpecimens() { let [title, setTitle] = useState("Design system audit"); let [draft, setDraft] = useState(title); let [archived, setArchived] = useState(false); let [deleted, setDeleted] = useState(false); let [dialog, setDialog] = useState<"rename" | "delete" | undefined>(); let [failure, setFailure] = useState(false); let [error, setError] = useState(false); let presence = useTransitionPresence(dialog, 220, motionImmediately()); function action(value: DocumentAction) { if (value === "copy-link") return; if (value === "archive" || value === "restore") { setArchived(value === "archive"); return; } setDraft(title); setError(false); setDialog(value); } function save(event: FormEvent) { event.preventDefault(); if (!draft.trim()) return; if (failure) { setError(true); return; } setTitle(draft.trim()); setDialog(undefined); } return (
{deleted ? "Document deleted" : title} {deleted ? ( ) : ( )}
{presence.phase !== "closed" && presence.value === "rename" && ( setDialog(undefined)} title="Rename document" >
{ setDraft(event.target.value); setError(false); }} value={draft} /> {error && ( Could not rename document. )}
)} {presence.phase !== "closed" && presence.value === "delete" && ( setDialog(undefined)} title="Delete document permanently?" >

{title}{" "} will be permanently deleted. This cannot be undone.

)}
); }