From 8007766d35795345673473845db0725d3c0d1a64 Mon Sep 17 00:00:00 2001 From: shrimbly Date: Fri, 16 Jan 2026 23:11:22 +1300 Subject: [PATCH] refactor(26-01): use actual screenshot in detail modal instead of preview - Replace WorkflowPreview component with actual template screenshot image - Remove unused presetWorkflows memo from TemplateExplorerView - Pass previewImage prop instead of workflow to TemplateDetailModal Co-Authored-By: Claude Opus 4.5 --- .../quickstart/TemplateDetailModal.tsx | 21 ++++++++++++------- .../quickstart/TemplateExplorerView.tsx | 16 ++------------ 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/src/components/quickstart/TemplateDetailModal.tsx b/src/components/quickstart/TemplateDetailModal.tsx index d16f0049..9a654aa9 100644 --- a/src/components/quickstart/TemplateDetailModal.tsx +++ b/src/components/quickstart/TemplateDetailModal.tsx @@ -1,9 +1,7 @@ "use client"; import { useEffect, useCallback } from "react"; -import { Node, Edge } from "@xyflow/react"; import { TemplateCategory } from "@/types/quickstart"; -import { WorkflowPreview } from "./WorkflowPreview"; interface TemplateDetailModalProps { isOpen: boolean; @@ -18,7 +16,7 @@ interface TemplateDetailModalProps { tags: string[]; }; nodeCount: number; - workflow: { nodes: Node[]; edges: Edge[] }; + previewImage?: string; } const CATEGORY_LABELS: Record = { @@ -42,7 +40,7 @@ export function TemplateDetailModal({ isLoading, template, nodeCount, - workflow, + previewImage, }: TemplateDetailModalProps) { // Handle escape key to close const handleKeyDown = useCallback( @@ -117,10 +115,19 @@ export function TemplateDetailModal({ - {/* Workflow Preview */} + {/* Workflow Screenshot */}
-
- +
+ {previewImage ? ( + /* eslint-disable-next-line @next/next/no-img-element */ + {`${template.name} + ) : ( +
No preview available
+ )}
diff --git a/src/components/quickstart/TemplateExplorerView.tsx b/src/components/quickstart/TemplateExplorerView.tsx index deed8740..0938548f 100644 --- a/src/components/quickstart/TemplateExplorerView.tsx +++ b/src/components/quickstart/TemplateExplorerView.tsx @@ -71,18 +71,6 @@ export function TemplateExplorerView({ return metadata; }, []); - // Get workflow data for each template - const presetWorkflows = useMemo(() => { - const workflows: Record = {}; - PRESET_TEMPLATES.forEach((template) => { - workflows[template.id] = { - nodes: template.workflow.nodes, - edges: template.workflow.edges, - }; - }); - return workflows; - }, []); - // Get preview image for each template (first image from "full" content level) const previewImages = useMemo(() => { const images: Record = {}; @@ -595,7 +583,7 @@ export function TemplateExplorerView({
{/* Template Detail Modal */} - {selectedTemplateId && presetWorkflows[selectedTemplateId] && ( + {selectedTemplateId && ( setSelectedTemplateId(null)} @@ -605,7 +593,7 @@ export function TemplateExplorerView({ isLoading={loadingWorkflowId === selectedTemplateId} template={presets.find((p) => p.id === selectedTemplateId)!} nodeCount={presetMetadata[selectedTemplateId]?.nodeCount ?? 0} - workflow={presetWorkflows[selectedTemplateId]} + previewImage={previewImages[selectedTemplateId]} /> )}