export const menuReducer = (state, action) => { switch (action) { case 'show': return true; case 'hide': return false; case 'toggle': return !state; default: throw new Error("menustate unknown to reducer"); } } export const sessionReducer = (state, action) => { switch (action.type) { case 'start': return { active: true, token: action.token, username: action.username } case 'end': return { active: false, token: null, username: null, exiry: null } default: throw new Error("action type unknown to session reducer"); } } export const userTableReducer = (state, action) => { let user = action.user; switch (action.type) { case 'create': return [...state, { line: state.length, ...user }]; case 'delete': { let newstate = []; let newindex = 0; state.forEach((u, i) => { if (user.uid && u.uid != user.uid || user.line && i != user.line) newstate.push({ ...u, line: newindex++ }) return newstate; }, []); return newstate; } case 'update': { let newstate = []; state.forEach((u, i) => { if (user.uid && u.uid == user.uid || user.line && i == user.line) newstate.push(user); else newstate.push(u); }); return [...newstate] } case 'import': return action.imported; case 'reset': return []; default: throw new Error("action type unknown to usertable reducer"); } }