"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)}
/>
)}
>
);
}