import { useI18n } from "@arronqzy/i18n/react"; import type { NodeProps } from "@xyflow/react"; import { cn } from "@arronqzy/ui"; import { resolveBlueprintNodeTypeLabel } from "../graph/document"; import { resolveBlueprintNodeSummary } from "../graph/node-summary"; import { useBlueprintClockAbort, useBlueprintNodeSelect, useClockNodeCanAbort, } from "../BlueprintCanvasContext"; import { resolveBlueprintNodeExecutionTone } from "../runtime/execution-overlay"; import type { BlueprintFlowNodeData } from "../types"; import { BlueprintNodeShell } from "./BlueprintNodeShell"; function ClockAbortIcon({ className }: { className?: string }) { return ( ); } /** 时钟节点:收到真信号后按配置间隔输出含当前时间的真信号 */ export function ClockFlowNode({ id, data }: NodeProps) { const { t } = useI18n(); const nodeData = data as BlueprintFlowNodeData; const onSelect = useBlueprintNodeSelect(); const onAbortClock = useBlueprintClockAbort(); const canAbort = useClockNodeCanAbort(id); const progress = nodeData.clockEmitProgress; const progressLabel = progress ? `${progress.current}/${progress.total}` : undefined; return (
{canAbort ? ( ) : null}
); }