import { type FormEvent, useEffect, useRef } from 'react' import { useOverlayDismiss } from '../hooks/useOverlayDismiss' interface Props { title: string defaultValue?: string placeholder?: string confirmLabel?: string onConfirm: (value: string) => void onCancel: () => void } export default function InputDialog({ title, defaultValue = '', placeholder, confirmLabel = 'OK', onConfirm, onCancel }: Props) { const inputRef = useRef(null) const overlay = useOverlayDismiss(onCancel) useEffect(() => { inputRef.current?.focus() inputRef.current?.select() }, []) function handleSubmit(e: FormEvent) { e.preventDefault() const val = inputRef.current?.value.trim() if (val) onConfirm(val) } return (

{title}

e.currentTarget.style.borderColor = 'var(--color-primary)'} onBlur={e => e.currentTarget.style.borderColor = 'var(--color-border)'} />
) }