use context provider for activity stream

This commit is contained in:
Josh Hawkins 2025-10-07 06:57:51 -05:00
parent cecbea0faf
commit ada15e1686

View File

@ -0,0 +1,56 @@
import React, { createContext, useContext, useState } from "react";
interface ActivityStreamContextType {
selectedObjectId: string | undefined;
currentTime: number;
camera: string;
setSelectedObjectId: (id: string | undefined) => void;
isActivityMode: boolean;
}
const ActivityStreamContext = createContext<
ActivityStreamContextType | undefined
>(undefined);
interface ActivityStreamProviderProps {
children: React.ReactNode;
isActivityMode: boolean;
currentTime: number;
camera: string;
}
export function ActivityStreamProvider({
children,
isActivityMode,
currentTime,
camera,
}: ActivityStreamProviderProps) {
const [selectedObjectId, setSelectedObjectId] = useState<
string | undefined
>();
const value: ActivityStreamContextType = {
selectedObjectId,
currentTime,
camera,
setSelectedObjectId,
isActivityMode,
};
return (
<ActivityStreamContext.Provider value={value}>
{children}
</ActivityStreamContext.Provider>
);
}
// eslint-disable-next-line react-refresh/only-export-components
export function useActivityStream() {
const context = useContext(ActivityStreamContext);
if (context === undefined) {
throw new Error(
"useActivityStream must be used within an ActivityStreamProvider",
);
}
return context;
}