Commit 7b3a092c authored by chechunchi's avatar chechunchi

add YesNoModalCase

parent 313882ae
...@@ -33,6 +33,7 @@ import { ...@@ -33,6 +33,7 @@ import {
resetCheckCardModalImpl, resetCheckCardModalImpl,
setYesNoModalIsOpenImpl, setYesNoModalIsOpenImpl,
checkCardModalCase, checkCardModalCase,
YesNoModalCase,
} from "./modalSlice"; } from "./modalSlice";
import { import {
MonsterState, MonsterState,
...@@ -141,6 +142,7 @@ const duelSlice = createSlice({ ...@@ -141,6 +142,7 @@ const duelSlice = createSlice({
magicCase(builder); magicCase(builder);
cemeteryCase(builder); cemeteryCase(builder);
checkCardModalCase(builder); checkCardModalCase(builder);
YesNoModalCase(builder);
}, },
}); });
......
...@@ -4,7 +4,9 @@ import { ...@@ -4,7 +4,9 @@ import {
createAsyncThunk, createAsyncThunk,
ActionReducerMapBuilder, ActionReducerMapBuilder,
} from "@reduxjs/toolkit"; } from "@reduxjs/toolkit";
import { fetchCard, getCardStr } from "../../api/cards"; import { CardMeta, fetchCard, getCardStr } from "../../api/cards";
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { fetchStrings } from "../../api/strings";
import { RootState } from "../../store"; import { RootState } from "../../store";
import { DuelState } from "./mod"; import { DuelState } from "./mod";
import { judgeSelf } from "./util"; import { judgeSelf } from "./util";
...@@ -223,6 +225,15 @@ export const checkCardModalCase = ( ...@@ -223,6 +225,15 @@ export const checkCardModalCase = (
}); });
}; };
export const resetCheckCardModalImpl: CaseReducer<DuelState> = (state) => {
state.modalState.checkCardModal.isOpen = false;
state.modalState.checkCardModal.selectMin = undefined;
state.modalState.checkCardModal.selectMax = undefined;
state.modalState.checkCardModal.cancelAble = false;
state.modalState.checkCardModal.cancelResponse = undefined;
state.modalState.checkCardModal.tags = [];
};
// 更新YesNo弹窗是否打开状态 // 更新YesNo弹窗是否打开状态
export const setYesNoModalIsOpenImpl: CaseReducer< export const setYesNoModalIsOpenImpl: CaseReducer<
DuelState, DuelState,
...@@ -231,13 +242,31 @@ export const setYesNoModalIsOpenImpl: CaseReducer< ...@@ -231,13 +242,31 @@ export const setYesNoModalIsOpenImpl: CaseReducer<
state.modalState.yesNoModal.isOpen = action.payload; state.modalState.yesNoModal.isOpen = action.payload;
}; };
export const resetCheckCardModalImpl: CaseReducer<DuelState> = (state) => { // 设置YesNo弹窗展示内容
state.modalState.checkCardModal.isOpen = false; export const fetchYesNoMeta = createAsyncThunk(
state.modalState.checkCardModal.selectMin = undefined; "duel/fetchYesNoMeta",
state.modalState.checkCardModal.selectMax = undefined; async (param: {
state.modalState.checkCardModal.cancelAble = false; code: number;
state.modalState.checkCardModal.cancelResponse = undefined; location: ygopro.CardLocation;
state.modalState.checkCardModal.tags = []; descCode: number;
textGenerator: (
desc: string,
cardMeta: CardMeta,
cardLocation: ygopro.CardLocation
) => string;
}) => {
const desc = await fetchStrings("!system", param.descCode);
const meta = await fetchCard(param.code);
// TODO: 国际化文案
return param.textGenerator(desc, meta, param.location);
}
);
export const YesNoModalCase = (builder: ActionReducerMapBuilder<DuelState>) => {
builder.addCase(fetchYesNoMeta.fulfilled, (state, action) => {
state.modalState.yesNoModal.msg = action.payload;
});
}; };
export const selectCardModalIsOpen = (state: RootState) => export const selectCardModalIsOpen = (state: RootState) =>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment