"use client"; import { useRef } from "react"; import { CreditDisplay } from "@/components/canvas/credit-display"; import { ExportButton } from "@/components/canvas/export-button"; import { useCanvasPlacement } from "@/components/canvas/canvas-placement-context"; import { useCenteredFlowNodePosition } from "@/hooks/use-centered-flow-node-position"; import { CANVAS_NODE_TEMPLATES, type CanvasNodeTemplate, } from "@/lib/canvas-node-templates"; interface CanvasToolbarProps { canvasName?: string; } export default function CanvasToolbar({ canvasName, }: CanvasToolbarProps) { const { createNodeWithIntersection } = useCanvasPlacement(); const getCenteredPosition = useCenteredFlowNodePosition(); const nodeCountRef = useRef(0); const handleAddNode = async ( type: CanvasNodeTemplate["type"], data: CanvasNodeTemplate["defaultData"], width: number, height: number, ) => { const stagger = (nodeCountRef.current % 8) * 24; nodeCountRef.current += 1; await createNodeWithIntersection({ type, position: getCenteredPosition(width, height, stagger), width, height, data, clientRequestId: crypto.randomUUID(), }); }; return (
{CANVAS_NODE_TEMPLATES.map((template) => ( ))}
); }