mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-11 05:35:25 +03:00
Ensure camera activity is up to date
This commit is contained in:
parent
9680f2a574
commit
f9567aa4e6
@ -204,13 +204,26 @@ export function useFrigateStats(): { payload: FrigateStats } {
|
|||||||
return { payload: JSON.parse(payload as string) };
|
return { payload: JSON.parse(payload as string) };
|
||||||
}
|
}
|
||||||
|
|
||||||
export function useInitialCameraState(camera: string): {
|
export function useInitialCameraState(
|
||||||
|
camera: string,
|
||||||
|
refreshOnStart: boolean,
|
||||||
|
): {
|
||||||
payload: FrigateCameraState;
|
payload: FrigateCameraState;
|
||||||
} {
|
} {
|
||||||
const {
|
const {
|
||||||
value: { payload },
|
value: { payload },
|
||||||
} = useWs("camera_activity", "");
|
send: sendCommand,
|
||||||
|
} = useWs("camera_activity", "onConnect");
|
||||||
const data = JSON.parse(payload as string);
|
const data = JSON.parse(payload as string);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (refreshOnStart) {
|
||||||
|
sendCommand("onConnect");
|
||||||
|
}
|
||||||
|
// only refresh when onRefresh value changes
|
||||||
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
|
}, [refreshOnStart]);
|
||||||
|
|
||||||
return { payload: data ? data[camera] : undefined };
|
return { payload: data ? data[camera] : undefined };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -19,12 +19,16 @@ type useCameraActivityReturn = {
|
|||||||
|
|
||||||
export function useCameraActivity(
|
export function useCameraActivity(
|
||||||
camera: CameraConfig,
|
camera: CameraConfig,
|
||||||
|
refreshOnStart: boolean = true,
|
||||||
): useCameraActivityReturn {
|
): useCameraActivityReturn {
|
||||||
const [objects, setObjects] = useState<ObjectType[]>([]);
|
const [objects, setObjects] = useState<ObjectType[]>([]);
|
||||||
|
|
||||||
// init camera activity
|
// init camera activity
|
||||||
|
|
||||||
const { payload: initialCameraState } = useInitialCameraState(camera.name);
|
const { payload: initialCameraState } = useInitialCameraState(
|
||||||
|
camera.name,
|
||||||
|
refreshOnStart,
|
||||||
|
);
|
||||||
|
|
||||||
const updatedCameraState = useDeepMemo(initialCameraState);
|
const updatedCameraState = useDeepMemo(initialCameraState);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user