Merge pull request 'Incident date filter matched nothing' (#168) from fix/incident-date-filter into main
This commit was merged in pull request #168.
This commit is contained in:
@@ -42,11 +42,17 @@ export function useIncidents(limitCount = 100, dateFrom?: Date, dateTo?: Date) {
|
||||
}
|
||||
|
||||
// A range on the ordered field rides the existing org_id/started_at index.
|
||||
// Incident started_at is stored as a Python isoformat() STRING
|
||||
// ("2026-09-20T12:00:00.123456+00:00", incident_correlator.py), not a
|
||||
// Firestore timestamp — unlike calls. A Date bound compares by type and
|
||||
// matches nothing, so the bounds go in as UTC ISO strings in the same
|
||||
// shape, which then compare lexicographically in time order.
|
||||
const isoBound = (ms: number) => new Date(ms).toISOString().replace("Z", "+00:00");
|
||||
const q = query(
|
||||
collection(db, "incidents"),
|
||||
where("org_id", "==", orgId),
|
||||
...(dateFromMs != null ? [where("started_at", ">=", new Date(dateFromMs))] : []),
|
||||
...(dateToMs != null ? [where("started_at", "<=", new Date(dateToMs))] : []),
|
||||
...(dateFromMs != null ? [where("started_at", ">=", isoBound(dateFromMs))] : []),
|
||||
...(dateToMs != null ? [where("started_at", "<=", isoBound(dateToMs))] : []),
|
||||
orderBy("started_at", "desc"),
|
||||
limit(limitCount)
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user