From 5cd989b09860e2341a8d130819cc8b8eafc90b55 Mon Sep 17 00:00:00 2001 From: whidix Date: Fri, 6 Mar 2026 19:05:02 +0100 Subject: [PATCH] fix: normalize character status filtering logic to handle unknown and null values --- src/routes/(game)/infinite/+page.svelte | 36 +++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/src/routes/(game)/infinite/+page.svelte b/src/routes/(game)/infinite/+page.svelte index d19b275..a12b0b6 100644 --- a/src/routes/(game)/infinite/+page.svelte +++ b/src/routes/(game)/infinite/+page.svelte @@ -167,8 +167,11 @@ } // Status filter - if (characterFilters.status.length > 0 && !characterFilters.status.includes(char.status)) { - return false; + if (characterFilters.status.length > 0) { + const normalizedStatus = normalizeStatus(char.status); + if (!characterFilters.status.includes(normalizedStatus)) { + return false; + } } // Height filter @@ -357,6 +360,35 @@ generateNewCharacter(); } } + + function normalizeStatus(status: unknown): string { + if (status == null) { + return 'Unknown'; + } + + if (typeof status !== 'string') { + return String(status); + } + + const value = status.trim(); + if (value === '') { + return 'Unknown'; + } + + switch (value.toLowerCase()) { + case 'alive': + return 'Alive'; + case 'dead': + case 'deceased': + return 'Dead'; + case 'unknown': + case 'inconnu': + case '-': + return 'Unknown'; + default: + return value; + } + }