1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
const instance = window.PagefindComponents.getInstanceManager().getInstance('default');
const sortSelect = document.getElementById('sort-select');
let sortConfig = null;
function applySort(value) {
sortConfig = value ? { episode_number: value } : null;
instance.triggerSearch(instance.searchTerm || '');
}
instance.on('results', () => {
const pf = instance.__pagefind__;
if (pf && !pf._sortPatched) {
const orig = pf.search.bind(pf);
pf.search = (term, opts = {}) => orig(term, sortConfig ? { ...opts, sort: sortConfig } : opts);
pf._sortPatched = true;
}
});
sortSelect.addEventListener('change', (e) => applySort(e.target.value));
let searchTimer;
instance.on('results', () => {
const term = instance.searchTerm;
if (!term) return;
clearTimeout(searchTimer);
searchTimer = setTimeout(() => {
window.goatcounter?.count({ path: 'search:' + term, title: 'Search: ' + term, event: true });
}, 800);
});