diff options
Diffstat (limited to 'frontend/src/redux/games.js')
-rw-r--r-- | frontend/src/redux/games.js | 53 |
1 files changed, 28 insertions, 25 deletions
diff --git a/frontend/src/redux/games.js b/frontend/src/redux/games.js index 2986de07..a7115dcc 100644 --- a/frontend/src/redux/games.js +++ b/frontend/src/redux/games.js @@ -1,43 +1,46 @@ -import Immutable from 'seamless-immutable' +import Immutable from "seamless-immutable"; export const types = { - UPDATE_GAMES: 'GAME/UPDATE_GAMES', - REQUEST_CREATE_GAME: 'GAME/REQUEST_CREATE_GAME', - REQUEST_JOIN_GAME: 'GAME/REQUEST_JOIN_GAME', - REQUEST_START_GAME: 'GAME/REQUEST_JOIN_GAME', - ENTER_LOBBY: 'GAME/ENTER_LOBBY', - ENTER_GAME: 'GAME/ENTER_GAME', -} + UPDATE_GAMES: "GAME/UPDATE_GAMES", + REQUEST_CREATE_GAME: "GAME/REQUEST_CREATE_GAME", + REQUEST_JOIN_GAME: "GAME/REQUEST_JOIN_GAME", + REQUEST_START_GAME: "GAME/REQUEST_JOIN_GAME", + ENTER_LOBBY: "GAME/ENTER_LOBBY", + ENTER_GAME: "GAME/ENTER_GAME" +}; export const actions = { - updateGames: (games) => ({ type: types.UPDATE_GAMES, games: Immutable(games) }), - requestJoinGame: (gameId) => ({ type: types.REQUEST_JOIN_GAME, gameId }), - requestCreateGame: (gameName) => ({ type: types.REQUEST_CREATE_GAME, gameName }), + updateGames: games => ({ type: types.UPDATE_GAMES, games: Immutable(games) }), + requestJoinGame: gameId => ({ type: types.REQUEST_JOIN_GAME, gameId }), + requestCreateGame: gameName => ({ + type: types.REQUEST_CREATE_GAME, + gameName + }), requestStartGame: () => ({ type: types.REQUEST_START_GAME }), - enterLobby: (lobby) => ({ type: types.ENTER_LOBBY, lobby: Immutable(lobby) }), - enterGame: () => ({ type: types.ENTER_GAME }), -} + enterLobby: lobby => ({ type: types.ENTER_LOBBY, lobby: Immutable(lobby) }), + enterGame: () => ({ type: types.ENTER_GAME }) +}; const initialState = Immutable.from({ all: {}, - current: '' -}) + current: "" +}); export default (state = initialState, action) => { switch (action.type) { case types.UPDATE_GAMES: - return Immutable.merge(state, {all: action.games}, {deep: true}) + return Immutable.merge(state, { all: action.games }, { deep: true }); case types.ENTER_LOBBY: - return state.set('current', action.lobby.id) + return state.set("current", action.lobby.id); default: - return state + return state; } -} +}; -export const getAllGamesById = state => state.games.all +export const getAllGamesById = state => state.games.all; export const getAllGames = state => { - let gamesById = getAllGamesById(state) + let gamesById = getAllGamesById(state); return Object.keys(gamesById).map(k => gamesById[k]); -} -export const getGame = (state, id) => getAllGamesById(state)[id] -export const getCurrentGame = state => getGame(state, state.games.current) +}; +export const getGame = (state, id) => getAllGamesById(state)[id]; +export const getCurrentGame = state => getGame(state, state.games.current); |