Skip to content

Commit a48f5aa

Browse files
authored
Merge pull request #4140 from seojcarlos/fix/firefox-events-nan
fix: prevent NaN timestamps from breaking event charts in Firefox
2 parents 5e39485 + dbcd51a commit a48f5aa

2 files changed

Lines changed: 20 additions & 5 deletions

File tree

src/components/hooks/useDateParameters.ts

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,32 @@
11
import { useDateRange } from './useDateRange';
22
import { useTimezone } from './useTimezone';
33

4+
function safeToISOString(date: Date, fallback: Date): string {
5+
try {
6+
return date.toISOString();
7+
} catch {
8+
return fallback.toISOString();
9+
}
10+
}
11+
412
export function useDateParameters() {
513
const {
614
dateRange: { startDate, endDate, unit },
715
} = useDateRange();
816
const { timezone, localToUtc, canonicalizeTimezone } = useTimezone();
917

18+
const utcStart = localToUtc(startDate);
19+
const utcEnd = localToUtc(endDate);
20+
const startAtValue = +utcStart;
21+
const endAtValue = +utcEnd;
22+
const isStartValid = Number.isFinite(startAtValue);
23+
const isEndValid = Number.isFinite(endAtValue);
24+
1025
return {
11-
startAt: +localToUtc(startDate),
12-
endAt: +localToUtc(endDate),
13-
startDate: localToUtc(startDate).toISOString(),
14-
endDate: localToUtc(endDate).toISOString(),
26+
startAt: isStartValid ? startAtValue : +startDate,
27+
endAt: isEndValid ? endAtValue : +endDate,
28+
startDate: safeToISOString(isStartValid ? utcStart : startDate, startDate),
29+
endDate: safeToISOString(isEndValid ? utcEnd : endDate, endDate),
1530
unit,
1631
timezone: canonicalizeTimezone(timezone),
1732
};

src/lib/url.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ export function getQueryString(params: object = {}): string {
22
const searchParams = new URLSearchParams();
33

44
Object.entries(params).forEach(([key, value]) => {
5-
if (value !== undefined) {
5+
if (value !== undefined && value !== null && !Number.isNaN(value)) {
66
searchParams.append(key, value);
77
}
88
});

0 commit comments

Comments
 (0)