From af9e424c7b01bca6390d9a8db695c978935bba8b Mon Sep 17 00:00:00 2001 From: NlightN22 Date: Fri, 17 Jan 2025 02:17:08 +0700 Subject: [PATCH] add abort signal to some requests --- src/services/frigate.proxy/frigate.api.ts | 4 ++++ src/shared/components/accordion/CameraAccordion.tsx | 4 ++-- src/shared/components/accordion/EventsAccordion.tsx | 5 +++-- src/widgets/SelectedDayList.tsx | 4 ++-- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/services/frigate.proxy/frigate.api.ts b/src/services/frigate.proxy/frigate.api.ts index d874d03..068a39a 100644 --- a/src/services/frigate.proxy/frigate.api.ts +++ b/src/services/frigate.proxy/frigate.api.ts @@ -106,10 +106,12 @@ export const proxyApi = { hostName: string, cameraName: string, timezone: string, + abortSignal?: AbortSignal, ) => instanceApi.get(`proxy/${hostName}/api/${cameraName}/recordings/summary`, { params: { timezone }, timeout: 5 * 60 * 1000, + signal: abortSignal }).then(res => res.data), // E.g. http://127.0.0.1:5000/api/events?before=1708534799&after=1708448400&camera=CameraName&has_clip=1&include_thumbnails=0&limit=5000 @@ -125,6 +127,7 @@ export const proxyApi = { includeThumnails?: boolean, minScore?: number, maxScore?: number, + abortSignal?: AbortSignal, ) => instanceApi.get(`proxy/${hostName}/api/events`, { params: { @@ -140,6 +143,7 @@ export const proxyApi = { max_score: maxScore, }, timeout: 5 * 60 * 1000, + signal: abortSignal }).then(res => res.data), getEventsSummary: (hostName: string, cameraName: string) => diff --git a/src/shared/components/accordion/CameraAccordion.tsx b/src/shared/components/accordion/CameraAccordion.tsx index a22fa0f..d5525d2 100644 --- a/src/shared/components/accordion/CameraAccordion.tsx +++ b/src/shared/components/accordion/CameraAccordion.tsx @@ -27,9 +27,9 @@ const CameraAccordion = ({ const { data: recordings, isPending, isError, refetch } = useQuery({ queryKey: [frigateQueryKeys.getRecordingsSummary, camera?.id], - queryFn: () => { + queryFn: ({signal}) => { if (camera && hostName) { - return proxyApi.getRecordingsSummary(hostName, camera.name, getResolvedTimeZone()) + return proxyApi.getRecordingsSummary(hostName, camera.name, getResolvedTimeZone(), signal) } return null } diff --git a/src/shared/components/accordion/EventsAccordion.tsx b/src/shared/components/accordion/EventsAccordion.tsx index d4d80ca..13aa185 100644 --- a/src/shared/components/accordion/EventsAccordion.tsx +++ b/src/shared/components/accordion/EventsAccordion.tsx @@ -53,7 +53,7 @@ const EventsAccordion = ({ const { data, isPending, isError, refetch } = useQuery({ queryKey: [frigateQueryKeys.getEvents, host, camera, day, hour, startTime, endTime], - queryFn: () => { + queryFn: ({signal}) => { if (!isRequiredParams) return null let queryStartTime: number let queryEndTime: number @@ -84,7 +84,8 @@ const EventsAccordion = ({ parsed.data.limit, parsed.data.includeThumnails, parsed.data.minScore, - parsed.data.maxScore + parsed.data.maxScore, + signal ) } return null diff --git a/src/widgets/SelectedDayList.tsx b/src/widgets/SelectedDayList.tsx index 9433217..6780954 100644 --- a/src/widgets/SelectedDayList.tsx +++ b/src/widgets/SelectedDayList.tsx @@ -30,11 +30,11 @@ const SelectedDayList = ({ const { data, isPending, isError, refetch } = useQuery({ queryKey: [frigateQueryKeys.getRecordingsSummary, recStore.filteredCamera?.id, day], - queryFn: async () => { + queryFn: async ({signal}) => { if (camera && host) { const hostName = mapHostToHostname(host) if (hostName) { - return proxyApi.getRecordingsSummary(hostName, camera.name, getResolvedTimeZone()) + return proxyApi.getRecordingsSummary(hostName, camera.name, getResolvedTimeZone(), signal) } } return null