"use client"; import { useEffect, useCallback } from "react"; import { Node, Edge } from "@xyflow/react"; import { WorkflowPreview } from "./WorkflowPreview"; interface WorkflowPreviewModalProps { isOpen: boolean; onClose: () => void; templateName: string; workflow: { nodes: Node[]; edges: Edge[] }; } export function WorkflowPreviewModal({ isOpen, onClose, templateName, workflow, }: WorkflowPreviewModalProps) { // Handle escape key to close const handleKeyDown = useCallback( (e: KeyboardEvent) => { if (e.key === "Escape") { onClose(); } }, [onClose] ); useEffect(() => { if (isOpen) { document.addEventListener("keydown", handleKeyDown); return () => document.removeEventListener("keydown", handleKeyDown); } }, [isOpen, handleKeyDown]); if (!isOpen) return null; return (
{/* Backdrop */}
{/* Modal */}
e.stopPropagation()} > {/* Header */}

{templateName}

Workflow structure preview

{/* Preview Content */}
{/* Footer hint */}

Press Esc or click outside to close

); }