diff --git a/views/redux/actions.ts b/views/redux/actions.ts index 8b6e07fa5..9753e6ea9 100644 --- a/views/redux/actions.ts +++ b/views/redux/actions.ts @@ -12,6 +12,13 @@ import { APIReqMapNextResponse, APIPortPortRequest, APIPortPortResponse, + APIGetMemberRequireInfoResponse, + APIGetMemberRequireInfoRequest, + APIReqMissionResultRequest, + APIReqMissionResultResponse, + APIReqPracticeBattleResultRequest, + APIReqPracticeBattleResultResponse, + APIReqSortieBattleresultResponse, } from 'kcsapi' import { APIDistance, APIPlaneInfo } from 'kcsapi/api_req_air_corps/set_plane/response' @@ -42,8 +49,10 @@ interface ConfigAction { value: object } +// Config export const createConfigAction = createAction('@@Config') +// API export const createAPIGetMemberMapinfoResponseAction = createAction< GameResponsePayload >('@@Response/kcsapi/api_get_member/mapinfo') @@ -72,6 +81,22 @@ export const createAPIPortPortResponseAction = createAction< GameResponsePayload >('@@Response/kcsapi/api_port/port') +export const createAPIGetMemberReqireInfoAction = createAction< + GameResponsePayload +>('@@Response/kcsapi/api_get_member/require_info') + +export const createAPIReqMissionResultResponseAction = createAction< + GameResponsePayload +>('@@Response/kcsapi/api_req_mission/result') + +export const createAPIReqPracticeResultResponseAction = createAction< + GameResponsePayload +>('@@Response/kcsapi/api_req_practice/battle_result') + +export const createAPIReqSortieBattleResultResponseAction = createAction< + GameResponsePayload +>('@@Response/kcsapi/api_req_sortie/battleresult') + export interface APIReqAirCorpsChangeDeploymentBaseRequest { api_area_id: string api_base_id: string diff --git a/views/redux/info/basic.es b/views/redux/info/basic.es deleted file mode 100644 index 26ceb3c1d..000000000 --- a/views/redux/info/basic.es +++ /dev/null @@ -1,20 +0,0 @@ -import { compareUpdate } from 'views/utils/tools' - -export function reducer(state = {}, { type, body }) { - switch (type) { - case '@@Response/kcsapi/api_port/port': - case '@@Response/kcsapi/api_get_member/require_info': - return compareUpdate(state, body.api_basic) - case '@@Response/kcsapi/api_req_mission/result': - return compareUpdate(state, { - api_level: body.api_member_lv, - }) - case '@@Response/kcsapi/api_req_practice/battle_result': - case '@@Response/kcsapi/api_req_sortie/battleresult': - return compareUpdate(state, { - api_experience: body.api_member_exp, - api_level: body.api_member_lv, - }) - } - return state -} diff --git a/views/redux/info/basic.ts b/views/redux/info/basic.ts new file mode 100644 index 000000000..8e49bcede --- /dev/null +++ b/views/redux/info/basic.ts @@ -0,0 +1,48 @@ +import { createSlice } from '@reduxjs/toolkit' +import { compareUpdate } from 'views/utils/tools' +import { + createAPIGetMemberReqireInfoAction, + createAPIPortPortResponseAction, + createAPIReqMissionResultResponseAction, + createAPIReqPracticeResultResponseAction, + createAPIReqSortieBattleResultResponseAction, +} from '../actions' +import { APIBasic as PortAPIBasic } from 'kcsapi/api_port/port/response' + +type BasicState = Partial + +const basicSlice = createSlice({ + name: 'basic', + initialState: {} as BasicState, + reducers: {}, + extraReducers: (builder) => { + builder + .addCase(createAPIPortPortResponseAction, (state, { payload }) => { + return compareUpdate(state, payload.body.api_basic) + }) + .addCase(createAPIGetMemberReqireInfoAction, (state, { payload }) => { + return compareUpdate(state, { + api_member_id: `${payload.body.api_basic.api_member_id}`, + }) + }) + .addCase(createAPIReqMissionResultResponseAction, (state, { payload }) => { + return compareUpdate(state, { + api_level: payload.body.api_member_lv, + }) + }) + .addCase(createAPIReqPracticeResultResponseAction, (state, { payload }) => { + return compareUpdate(state, { + api_experience: payload.body.api_member_exp, + api_level: payload.body.api_member_lv, + }) + }) + .addCase(createAPIReqSortieBattleResultResponseAction, (state, { payload }) => { + return compareUpdate(state, { + api_experience: payload.body.api_member_exp, + api_level: payload.body.api_member_lv, + }) + }) + }, +}) + +export const reducer = basicSlice.reducer