Save initial camera state to update when websocket connects (#11174)

* Send camera state to dispatcher

* Fix logic

* Cleanup

* Send camera activitiy in on connect

* Support reading initial camera state

* Fix key

* Formatting

* Sorting
This commit is contained in:
Nicolas Mowen
2024-04-30 07:09:50 -06:00
committed by GitHub
parent 0080c28c4d
commit 461442b399
9 changed files with 147 additions and 43 deletions

View File

@@ -2,7 +2,12 @@ import { baseUrl } from "./baseUrl";
import { useCallback, useEffect, useState } from "react";
import useWebSocket, { ReadyState } from "react-use-websocket";
import { FrigateConfig } from "@/types/frigateConfig";
import { FrigateEvent, FrigateReview, ToggleableSetting } from "@/types/ws";
import {
FrigateCameraState,
FrigateEvent,
FrigateReview,
ToggleableSetting,
} from "@/types/ws";
import { FrigateStats } from "@/types/stats";
import useSWR from "swr";
import { createContainer } from "react-tracked";
@@ -193,6 +198,16 @@ export function useFrigateStats(): { payload: FrigateStats } {
return { payload: JSON.parse(payload as string) };
}
export function useInitialCameraState(camera: string): {
payload: FrigateCameraState;
} {
const {
value: { payload },
} = useWs("camera_activity", "");
const data = JSON.parse(payload as string);
return { payload: data ? data[camera] : undefined };
}
export function useMotionActivity(camera: string): { payload: string } {
const {
value: { payload },