Problem
Die Funktion formatDateDistance in resources/js/Lib/DateHelper.ts behandelt leere oder ungültige Datumswerte nicht defensiv. Bei einem leeren String oder einem ungültigen Datum kann parse() ein ungültiges Date-Objekt zurückgeben, woraufhin formatDistanceStrict einen RangeError wirft und die History-Ansicht abbricht.
Empfohlene Lösung
export const formatDateDistance = (date: string) => {
if (!date) return ''
let parsedDate: Date
if (date.length === 10) {
parsedDate = parse(date, 'dd.MM.yyyy', new Date())
} else {
parsedDate = parse(date.substring(0, 16), 'dd.MM.yyyy HH:mm', new Date())
}
if (Number.isNaN(parsedDate.getTime())) return ''
return formatDistanceStrict(parsedDate, new Date(), {
locale: de,
addSuffix: true
})
}
Kontext
Gefunden bei Code-Review in PR #332 (HistoryView optimiert).
Gemeldet von: @dspangenberg
Problem
Die Funktion
formatDateDistanceinresources/js/Lib/DateHelper.tsbehandelt leere oder ungültige Datumswerte nicht defensiv. Bei einem leeren String oder einem ungültigen Datum kannparse()ein ungültigesDate-Objekt zurückgeben, woraufhinformatDistanceStricteinenRangeErrorwirft und die History-Ansicht abbricht.Empfohlene Lösung
Kontext
Gefunden bei Code-Review in PR #332 (HistoryView optimiert).
Gemeldet von: @dspangenberg