From ea67bf41373785110a6221205953caa870f6d3cb Mon Sep 17 00:00:00 2001 From: soufiane Date: Wed, 3 Dec 2025 16:47:35 +0100 Subject: [PATCH] fix: convert string values to numbers in prize stats calculation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Use Number() to ensure proper addition instead of string concatenation - Fix stockRemaining calculation for individual prize cards 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- components/admin/PrizeManagement.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/components/admin/PrizeManagement.tsx b/components/admin/PrizeManagement.tsx index e240b60..636fd8e 100644 --- a/components/admin/PrizeManagement.tsx +++ b/components/admin/PrizeManagement.tsx @@ -94,8 +94,8 @@ export default function PrizeManagement() { // Calculer les stats const prizeStats = useMemo(() => { - const totalStock = prizes.reduce((acc, p) => acc + (p.initialStock || p.stock || 0), 0); - const totalUsed = prizes.reduce((acc, p) => acc + (p.ticketsUsed || 0), 0); + const totalStock = prizes.reduce((acc, p) => acc + Number(p.initialStock || p.stock || 0), 0); + const totalUsed = prizes.reduce((acc, p) => acc + Number(p.ticketsUsed || 0), 0); const activeCount = prizes.filter(p => p.isActive).length; return { totalStock, totalUsed, activeCount, totalPrizes: prizes.length }; }, [prizes]); @@ -195,7 +195,7 @@ export default function PrizeManagement() { {prizes.map((prize) => { const style = getPrizeStyle(prize.type); const IconComponent = style.icon; - const stockRemaining = (prize.initialStock || 0) - (prize.ticketsUsed || 0); + const stockRemaining = Number(prize.initialStock || 0) - Number(prize.ticketsUsed || 0); return (