Fix case where objects are returned as null

This commit is contained in:
Nicolas Mowen 2025-03-20 08:13:12 -06:00
parent d84fd324b2
commit 4a0eef6123

View File

@ -37,7 +37,7 @@ export function useCameraActivity(
return getAttributeLabels(config); return getAttributeLabels(config);
}, [config]); }, [config]);
const [objects, setObjects] = useState<ObjectType[]>([]); const [objects, setObjects] = useState<ObjectType[] | undefined>([]);
// init camera activity // init camera activity
@ -54,7 +54,7 @@ export function useCameraActivity(
// handle camera activity // handle camera activity
const hasActiveObjects = useMemo( const hasActiveObjects = useMemo(
() => objects?.filter((obj) => !obj?.stationary)?.length > 0, () => (objects || []).filter((obj) => !obj?.stationary)?.length > 0,
[objects], [objects],
); );
@ -81,11 +81,10 @@ export function useCameraActivity(
return; return;
} }
const updatedEventIndex = objects.findIndex( const updatedEventIndex =
(obj) => obj.id === updatedEvent.after.id, objects?.findIndex((obj) => obj.id === updatedEvent.after.id) ?? -1;
);
let newObjects: ObjectType[] = [...objects]; let newObjects: ObjectType[] = [...(objects ?? [])];
if (updatedEvent.type === "end") { if (updatedEvent.type === "end") {
if (updatedEventIndex !== -1) { if (updatedEventIndex !== -1) {
@ -104,10 +103,10 @@ export function useCameraActivity(
score: updatedEvent.after.score, score: updatedEvent.after.score,
sub_label: updatedEvent.after.sub_label?.[0] ?? "", sub_label: updatedEvent.after.sub_label?.[0] ?? "",
}; };
newObjects = [...objects, newActiveObject]; newObjects = [...(objects ?? []), newActiveObject];
} }
} else { } else {
const newObjects = [...objects]; const newObjects = [...(objects ?? [])];
let label = updatedEvent.after.label; let label = updatedEvent.after.label;
@ -158,7 +157,7 @@ export function useCameraActivity(
? detectingMotion === "ON" ? detectingMotion === "ON"
: updatedCameraState?.motion === true : updatedCameraState?.motion === true
: false, : false,
objects: isCameraEnabled ? objects : [], objects: isCameraEnabled ? (objects ?? []) : [],
offline, offline,
}; };
} }