import { useReducer } from 'react'; import { nextState } from '../util/StateHelper'; /* * State */ const stateTemplate = { // name : { rank } // Bobik: {total: 10, victory 5: draw: 1} }; function stateReducer(state, action) { switch (action.type) { case 'next': return action.table; default: throw Error('LeaderboardState: unknown action.type ' +action.type); } } export function useLeaderboardStateReducer() { return useReducer(stateReducer, stateTemplate); } /* * Guide */ const guideTemplate = { isPolling: false } function guideReducer(state, action) { switch (action.type) { case 'next': return nextState(state, action, 'LeaderboardGuide'); default: throw Error('LeaderboardGuide: unknown action.type ' +action.type); } } export function useLeaderboardGuideReducer() { return useReducer(guideReducer, guideTemplate); }