fix: normalize character status filtering logic to handle unknown and null values

This commit is contained in:
2026-03-06 19:05:02 +01:00
parent edab42fd26
commit 5cd989b098

View File

@@ -167,9 +167,12 @@
}
// Status filter
if (characterFilters.status.length > 0 && !characterFilters.status.includes(char.status)) {
if (characterFilters.status.length > 0) {
const normalizedStatus = normalizeStatus(char.status);
if (!characterFilters.status.includes(normalizedStatus)) {
return false;
}
}
// Height filter
if (characterFilters.hasHeight && (char.height === null || char.height === undefined)) {
@@ -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;
}
}
</script>
<svelte:head>