(selectedDesigner, elementId = 'model-designer')
| 13686 | |
| 13687 | /** |
| 13688 | * Run when filter/search inputs change the result set — synchronously, before any await. |
| 13689 | * search.js cannot access selectedModels; post-render sync alone loses races to showModelDetails(). |
| 13690 | */ |
| 13691 | function resetFilterSelectionAndDetails() { |
| 13692 | currentModelDetailsAbort = true; |
| 13693 | selectedModels.clear(); |
| 13694 | document.querySelectorAll('.file-item').forEach((item) => item.classList.remove('selected')); |
| 13695 | |
| 13696 | const multiEditPanel = document.getElementById('multi-edit-panel'); |
| 13697 | if (multiEditPanel && !multiEditPanel.classList.contains('hidden')) { |
| 13698 | multiEditPanel.classList.add('hidden'); |
| 13699 | const detailsPanel = document.getElementById('model-details'); |
| 13700 | if (detailsPanel) detailsPanel.classList.remove('hidden'); |
| 13701 | const editModeToggle = document.getElementById('edit-mode-toggle'); |
| 13702 | if (editModeToggle) { |
| 13703 | editModeToggle.textContent = 'Multi-Edit Mode'; |
| 13704 | editModeToggle.classList.remove('active'); |
| 13705 | } |
| 13706 | isMultiSelectMode = false; |
| 13707 | } |
| 13708 | |
| 13709 | clearModelDetailsSidebar(); |
| 13710 | updateSelectedCount(); |
| 13711 | } |
| 13712 | |
| 13713 | /** True if sidebar + selection state is consistent with the current filtered grid rows. */ |
no outgoing calls
no test coverage detected