import { HasChildren } from "@granity/helpers"; import { createContext, Dispatch, FC, SetStateAction, useState } from "react"; import { SceneCamera } from "../../scenesTypes"; export interface CamerasContextModel { cameras: SceneCamera[]; setCameras: (() => void) | Dispatch>; currentCameraId: string | null; setCurrentCameraId: (() => void) | Dispatch>; } export const defaultContext: CamerasContextModel = { cameras: [], setCameras: () => {}, currentCameraId: null, setCurrentCameraId: () => {}, }; export const CamerasContext = createContext(defaultContext); type Props = HasChildren; const CamerasContextProvider: FC = ({ children }) => { const [cameras, setCameras] = useState([]); const [currentCameraId, setCurrentCameraId] = useState(null); const providerValue: CamerasContextModel = { cameras, setCameras, currentCameraId, setCurrentCameraId, }; return {children}; }; export default CamerasContextProvider;