Skip to content

Commit 9db3ccc

Browse files
committed
hotfix: control panel search issue
1 parent 233710e commit 9db3ccc

File tree

1 file changed

+36
-8
lines changed

1 file changed

+36
-8
lines changed

infrastructure/control-panel/src/routes/+page.svelte

Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -129,13 +129,32 @@
129129
130130
// Handle eVault selection changes
131131
function handleEVaultSelectionChange(index: number, checked: boolean) {
132-
// Convert page-relative index to global index
133-
const globalIndex = (currentPage - 1) * itemsPerPage + index;
132+
// Get the filtered eVaults to work with the current search results
133+
const filtered = filteredEVaults();
134+
135+
// Convert page-relative index to filtered array index
136+
const filteredIndex = (currentPage - 1) * itemsPerPage + index;
137+
138+
// Get the actual eVault from the filtered results
139+
const selectedEVault = filtered[filteredIndex];
140+
141+
if (!selectedEVault) {
142+
console.error('Selected eVault not found in filtered results');
143+
return;
144+
}
145+
146+
// Find the index of this eVault in the original evaults array
147+
const originalIndex = evaults.findIndex((e) => e.evaultId === selectedEVault.evaultId);
148+
149+
if (originalIndex === -1) {
150+
console.error('Selected eVault not found in original evaults array');
151+
return;
152+
}
134153
135154
if (checked) {
136-
selectedEVaults = [...selectedEVaults, globalIndex];
155+
selectedEVaults = [...selectedEVaults, originalIndex];
137156
} else {
138-
selectedEVaults = selectedEVaults.filter((i) => i !== globalIndex);
157+
selectedEVaults = selectedEVaults.filter((i) => i !== originalIndex);
139158
}
140159
141160
// Store selections immediately in sessionStorage
@@ -159,12 +178,21 @@
159178
// Handle select all eVaults
160179
function handleSelectAllEVaults(checked: boolean) {
161180
console.log('🎯 handleSelectAllEVaults called with:', checked);
162-
console.log('evaults.length:', evaults.length);
181+
182+
// Get the filtered eVaults to work with the current search results
183+
const filtered = filteredEVaults();
184+
console.log('filtered eVaults length:', filtered.length);
163185
164186
if (checked) {
165-
// Select all eVaults
166-
selectedEVaults = Array.from({ length: evaults.length }, (_, i) => i);
167-
console.log('✅ Selected all eVaults, selectedEVaults:', selectedEVaults);
187+
// Select all filtered eVaults by finding their indices in the original array
188+
const filteredIndices = filtered
189+
.map((filteredEVault) => {
190+
return evaults.findIndex((e) => e.evaultId === filteredEVault.evaultId);
191+
})
192+
.filter((index) => index !== -1);
193+
194+
selectedEVaults = filteredIndices;
195+
console.log('✅ Selected all filtered eVaults, selectedEVaults:', selectedEVaults);
168196
} else {
169197
// Deselect all eVaults
170198
selectedEVaults = [];

0 commit comments

Comments
 (0)