diff --git a/hotel-management/src/App.tsx b/hotel-management/src/App.tsx index 347ed1b..96ae698 100644 --- a/hotel-management/src/App.tsx +++ b/hotel-management/src/App.tsx @@ -18,7 +18,7 @@ import { initialState, reducer, } from '@context/UserRoomAvailableContext'; -import { useEffect, useReducer } from 'react'; +import { useEffect, useMemo, useReducer } from 'react'; // Services import { getUserNotBooked } from '@service/userServices'; @@ -57,12 +57,14 @@ function App() { load(); }, []); + const store = useMemo(() => { + return { roomsAvailable, usersAvailable, dispatch }; + }, [roomsAvailable, usersAvailable]); + return ( - + }> diff --git a/hotel-management/src/contexts/UserRoomAvailableContext.ts b/hotel-management/src/contexts/UserRoomAvailableContext.ts index 40d1a9e..01c91ce 100644 --- a/hotel-management/src/contexts/UserRoomAvailableContext.ts +++ b/hotel-management/src/contexts/UserRoomAvailableContext.ts @@ -36,16 +36,19 @@ const initialState: IUserRoomState = { const reducer = (state: IUserRoomState, action: IAction) => { switch (action.type) { + case 'initRoom': return { ...state, roomsAvailable: action.payload, }; + case 'initUser': return { ...state, usersAvailable: action.payload, }; + case 'addUser': { const tempArr = state.usersAvailable; const itemExist = state.usersAvailable.find( @@ -61,6 +64,7 @@ const reducer = (state: IUserRoomState, action: IAction) => { usersAvailable: tempArr, }; } + case 'updateUserName': { const tempArr = state.usersAvailable; @@ -77,6 +81,7 @@ const reducer = (state: IUserRoomState, action: IAction) => { usersAvailable: tempArr, }; } + case 'removeUser': return { ...state, @@ -84,6 +89,7 @@ const reducer = (state: IUserRoomState, action: IAction) => { (item) => item.id !== action.payload[0].id ), }; + case 'addRoom': { const tempArr = state.roomsAvailable; const itemExist = state.roomsAvailable.find( @@ -99,6 +105,7 @@ const reducer = (state: IUserRoomState, action: IAction) => { roomsAvailable: tempArr, }; } + case 'updateRoomName': { const tempArr = state.roomsAvailable; @@ -115,6 +122,7 @@ const reducer = (state: IUserRoomState, action: IAction) => { roomsAvailable: tempArr, }; } + case 'removeRoom': return { ...state, @@ -122,6 +130,7 @@ const reducer = (state: IUserRoomState, action: IAction) => { (item) => item.id !== action.payload[0].id ), }; + default: throw new Error('Action unknown'); }