From 3ba68ac973e181a3a124925d417df38cc505f400 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=20Jurmanovi=C4=87?= Date: Sun, 1 Mar 2026 15:04:09 +0100 Subject: [PATCH] add 0 fallaback --- src/components/leaderboard/editors/TracksEditor.tsx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/components/leaderboard/editors/TracksEditor.tsx b/src/components/leaderboard/editors/TracksEditor.tsx index 5452c72..9a70f63 100644 --- a/src/components/leaderboard/editors/TracksEditor.tsx +++ b/src/components/leaderboard/editors/TracksEditor.tsx @@ -10,20 +10,27 @@ interface ResultInputProps { function ResultInput({ value, pointsTable, onChange }: ResultInputProps) { const knownPoints = Array.from(new Set(pointsTable.map((e) => e.points))).sort((a, b) => b - a); + // Fallback 0 to DNS if 0 is not a valid points option + const displayValue = value === 0 && !knownPoints.includes(0) ? 'DNS' : value; + // Ensure the current numeric value is always included in options + const allPoints = typeof displayValue === 'number' + ? Array.from(new Set([...knownPoints, displayValue])).sort((a, b) => b - a) + : knownPoints; const handleChange = (raw: string) => { if (raw === 'DNF') return onChange('DNF'); if (raw === 'DNS') return onChange('DNS'); - onChange(parseInt(raw) || 0); + const parsed = parseInt(raw); + onChange(isNaN(parsed) ? 0 : parsed); }; return (