fix(web): Number.isNaN statt globalem isNaN in vier Date-Pruefungen, forEach-Rueckgabewert verworfen

Alle vier Stellen (TenderDetail, ResultsList, InvoiceHistoryTable) rufen
isNaN(d.getTime()) auf - Date.prototype.getTime() liefert immer number,
also findet an keiner der vier Stellen tatsaechlich eine Umwandlung statt.
Der Tausch auf Number.isNaN ist reine Haertung: sobald dort einmal ein
String ankaeme, wuerde globales isNaN ihn stillschweigend umwandeln statt
ihn als kaputte Eingabe zu erkennen. Kein Rueckfallwert geaendert.

In cert-manager/actions.ts gibt files.forEach jetzt keinen Wert mehr aus
der Schleifenfunktion heraus - forEach verwirft ihn ohnehin, die Aenderung
ist rein kosmetisch (useIterableCallbackReturn). Reihenfolge der
form.append-Aufrufe unveraendert.

Quick-Vorgang 260921-i8x, Task 2/3.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TPPB4ApQxzSU1rwV2Ffj9J
This commit is contained in:
2026-09-21 13:28:07 +02:00
parent f85c91be01
commit 076ca4bf64
4 changed files with 7 additions and 5 deletions
@@ -151,7 +151,9 @@ export async function mergeCertsAction(
password?: string,
): Promise<FileResponse> {
const form = new FormData();
files.forEach((file) => form.append('files', file));
files.forEach((file) => {
form.append('files', file);
});
form.append('outputFormat', outputFormat);
if (password) form.append('password', password);
return postForm('merge', form) as Promise<FileResponse>;
@@ -30,7 +30,7 @@ function formatDateTime(isoString: string): string {
// new Date() never throws — it returns an Invalid Date object for bad input.
// Check explicitly so malformed strings fall back gracefully instead of
// rendering as "NaN.NaN.NaN, NaN:NaN Uhr" (WR-03).
if (isNaN(d.getTime())) return isoString;
if (Number.isNaN(d.getTime())) return isoString;
const day = String(d.getDate()).padStart(2, '0');
const month = String(d.getMonth() + 1).padStart(2, '0');
const year = d.getFullYear();
@@ -48,7 +48,7 @@ interface TriageState {
function formatDate(value: string | null): string {
if (!value) return '–';
const d = new Date(value);
if (isNaN(d.getTime())) return '–';
if (Number.isNaN(d.getTime())) return '–';
return d.toLocaleDateString('de-DE');
}
@@ -41,7 +41,7 @@ interface TenderDetailProps {
function formatDeadline(value: string | null, noDeadlineLabel: string): string {
if (!value) return noDeadlineLabel;
const d = new Date(value);
if (isNaN(d.getTime())) return noDeadlineLabel;
if (Number.isNaN(d.getTime())) return noDeadlineLabel;
return d.toLocaleDateString('de-DE');
}
@@ -62,7 +62,7 @@ function formatValue(value: string | null, noValueLabel: string): string {
function formatPublished(value: string): string {
const d = new Date(value);
if (isNaN(d.getTime())) return '–';
if (Number.isNaN(d.getTime())) return '–';
return d.toLocaleDateString('de-DE');
}