"use client"; import { useState, useMemo } from "react"; import { useWorkflowStore } from "@/store/workflowStore"; import { calculatePredictedCost, formatCost, hasNonGeminiProviders } from "@/utils/costCalculator"; import { CostDialog } from "./CostDialog"; import { useI18n } from "@/i18n"; export function CostIndicator() { const { t } = useI18n(); const [showDialog, setShowDialog] = useState(false); const nodes = useWorkflowStore((state) => state.nodes); const incurredCost = useWorkflowStore((state) => state.incurredCost); const predictedCost = useMemo(() => { return calculatePredictedCost(nodes); }, [nodes]); const nonGemini = useMemo(() => hasNonGeminiProviders(nodes), [nodes]); const hasAnyNodes = predictedCost.nodeCount > 0; if (nonGemini || (!hasAnyNodes && incurredCost === 0)) { return null; } // Always show dollar format (external provider costs not included in total) const displayCost = formatCost(predictedCost.totalCost); return ( <> {showDialog && ( setShowDialog(false)} /> )} ); }