diff options
author | Joffrey BION <joffrey.bion@gmail.com> | 2019-05-16 23:48:38 +0200 |
---|---|---|
committer | Joffrey BION <joffrey.bion@gmail.com> | 2019-05-16 23:48:38 +0200 |
commit | 2382a452456e4bdef4584e1046925e372624cb79 (patch) | |
tree | 0e49b2e5d81facb55fb8b08228abeb218a27d466 /sw-ui/src/redux/actions | |
parent | Remove GRADLE_METADATA feature to avoid breaking frontend build (diff) | |
download | seven-wonders-2382a452456e4bdef4584e1046925e372624cb79.tar.gz seven-wonders-2382a452456e4bdef4584e1046925e372624cb79.tar.bz2 seven-wonders-2382a452456e4bdef4584e1046925e372624cb79.zip |
Rationalize module names
Diffstat (limited to 'sw-ui/src/redux/actions')
-rw-r--r-- | sw-ui/src/redux/actions/all.ts | 5 | ||||
-rw-r--r-- | sw-ui/src/redux/actions/game.ts | 32 | ||||
-rw-r--r-- | sw-ui/src/redux/actions/lobby.ts | 32 | ||||
-rw-r--r-- | sw-ui/src/redux/actions/user.ts | 17 |
4 files changed, 86 insertions, 0 deletions
diff --git a/sw-ui/src/redux/actions/all.ts b/sw-ui/src/redux/actions/all.ts new file mode 100644 index 00000000..57d2a443 --- /dev/null +++ b/sw-ui/src/redux/actions/all.ts @@ -0,0 +1,5 @@ +import { GameAction } from './game'; +import { LobbyAction } from './lobby'; +import { PlayerAction } from './user'; + +export type Action = PlayerAction | LobbyAction | GameAction diff --git a/sw-ui/src/redux/actions/game.ts b/sw-ui/src/redux/actions/game.ts new file mode 100644 index 00000000..b67ea1dc --- /dev/null +++ b/sw-ui/src/redux/actions/game.ts @@ -0,0 +1,32 @@ +import { ApiPlayerMove, ApiPlayerTurnInfo, ApiPreparedCard, ApiTable } from '../../api/model'; + +export const REQUEST_SAY_READY = 'GAME/REQUEST_SAY_READY'; +export const REQUEST_PREPARE_MOVE = 'GAME/REQUEST_PREPARE_MOVE'; +export const PLAYER_READY_RECEIVED = 'GAME/PLAYER_READY_RECEIVED'; +export const TABLE_UPDATE_RECEIVED = 'GAME/TABLE_UPDATE_RECEIVED'; +export const PREPARED_CARD_RECEIVED = 'GAME/PREPARED_CARD_RECEIVED'; +export const TURN_INFO_RECEIVED = 'GAME/TURN_INFO_RECEIVED'; + +export type SayReadyAction = { type: typeof REQUEST_SAY_READY }; +export type PrepareMoveAction = { type: typeof REQUEST_PREPARE_MOVE, move: ApiPlayerMove }; +export type PlayerReadyEvent = { type: typeof PLAYER_READY_RECEIVED, username: string }; +export type TableUpdateEvent = { type: typeof TABLE_UPDATE_RECEIVED, table: ApiTable }; +export type PreparedCardEvent = { type: typeof PREPARED_CARD_RECEIVED, card: ApiPreparedCard }; +export type TurnInfoEvent = { type: typeof TURN_INFO_RECEIVED, turnInfo: ApiPlayerTurnInfo }; + +export type GameAction = + SayReadyAction + | PrepareMoveAction + | PlayerReadyEvent + | TableUpdateEvent + | PreparedCardEvent + | TurnInfoEvent; + +export const actions = { + sayReady: () => ({ type: REQUEST_SAY_READY }), + prepareMove: (move: ApiPlayerMove) => ({ type: REQUEST_PREPARE_MOVE, move }), + receivePlayerReady: (username: string) => ({ type: PLAYER_READY_RECEIVED, username }), + receiveTableUpdate: (table: ApiTable) => ({ type: TABLE_UPDATE_RECEIVED, table }), + receivePreparedCard: (card: ApiPreparedCard) => ({ type: PREPARED_CARD_RECEIVED, card }), + receiveTurnInfo: (turnInfo: ApiPlayerTurnInfo) => ({ type: TURN_INFO_RECEIVED, turnInfo }), +}; diff --git a/sw-ui/src/redux/actions/lobby.ts b/sw-ui/src/redux/actions/lobby.ts new file mode 100644 index 00000000..c121b022 --- /dev/null +++ b/sw-ui/src/redux/actions/lobby.ts @@ -0,0 +1,32 @@ +import { ApiLobby } from '../../api/model'; + +export const UPDATE_GAMES = 'GAMES/UPDATE_GAMES'; +export const REQUEST_CREATE_GAME = 'GAMES/REQUEST_CREATE_GAME'; +export const REQUEST_JOIN_GAME = 'GAMES/REQUEST_JOIN_GAME'; +export const REQUEST_START_GAME = 'GAMES/REQUEST_START_GAME'; +export const ENTER_LOBBY = 'GAMES/ENTER_LOBBY'; +export const ENTER_GAME = 'GAMES/ENTER_GAME'; + +export type UpdateGamesAction = { type: typeof UPDATE_GAMES, games: ApiLobby[]}; +export type RequestCreateGameAction = { type: typeof REQUEST_CREATE_GAME, gameName: string }; +export type RequestJoinGameAction = { type: typeof REQUEST_JOIN_GAME, gameId: number }; +export type RequestStartGameAction = { type: typeof REQUEST_START_GAME }; +export type EnterLobbyAction = { type: typeof ENTER_LOBBY, gameId: number }; +export type EnterGameAction = { type: typeof ENTER_GAME, gameId: number }; + +export type LobbyAction = + | UpdateGamesAction + | RequestCreateGameAction + | RequestJoinGameAction + | RequestStartGameAction + | EnterLobbyAction + | EnterGameAction; + +export const actions = { + updateGames: (games: ApiLobby[]): UpdateGamesAction => ({ type: UPDATE_GAMES, games }), + requestJoinGame: (gameId: number): RequestJoinGameAction => ({ type: REQUEST_JOIN_GAME, gameId }), + requestCreateGame: (gameName: string): RequestCreateGameAction => ({ type: REQUEST_CREATE_GAME, gameName }), + requestStartGame: (): RequestStartGameAction => ({ type: REQUEST_START_GAME }), + enterLobby: (gameId: number): EnterLobbyAction => ({ type: ENTER_LOBBY, gameId }), + enterGame: (gameId: number): EnterGameAction => ({ type: ENTER_GAME, gameId }), +}; diff --git a/sw-ui/src/redux/actions/user.ts b/sw-ui/src/redux/actions/user.ts new file mode 100644 index 00000000..29c85707 --- /dev/null +++ b/sw-ui/src/redux/actions/user.ts @@ -0,0 +1,17 @@ +import { Map } from 'immutable'; +import { ApiPlayer } from '../../api/model'; + +export const REQUEST_CHOOSE_USERNAME = 'USER/REQUEST_CHOOSE_USERNAME'; +export const SET_CURRENT_PLAYER = 'USER/SET_CURRENT_PLAYER'; +export const UPDATE_PLAYERS = 'USER/UPDATE_PLAYERS'; + +export type RequestChooseUsernameAction = { type: typeof REQUEST_CHOOSE_USERNAME, username: string }; +export type SetCurrentPlayerAction = { type: typeof SET_CURRENT_PLAYER, player: ApiPlayer }; +export type UpdatePlayersAction = { type: typeof UPDATE_PLAYERS, players: Map<string, ApiPlayer> }; + +export type PlayerAction = RequestChooseUsernameAction | SetCurrentPlayerAction | UpdatePlayersAction; + +export const actions = { + chooseUsername: (username: string): RequestChooseUsernameAction => ({ type: REQUEST_CHOOSE_USERNAME, username }), + setCurrentPlayer: (player: ApiPlayer): SetCurrentPlayerAction => ({ type: SET_CURRENT_PLAYER, player }), +}; |