import { useCallback, useState } from "react"; import { Box } from "../ui"; import { Button } from "../components/ui/button"; import { DialogFrame } from "../components/ui/frame"; import { TextField } from "../components/ui/fields"; import { t } from "../i18n"; import { useDialogKeyboard, type PromptContext } from "../ui/dialog"; const FIELD_WIDTH = 40; export function LayoutNameDialog({ resolve, dismiss, title, label, confirmLabel, initialValue, }: PromptContext & { title: string; label: string; confirmLabel: string; initialValue: string; }) { const [value, setValue] = useState(initialValue); const submit = useCallback((next: string) => { const trimmed = next.trim(); if (trimmed) resolve(trimmed); }, [resolve]); useDialogKeyboard((event) => { if (event.name !== "escape") return; event.stopPropagation?.(); dismiss(); }, { allowEditable: true }); return (