Skip to content

Commit

Permalink
feat: rewrite constructs info reducer to typescript
Browse files Browse the repository at this point in the history
  • Loading branch information
KochiyaOcean committed Dec 17, 2023
1 parent 7d4e9c0 commit 31fb1cd
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 26 deletions.
23 changes: 22 additions & 1 deletion views/redux/actions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,12 @@ import {
APIReqPracticeBattleResultRequest,
APIReqPracticeBattleResultResponse,
APIReqSortieBattleresultResponse,
APIReqKousyouGetshipResponse,
APIReqKousyouGetshipRequest,
APIGetMemberKdockResponse,
APIGetMemberKdockRequest,
APIReqKousyouCreateshipSpeedchangeResponse,
APIReqKousyouCreateshipSpeedchangeRequest,
} from 'kcsapi'

import { APIDistance, APIPlaneInfo } from 'kcsapi/api_req_air_corps/set_plane/response'
Expand Down Expand Up @@ -81,7 +87,7 @@ export const createAPIPortPortResponseAction = createAction<
GameResponsePayload<APIPortPortResponse, APIPortPortRequest>
>('@@Response/kcsapi/api_port/port')

export const createAPIGetMemberReqireInfoAction = createAction<
export const createAPIGetMemberRequireInfoAction = createAction<
GameResponsePayload<APIGetMemberRequireInfoResponse, APIGetMemberRequireInfoRequest>
>('@@Response/kcsapi/api_get_member/require_info')

Expand All @@ -97,6 +103,21 @@ export const createAPIReqSortieBattleResultResponseAction = createAction<
GameResponsePayload<APIReqSortieBattleresultResponse, undefined>
>('@@Response/kcsapi/api_req_sortie/battleresult')

export const createAPIReqKousyouGetShipResponseAction = createAction<
GameResponsePayload<APIReqKousyouGetshipResponse, APIReqKousyouGetshipRequest>
>('@@Response/kcsapi/api_req_kousyou/getship')

export const createAPIGetMemberKdockResponseAction = createAction<
GameResponsePayload<APIGetMemberKdockResponse[], APIGetMemberKdockRequest>
>('@@Response/kcsapi/api_get_member/kdock')

export const createAPIReqKousyouCreateShipSpeedChangeResponseAction = createAction<
GameResponsePayload<
APIReqKousyouCreateshipSpeedchangeResponse,
APIReqKousyouCreateshipSpeedchangeRequest
>
>('@@Response/kcsapi/api_req_kousyou/createship_speedchange')

export interface APIReqAirCorpsChangeDeploymentBaseRequest {
api_area_id: string
api_base_id: string
Expand Down
4 changes: 2 additions & 2 deletions views/redux/info/basic.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { createSlice } from '@reduxjs/toolkit'
import { compareUpdate } from 'views/utils/tools'
import {
createAPIGetMemberReqireInfoAction,
createAPIGetMemberRequireInfoAction,
createAPIPortPortResponseAction,
createAPIReqMissionResultResponseAction,
createAPIReqPracticeResultResponseAction,
Expand All @@ -20,7 +20,7 @@ const basicSlice = createSlice({
.addCase(createAPIPortPortResponseAction, (state, { payload }) => {
return compareUpdate(state, payload.body.api_basic)
})
.addCase(createAPIGetMemberReqireInfoAction, (state, { payload }) => {
.addCase(createAPIGetMemberRequireInfoAction, (state, { payload }) => {
return compareUpdate(state, {
api_member_id: `${payload.body.api_basic.api_member_id}`,
})
Expand Down
23 changes: 0 additions & 23 deletions views/redux/info/constructions.es

This file was deleted.

41 changes: 41 additions & 0 deletions views/redux/info/constructions.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import { APIKdock } from 'kcsapi/api_get_member/require_info/response'
import {
createAPIGetMemberKdockResponseAction,
createAPIGetMemberRequireInfoAction,
createAPIReqKousyouCreateShipSpeedChangeResponseAction,
createAPIReqKousyouGetShipResponseAction,
} from '../actions'
import { createSlice } from '@reduxjs/toolkit'

const completeConstruction = {
api_complete_time: 0,
api_complete_time_str: '0',
api_state: 3,
}

const constructionsSlice = createSlice({
name: 'constructions',
initialState: [] as APIKdock[],
reducers: {},
extraReducers: (builder) => {
builder
.addCase(createAPIGetMemberRequireInfoAction, (state, { payload }) => {
return payload.body.api_kdock
})
.addCase(createAPIReqKousyouGetShipResponseAction, (state, { payload }) => {
return payload.body.api_kdock
})
.addCase(createAPIGetMemberKdockResponseAction, (state, { payload }) => {
return payload.body
})
.addCase(createAPIReqKousyouCreateShipSpeedChangeResponseAction, (state, { payload }) => {
const { api_kdock_id } = payload.postBody
const dockId = parseInt(api_kdock_id, 10)
const newState = state.slice()
newState[dockId - 1] = Object.assign({}, newState[dockId - 1], completeConstruction)
return newState
})
},
})

export const reducer = constructionsSlice.reducer

0 comments on commit 31fb1cd

Please sign in to comment.