summaryrefslogtreecommitdiff
path: root/frontend/src/redux/game.js
blob: a19e155e485c818d635e78bd954b0acf93d39ddf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import { Map } from 'immutable'

export const types = {
  CREATE_OR_UPDATE_GAMES: 'GAME/CREATE_OR_UPDATE_GAMES',
  ENTER_GAME: 'GAME/ENTER_GAME',
  JOIN_GAME: 'GAME/JOIN_GAME',
  CREATE_GAME: 'GAME/CREATE_GAME',
}

export const actions = {
  createOrUpdateGame: (game) => ({ type: types.CREATE_OR_UPDATE_GAMES, game }),
  enterGame: (username) => ({ type: types.ENTER_GAME, username }),
  joinGame: (id) => ({ type: types.JOIN_GAME, id }),
  createGame: (name) => ({ type: types.CREATE_GAME, name }),
}


const initialState = Map({})

export default (state = initialState, action) => {
  switch (action.type) {
    case types.NEW_GAME:
      return state.set(action.game.get('id'), action.game)
    default:
      return state
  }
}
bgstack15