Commit ffb387c3 authored by Chunchi Che's avatar Chunchi Che

fix crash

parent ca83bae4
Pipeline #23216 passed with stages
in 10 minutes and 1 second
...@@ -25,11 +25,11 @@ import { ...@@ -25,11 +25,11 @@ import {
const NeosConfig = useConfig(); const NeosConfig = useConfig();
export const loader: LoaderFunction = async () => { export const loader: LoaderFunction = async () => {
getLoginStatus(); await getLoginStatus();
initDeck(); await initDeck();
initSqlite(); await initSqlite();
initWASM(); await initWASM();
initForbidden(); await initForbidden();
return null; return null;
}; };
......
...@@ -11,7 +11,7 @@ import { useSnapshot } from "valtio"; ...@@ -11,7 +11,7 @@ import { useSnapshot } from "valtio";
import { match } from "@/api"; import { match } from "@/api";
import { useConfig } from "@/config"; import { useConfig } from "@/config";
import { accountStore, deckStore, IDeck, roomStore } from "@/stores"; import { accountStore, deckStore, roomStore } from "@/stores";
import { Background, IconFont, Select } from "@/ui/Shared"; import { Background, IconFont, Select } from "@/ui/Shared";
import styles from "./index.module.scss"; import styles from "./index.module.scss";
...@@ -27,12 +27,12 @@ export const Component: React.FC = () => { ...@@ -27,12 +27,12 @@ export const Component: React.FC = () => {
const [server, setServer] = useState( const [server, setServer] = useState(
`${serverList[0].ip}:${serverList[0].port}`, `${serverList[0].ip}:${serverList[0].port}`,
); );
const { decks } = useSnapshot(deckStore); const { decks } = deckStore;
const [deck, setDeck] = useState<IDeck>(JSON.parse(JSON.stringify(decks[0]))); const [deckName, setDeckName] = useState(decks.at(0)?.deckName ?? "");
const user = accountStore.user; const user = accountStore.user;
const { joined } = useSnapshot(roomStore); const { joined } = useSnapshot(roomStore);
const [singleLoading, setSingleLoading] = useState(false); // 单人模式的loading状态 const [singleLoading, setSingleLoading] = useState(false); // 单人模式的loading状态
const [matchLoading, setMatchLoading] = useState(false); const [matchLoading, setMatchLoading] = useState(false); // 匹配模式的loading状态
const navigate = useNavigate(); const navigate = useNavigate();
// 竞技匹配 // 竞技匹配
...@@ -107,13 +107,13 @@ export const Component: React.FC = () => { ...@@ -107,13 +107,13 @@ export const Component: React.FC = () => {
<Select <Select
title="卡组" title="卡组"
showSearch showSearch
value={deck.deckName} value={deckName}
style={{ width: 200 }} style={{ width: 200 }}
onChange={(value) => { onChange={(value) => {
// @ts-ignore // @ts-ignore
const item = deckStore.get(value); const item = deckStore.get(value);
if (item) { if (item) {
setDeck(item); setDeckName(item.deckName);
} else { } else {
message.error(`Deck ${value} not found`); message.error(`Deck ${value} not found`);
} }
......
...@@ -43,8 +43,10 @@ export const Component: React.FC = () => { ...@@ -43,8 +43,10 @@ export const Component: React.FC = () => {
const { message } = App.useApp(); const { message } = App.useApp();
const { user } = useSnapshot(accountStore); const { user } = useSnapshot(accountStore);
const [collapsed, setCollapsed] = useState(false); const [collapsed, setCollapsed] = useState(false);
const { decks } = useSnapshot(deckStore); const { decks } = deckStore;
const [deck, setDeck] = useState<IDeck>(JSON.parse(JSON.stringify(decks[0]))); const defaultDeck =
decks.length > 0 ? JSON.parse(JSON.stringify(decks[0])) : undefined;
const [deck, setDeck] = useState<IDeck | undefined>(defaultDeck);
const room = useSnapshot(roomStore); const room = useSnapshot(roomStore);
const { errorMsg } = room; const { errorMsg } = room;
const me = room.getMePlayer(); const me = room.getMePlayer();
...@@ -104,12 +106,16 @@ export const Component: React.FC = () => { ...@@ -104,12 +106,16 @@ export const Component: React.FC = () => {
className={styles["btn-join"]} className={styles["btn-join"]}
onClick={() => { onClick={() => {
if (me?.state === PlayerState.NO_READY) { if (me?.state === PlayerState.NO_READY) {
if (deck) {
sendUpdateDeck(deck); sendUpdateDeck(deck);
// 设置side里面的卡组 // 设置side里面的卡组
sideStore.deck = deck; sideStore.deck = deck;
// 设置额外卡组数据 // 设置额外卡组数据
window.myExtraDeckCodes = [...deck.extra]; window.myExtraDeckCodes = [...deck.extra];
sendHsReady(); sendHsReady();
} else {
message.error("请先选择卡组");
}
} else { } else {
sendHsNotReady(); sendHsNotReady();
} }
......
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