From 5cf2a66b23c12a8a3349633a42d9b4cf25924451 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Fri, 9 Feb 2024 06:41:28 -0700 Subject: [PATCH] Improve typing for camera toggles --- web/src/api/ws.tsx | 18 +++++++++--------- web/src/types/ws.ts | 2 ++ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/web/src/api/ws.tsx b/web/src/api/ws.tsx index 9245afbb2..827ca4a13 100644 --- a/web/src/api/ws.tsx +++ b/web/src/api/ws.tsx @@ -10,7 +10,7 @@ import { import { produce, Draft } from "immer"; import useWebSocket, { ReadyState } from "react-use-websocket"; import { FrigateConfig } from "@/types/frigateConfig"; -import { FrigateEvent } from "@/types/ws"; +import { FrigateEvent, ToggleableSetting } from "@/types/ws"; type ReducerState = { [topic: string]: { @@ -149,8 +149,8 @@ export function useWs(watchTopic: string, publishTopic: string) { } export function useDetectState(camera: string): { - payload: string; - send: (payload: string, retain?: boolean) => void; + payload: ToggleableSetting; + send: (payload: ToggleableSetting, retain?: boolean) => void; } { const { value: { payload }, @@ -160,8 +160,8 @@ export function useDetectState(camera: string): { } export function useRecordingsState(camera: string): { - payload: string; - send: (payload: string, retain?: boolean) => void; + payload: ToggleableSetting; + send: (payload: ToggleableSetting, retain?: boolean) => void; } { const { value: { payload }, @@ -171,8 +171,8 @@ export function useRecordingsState(camera: string): { } export function useSnapshotsState(camera: string): { - payload: string; - send: (payload: string, retain?: boolean) => void; + payload: ToggleableSetting; + send: (payload: ToggleableSetting, retain?: boolean) => void; } { const { value: { payload }, @@ -182,8 +182,8 @@ export function useSnapshotsState(camera: string): { } export function useAudioState(camera: string): { - payload: string; - send: (payload: string, retain?: boolean) => void; + payload: ToggleableSetting; + send: (payload: ToggleableSetting, retain?: boolean) => void; } { const { value: { payload }, diff --git a/web/src/types/ws.ts b/web/src/types/ws.ts index 74682e86c..fb041b0c2 100644 --- a/web/src/types/ws.ts +++ b/web/src/types/ws.ts @@ -32,3 +32,5 @@ export interface FrigateEvent { before: FrigateObjectState; after: FrigateObjectState; } + +export type ToggleableSetting = "ON" | "OFF"