|
129 | 129 |
|
130 | 130 | // Handle eVault selection changes
|
131 | 131 | 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 | + } |
134 | 153 |
|
135 | 154 | if (checked) {
|
136 |
| - selectedEVaults = [...selectedEVaults, globalIndex]; |
| 155 | + selectedEVaults = [...selectedEVaults, originalIndex]; |
137 | 156 | } else {
|
138 |
| - selectedEVaults = selectedEVaults.filter((i) => i !== globalIndex); |
| 157 | + selectedEVaults = selectedEVaults.filter((i) => i !== originalIndex); |
139 | 158 | }
|
140 | 159 |
|
141 | 160 | // Store selections immediately in sessionStorage
|
|
159 | 178 | // Handle select all eVaults
|
160 | 179 | function handleSelectAllEVaults(checked: boolean) {
|
161 | 180 | 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); |
163 | 185 |
|
164 | 186 | 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); |
168 | 196 | } else {
|
169 | 197 | // Deselect all eVaults
|
170 | 198 | selectedEVaults = [];
|
|
0 commit comments