"use client"; import { TemplateNodeData, UINode } from "lib/ai/workflow/workflow.interface"; import { useEdges, useNodes, useReactFlow } from "@xyflow/react"; import { useCallback, memo } from "react"; import { Label } from "ui/label"; import { OutputSchemaMentionInput } from "../output-schema-mention-input"; import { InfoIcon } from "lucide-react"; import { TipTapMentionJsonContent } from "app-types/util"; import { Tooltip, TooltipContent, TooltipTrigger } from "ui/tooltip"; import { useTranslations } from "next-intl"; import { useWorkflowStore } from "@/app/store/workflow.store"; interface TemplateNodeConfigProps { data: TemplateNodeData; } export const TemplateNodeConfig = memo(function TemplateNodeConfig({ data, }: TemplateNodeConfigProps) { const t = useTranslations(); const { updateNodeData } = useReactFlow(); const nodes = useNodes() as UINode[]; const edges = useEdges(); const editable = useWorkflowStore((state) => { return ( state.processIds.length === 0 && state.hasEditAccess && !state.workflow?.isPublished ); }); const handleTemplateChange = useCallback( (template: TipTapMentionJsonContent) => { updateNodeData(data.id, { template: { type: "tiptap", tiptap: template }, }); }, [data.id, updateNodeData], ); return (
{t("Workflow.templateDescription")}
); });