UNPKG

@cobuildlab/8base-chat

Version:

Chat component that uses 8base

48 lines (37 loc) 1.01 kB
import { createContext } from 'react'; import { IUser } from 'types'; import { ChannelMemberFilter } from '../../shared/graphql/__generated__'; // -- TYPES export interface IChannel { channelIdentityId?: string; } export interface ITab extends IChannel { isCollapsed?: boolean; } export type SetState<T> = ( newState: T | ((oldState: T) => T), callback?: () => any, ) => void; export type SetChannel = SetState<IChannel | null>; export type SetTabs = SetState<ITab[]>; export interface IChatContext { setChannel: SetChannel; setTabs: SetTabs; openedChannel: IChannel | null; user: IUser | null; tabs: ITab[]; isSidebarVisible: boolean; setSidebarVisibility?: (isVisible: boolean) => void; usersFilter: {} | null; channelMembersFilter?: ChannelMemberFilter; } // -- MAIN export const ChatContext = createContext<IChatContext>({ openedChannel: null, user: null, setChannel: () => {}, setTabs: () => {}, isSidebarVisible: true, tabs: [], usersFilter: null, });