Skip to content

Instantly share code, notes, and snippets.

@jsmanifest
Created June 23, 2019 22:33
Show Gist options
  • Save jsmanifest/148395af96a30d668d991f27e7b60c51 to your computer and use it in GitHub Desktop.
Save jsmanifest/148395af96a30d668d991f27e7b60c51 to your computer and use it in GitHub Desktop.
const reducer = (state, action) => {
switch (action.type) {
case 'set-theme':
return { ...state, theme: action.theme, history: insertToHistory(state) }
case 'add-friend':
return {
...state,
friends: [...state.friends, action.friend],
history: insertToHistory(state),
}
case 'undo': {
const isEmpty = !state.history.length
if (isEmpty) return state
return { ...state.history[state.history.length - 1] }
}
case 'reset':
return { ...initialState, history: insertToHistory(state) }
default:
return state
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment