Fix: Debouncer into search engine. 350ms after last entry before live search.

This commit is contained in:
Johnnybegood90
2026-03-12 12:47:52 +01:00
2 changed files with 13 additions and 8 deletions
+7 -6
View File
@@ -216,21 +216,22 @@ gridtv/
└── src/
├── config.php # Config loader + migration
├── tpl/ # HTML templates
│ ├── head.php
│ ├── topbar.php
│ ├── grid.php
│ ├── modals.php
│ └── footer.php
│ ├── head.php # DOCTYPE, <head>, CSS
│ ├── topbar.php # Topbar (nav, source switcher, search, theme)
│ ├── grid.php # Grid + mobile + PiP + overlays
│ ├── modals.php # Personal EPG modal
│ └── footer.php # JS modules loader, </body></html>
└── js/ # JavaScript modules
├── config.js # Constants + PHP-injected vars
├── utils.js # Helpers, clock, EPG fetch
├── epg.js # Grid rendering
├── mobile.js # Mobile list view
├── tooltip.js # Hover tooltip
├── sources.js # Multi-EPG switcher
├── sources.js # Multi-EPG switcher + Personal EPG
├── m3u.js # M3U parser
├── player.js # HLS PiP player
├── themes.js # Theme switcher
├── search.js # Search + filter (debounced)
└── live.js # Live updates + responsive
```
+6 -2
View File
@@ -1,6 +1,7 @@
// ── SEARCH ────────────────────────────────────────────────────────────────────
let searchActive = false;
let searchQuery = '';
let searchTimer = null;
function toggleSearch() {
const bar = document.getElementById('searchBar');
@@ -21,8 +22,11 @@ function clearSearch() {
}
function onSearchInput(val) {
searchQuery = val.trim().toLowerCase();
applySearch(searchQuery);
clearTimeout(searchTimer);
searchTimer = setTimeout(() => {
searchQuery = val.trim().toLowerCase();
applySearch(searchQuery);
}, 350);
}
function applySearch(q) {