Commit 6482b896 authored by Chunchi Che's avatar Chunchi Che

fix DeckBuild crash

parent 5ebda8bb
Pipeline #23379 passed with stages
in 13 minutes and 30 seconds
......@@ -13,6 +13,8 @@ export interface IDeck {
side: number[];
}
export const emptyDeck: IDeck = { deckName: "", main: [], extra: [], side: [] };
export const deckStore = proxy({
decks: [] as IDeck[],
......
import { proxy } from "valtio";
import { IDeck } from "./deckStore";
import { emptyDeck, IDeck } from "./deckStore";
import { type NeosStore } from "./shared";
export enum SideStage {
......@@ -13,8 +13,6 @@ export enum SideStage {
WAITING = 8, // 观战者等待双方玩家
}
const emptyDeck: IDeck = { deckName: "", main: [], extra: [], side: [] };
class SideStore implements NeosStore {
stage: SideStage = SideStage.NONE;
deck: IDeck = emptyDeck;
......
......@@ -28,7 +28,7 @@ import { subscribeKey } from "valtio/utils";
import { type CardMeta, searchCards } from "@/api";
import { isToken } from "@/common";
import { FtsConditions } from "@/middleware/sqlite/fts";
import { deckStore, type IDeck, initStore } from "@/stores";
import { deckStore, emptyDeck, type IDeck, initStore } from "@/stores";
import {
Background,
DeckCard,
......@@ -72,7 +72,9 @@ export const loader: LoaderFunction = async () => {
export const Component: React.FC = () => {
const snapDecks = useSnapshot(deckStore);
const { progress } = useSnapshot(initStore.sqlite);
const [selectedDeck, setSelectedDeck] = useState<IDeck>(deckStore.decks[0]);
const [selectedDeck, setSelectedDeck] = useState<IDeck>(
deckStore.decks.at(0) ?? emptyDeck,
);
const { message } = App.useApp();
......@@ -105,7 +107,7 @@ export const Component: React.FC = () => {
decks={snapDecks.decks}
selected={selectedDeck.deckName}
onSelect={(name) =>
setSelectedDeck(deckStore.get(name) ?? deckStore.decks[0])
setSelectedDeck(deckStore.get(name) ?? emptyDeck)
}
onDelete={async (name) => await deckStore.delete(name)}
onDownload={(name) => {
......
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