Fix cost tracking issues

This commit is contained in:
maziggy
2026-02-20 16:31:16 +01:00
parent 965000c3ca
commit 1404242e0c
8 changed files with 444 additions and 469 deletions
@@ -66,6 +66,10 @@ export function FilamentMapping({
return total;
}, [filamentComparison, trayCostMap, defaultCostPerKg]);
const hasAnyCost = useMemo(
() => Array.from(trayCostMap.values()).some((v) => v != null && v > 0),
[trayCostMap]
);
const hasFilamentReqs = filamentReqs?.filaments && filamentReqs.filaments.length > 0;
const isDualNozzle = filamentReqs?.filaments?.some((f) => f.nozzle_id != null) ?? false;
@@ -214,23 +218,12 @@ export function FilamentMapping({
)}
</div>
))}
{(() => {
// Check if any tray has a configured cost_per_kg
const hasAnyCost = Array.from(trayCostMap.values()).some((v) => v != null && v > 0);
if (totalCost > 0 || hasAnyCost) {
return (
<div className="text-xs text-bambu-gray">
{t('printModal.totalCost')} <span className="text-white">{currencySymbol}{totalCost.toFixed(2)}</span>
</div>
);
} else {
return (
<div className="text-xs text-bambu-gray">
{t('printModal.totalCost')} <span className="text-white">N/A</span>
</div>
);
}
})()}
<div className="text-xs text-bambu-gray">
{t('printModal.totalCost')}{' '}
<span className="text-white">
{totalCost > 0 || hasAnyCost ? `${currencySymbol}${totalCost.toFixed(2)}` : 'N/A'}
</span>
</div>
{hasTypeMismatch && (
<p className="text-xs text-orange-400 mt-2">Required filament type not found in printer.</p>
)}