import { KanbanBoardItem, kanbanItems } from 'data/kanban'; import React, { Dispatch, PropsWithChildren, createContext, useContext, useReducer } from 'react'; import { ACTIONTYPE, kanbanReducer } from 'reducers/KanbanReducer'; export type ConversationFilterType = 'all' | 'read' | 'unread'; interface KanbanProviderInterface {} export interface KanbanState { openBoardDetailsOffcanvas: boolean; openAddListModal: boolean; boardLists: KanbanBoardItem[]; } interface KanbanContextInterface extends KanbanState { kanbanDispatch: Dispatch; } export const KanbanContext = createContext({} as KanbanContextInterface); const useKanbanReducer = () => { const initState: KanbanState = { openBoardDetailsOffcanvas: false, openAddListModal: false, boardLists: kanbanItems }; return useReducer(kanbanReducer, initState); }; const KanbanProvider = ({ children }: PropsWithChildren) => { const [kanbanState, kanbanDispatch] = useKanbanReducer(); return ( {children} ); }; export const useKanbanContext = () => useContext(KanbanContext); export default KanbanProvider;