Add desktop games, robot pet and TCG app
This commit is contained in:
1 parent
812503251b
commit
c664f573b8
55 files changed
+5090
-15
No files matched your search
@@ -0,0 +1,41 @@
|
||||
import { tcgDecks } from '#lib/content';
|
||||
import type { TcgCard, TcgSet } from './types';
|
||||
|
||||
export type BrowserTab = 'decks' | 'builder';
|
||||
|
||||
export class TcgBrowserState {
|
||||
tab = $state<BrowserTab>('decks');
|
||||
deckId = $state(tcgDecks[0]?.id ?? '');
|
||||
searchedName = $state('');
|
||||
supertype = $state('');
|
||||
energyType = $state('');
|
||||
selectedSet = $state<TcgSet | null>(null);
|
||||
setId = $derived(this.selectedSet?.id ?? '');
|
||||
page = $state(1);
|
||||
openedCard = $state<TcgCard | null>(null);
|
||||
|
||||
setSearchedName(name: string) {
|
||||
if (name === this.searchedName) return;
|
||||
this.searchedName = name;
|
||||
this.page = 1;
|
||||
}
|
||||
|
||||
toggleSupertype(supertype: string) {
|
||||
this.supertype = this.supertype === supertype ? '' : supertype;
|
||||
this.page = 1;
|
||||
}
|
||||
|
||||
toggleEnergyType(energyType: string) {
|
||||
this.energyType = this.energyType === energyType ? '' : energyType;
|
||||
this.page = 1;
|
||||
}
|
||||
|
||||
toggleSet(set: TcgSet | null) {
|
||||
this.selectedSet = set && set.id !== this.setId ? set : null;
|
||||
this.page = 1;
|
||||
}
|
||||
|
||||
openCard(card: TcgCard | null) {
|
||||
this.openedCard = card;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user