Fraser commited on
Commit
6c2bc5a
Β·
1 Parent(s): bf06454
src/lib/components/Pages/Pictuary.svelte CHANGED
@@ -11,20 +11,12 @@
11
  let canonicalPiclets: PicletInstance[] = $state([]);
12
  let isLoading = $state(true);
13
  let selectedPiclet: PicletInstance | null = $state(null);
14
- let viewMode: 'all' | 'canonical' | 'variations' = $state('all');
15
  let searchQuery = $state('');
16
 
17
- // Filter piclets based on view mode and search
18
- let filteredPiclets = $derived(() => {
19
  let piclets = collectedPiclets;
20
 
21
- // Filter by view mode
22
- if (viewMode === 'canonical') {
23
- piclets = piclets.filter(p => p.isCanonical);
24
- } else if (viewMode === 'variations') {
25
- piclets = piclets.filter(p => !p.isCanonical && p.canonicalId);
26
- }
27
-
28
  // Filter by search query
29
  if (searchQuery.trim()) {
30
  const query = searchQuery.toLowerCase();
@@ -39,7 +31,7 @@
39
  });
40
 
41
  // Group piclets by object for display
42
- let groupedPiclets = $derived(() => {
43
  const groups = new Map<string, PicletInstance[]>();
44
 
45
  filteredPiclets.forEach(piclet => {
@@ -55,7 +47,7 @@
55
  });
56
 
57
  // Stats calculation
58
- let stats = $derived(() => {
59
  const totalDiscovered = collectedPiclets.length;
60
  const uniqueObjects = new Set(collectedPiclets.map(p => p.objectName)).size;
61
  const canonicalCount = collectedPiclets.filter(p => p.isCanonical).length;
@@ -140,7 +132,7 @@
140
  </div>
141
  </div>
142
 
143
- <!-- Search and Filters -->
144
  <div class="controls">
145
  <input
146
  type="text"
@@ -148,29 +140,6 @@
148
  bind:value={searchQuery}
149
  class="search-input"
150
  />
151
- <div class="view-selector">
152
- <button
153
- class="view-btn"
154
- class:active={viewMode === 'all'}
155
- onclick={() => viewMode = 'all'}
156
- >
157
- All
158
- </button>
159
- <button
160
- class="view-btn"
161
- class:active={viewMode === 'canonical'}
162
- onclick={() => viewMode = 'canonical'}
163
- >
164
- Canonical
165
- </button>
166
- <button
167
- class="view-btn"
168
- class:active={viewMode === 'variations'}
169
- onclick={() => viewMode = 'variations'}
170
- >
171
- Variations
172
- </button>
173
- </div>
174
  </div>
175
 
176
  <!-- Collection Grid -->
 
11
  let canonicalPiclets: PicletInstance[] = $state([]);
12
  let isLoading = $state(true);
13
  let selectedPiclet: PicletInstance | null = $state(null);
 
14
  let searchQuery = $state('');
15
 
16
+ // Filter piclets based on search
17
+ let filteredPiclets = $derived.by(() => {
18
  let piclets = collectedPiclets;
19
 
 
 
 
 
 
 
 
20
  // Filter by search query
21
  if (searchQuery.trim()) {
22
  const query = searchQuery.toLowerCase();
 
31
  });
32
 
33
  // Group piclets by object for display
34
+ let groupedPiclets = $derived.by(() => {
35
  const groups = new Map<string, PicletInstance[]>();
36
 
37
  filteredPiclets.forEach(piclet => {
 
47
  });
48
 
49
  // Stats calculation
50
+ let stats = $derived.by(() => {
51
  const totalDiscovered = collectedPiclets.length;
52
  const uniqueObjects = new Set(collectedPiclets.map(p => p.objectName)).size;
53
  const canonicalCount = collectedPiclets.filter(p => p.isCanonical).length;
 
132
  </div>
133
  </div>
134
 
135
+ <!-- Search -->
136
  <div class="controls">
137
  <input
138
  type="text"
 
140
  bind:value={searchQuery}
141
  class="search-input"
142
  />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
143
  </div>
144
 
145
  <!-- Collection Grid -->
src/lib/db/piclets.ts CHANGED
@@ -103,29 +103,8 @@ export async function getPicletInstance(id: number): Promise<PicletInstance | un
103
 
104
  // Get collected piclets (those that have been discovered)
105
  export async function getCollectedPiclets(): Promise<PicletInstance[]> {
106
- console.log('πŸ” DEBUG: Getting collected piclets...');
107
-
108
- // First, let's see ALL records in the database
109
  const allRecords = await db.picletInstances.toArray();
110
- console.log('πŸ“Š Total records in DB:', allRecords.length);
111
- console.log('πŸ“‹ All records:', allRecords);
112
-
113
- // Check what values we have for isInCollection
114
- allRecords.forEach((record, i) => {
115
- console.log(`Record ${i}:`, {
116
- id: record.id,
117
- typeId: record.typeId,
118
- nickname: record.nickname,
119
- isInCollection: record.isInCollection,
120
- isInCollection_type: typeof record.isInCollection,
121
- isInCollection_value: JSON.stringify(record.isInCollection)
122
- });
123
- });
124
-
125
- // Filter by isInCollection (using filter instead of where/equals for boolean reliability)
126
- const result = allRecords.filter(p => p.isInCollection === true);
127
- console.log('βœ… Filtered result:', result.length, 'piclets found');
128
- return result;
129
  }
130
 
131
  // Get canonical piclets
 
103
 
104
  // Get collected piclets (those that have been discovered)
105
  export async function getCollectedPiclets(): Promise<PicletInstance[]> {
 
 
 
106
  const allRecords = await db.picletInstances.toArray();
107
+ return allRecords.filter(p => p.isInCollection === true);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
108
  }
109
 
110
  // Get canonical piclets