diff --git a/frontend/src/routes/YoutubeDashboard.svelte b/frontend/src/routes/YoutubeDashboard.svelte index 50f6630..92497c6 100644 --- a/frontend/src/routes/YoutubeDashboard.svelte +++ b/frontend/src/routes/YoutubeDashboard.svelte @@ -21,6 +21,8 @@ let allChannels = $state([]); let editingCategories = $state(false); let prevSelectedId = $state(null); + let searchQuery = $state(''); + let searchTimeout = null; // Agent queue state let agentItems = $state([]); @@ -74,6 +76,13 @@ if (channelFilter && !channelFilter.startsWith('📁')) { params.set('channel', channelFilter); } + if (searchQuery.trim()) { + params.set('search', searchQuery.trim()); + } + if (searchQuery.trim()) { + params.delete('status'); + params.set('limit', '50'); + } const res = await fetch(`/api/videos?${params}`); if (res.ok) { videos = await res.json(); @@ -478,6 +487,25 @@ {/if} {:else} + +
+
+ 🔍 + { + clearTimeout(searchTimeout); + searchTimeout = setTimeout(loadVideos, 300); + }} + onkeydown={(e) => { if (e.key === 'Enter') { clearTimeout(searchTimeout); loadVideos(); } }} /> + {#if searchQuery} + + {/if} +
+
{#if (allChannels.length || channels.length) > 1}