feat: add clear action to no-results message

When a search or filter yields no results, the message now includes
an inline button that resets both the search input and the active
filter. Improves discoverability and reduces dead-end frustration.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Vinta Chen
2026-03-22 15:28:25 +08:00
parent 0308fd1b3c
commit 97f18d295f
3 changed files with 34 additions and 1 deletions

View File

@@ -270,6 +270,16 @@ if (filterClear) {
});
}
// No-results clear
var noResultsClear = document.querySelector('.no-results-clear');
if (noResultsClear) {
noResultsClear.addEventListener('click', function () {
if (searchInput) searchInput.value = '';
activeFilter = null;
applyFilters();
});
}
// Column sorting
document.querySelectorAll('th[data-sort]').forEach(function (th) {
th.addEventListener('click', function () {

View File

@@ -837,6 +837,26 @@ th[data-sort].sort-asc::after {
font-size: var(--text-lg);
}
.no-results-hint {
margin-top: 0.5rem;
font-size: var(--text-sm);
}
.no-results-clear {
background: none;
border: none;
color: var(--accent-deep);
font: inherit;
cursor: pointer;
text-decoration: underline;
text-decoration-color: oklch(58% 0.16 45 / 0.4);
text-underline-offset: 0.2em;
}
.no-results-clear:hover {
color: var(--accent);
}
.final-cta {
padding-block: clamp(3rem, 7vw, 5.5rem);
background: oklch(94% 0.025 72);

View File

@@ -237,7 +237,10 @@
</table>
</div>
<div class="no-results" hidden>No libraries match your search or filter.</div>
<div class="no-results" hidden>
<p>No projects match your search or filter.</p>
<p class="no-results-hint">Try a broader term, or <button class="no-results-clear">browse all projects</button>.</p>
</div>
</section>
<section class="final-cta section-shell" data-reveal>