diff options
| author | Adam Mathes <adam@adammathes.com> | 2026-02-13 20:49:06 -0800 |
|---|---|---|
| committer | Adam Mathes <adam@adammathes.com> | 2026-02-13 20:49:06 -0800 |
| commit | 819a39a21ac992b1393244a4c283bbb125208c69 (patch) | |
| tree | 77aabc1465648de5fedf0900c97b593452747b80 /vanilla/app.js | |
| parent | d438ff62ad8ba890fbab5380785b723ed25afd34 (diff) | |
| download | neko-819a39a21ac992b1393244a4c283bbb125208c69.tar.gz neko-819a39a21ac992b1393244a4c283bbb125208c69.tar.bz2 neko-819a39a21ac992b1393244a4c283bbb125208c69.zip | |
feat(vanilla): implement search (NK-2ypbgd)
Diffstat (limited to 'vanilla/app.js')
| -rw-r--r-- | vanilla/app.js | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/vanilla/app.js b/vanilla/app.js index 048a446..f36037b 100644 --- a/vanilla/app.js +++ b/vanilla/app.js @@ -1,6 +1,18 @@ document.addEventListener('DOMContentLoaded', () => { fetchFeeds(); fetchItems(); // Default to fetching recent items + + const searchInput = document.getElementById('search-input'); + searchInput.addEventListener('keypress', (e) => { + if (e.key === 'Enter') { + const query = searchInput.value.trim(); + if (query) { + document.getElementById('feed-title').textContent = `Search: ${query}`; + document.querySelectorAll('.feed-item').forEach(el => el.classList.remove('active')); + fetchItems(null, null, query); + } + } + }); }); async function fetchFeeds() { @@ -15,7 +27,7 @@ async function fetchFeeds() { } } -async function fetchItems(feedId = null, filter = null) { +async function fetchItems(feedId = null, filter = null, query = null) { const listEl = document.getElementById('entries-list'); listEl.innerHTML = '<div class="loading">Loading items...</div>'; @@ -24,6 +36,7 @@ async function fetchItems(feedId = null, filter = null) { if (feedId) params.append('feed_id', feedId); if (filter === 'unread') params.append('read_filter', 'unread'); if (filter === 'starred') params.append('starred', 'true'); + if (query) params.append('q', query); if ([...params].length > 0) { url += '?' + params.toString(); |
