import { createContext, Dispatch, SetStateAction } from 'react' import { AlertOptions } from 'models/shell' import { AudioState, ScreenShareState, VideoState, Peer } from 'models/chat' interface ShellContextProps { numberOfPeers: number tabHasFocus: boolean setDoShowPeers: Dispatch> setNumberOfPeers: Dispatch> setTitle: Dispatch> showAlert: (message: string, options?: AlertOptions) => void roomId?: string setRoomId: Dispatch> password?: string setPassword: Dispatch> isPeerListOpen: boolean setIsPeerListOpen: Dispatch> peerList: Peer[] setPeerList: Dispatch> audioState: AudioState setAudioState: Dispatch> videoState: VideoState setVideoState: Dispatch> screenState: ScreenShareState setScreenState: Dispatch> } export const ShellContext = createContext({ numberOfPeers: 1, tabHasFocus: true, setDoShowPeers: () => {}, setNumberOfPeers: () => {}, setTitle: () => {}, showAlert: () => {}, roomId: undefined, setRoomId: () => {}, password: undefined, setPassword: () => {}, isPeerListOpen: false, setIsPeerListOpen: () => {}, peerList: [], setPeerList: () => {}, audioState: AudioState.STOPPED, setAudioState: () => {}, videoState: VideoState.STOPPED, setVideoState: () => {}, screenState: ScreenShareState.NOT_SHARING, setScreenState: () => {}, })