"use client" import { useEffect } from "react" interface DialogProps { open: boolean onClose: () => void title: string children: React.ReactNode } export function Dialog({ open, onClose, title, children }: DialogProps) { // Close on Escape key useEffect(() => { if (!open) return const handler = (e: KeyboardEvent) => { if (e.key === "Escape") onClose() } document.addEventListener("keydown", handler) return () => document.removeEventListener("keydown", handler) }, [open, onClose]) if (!open) return null return (
{/* Backdrop */}
{/* Panel */}
e.stopPropagation()} > {/* Header */}

{title}

{/* Body */}
{children}
) }