Files
tv/web/js/home.js
T
2026-08-26 13:22:49 -05:00

56 lines
1.6 KiB
JavaScript

/*
HOME — hero with search + continue-watching row + trending rows.
*/
(function () {
'use strict';
// quick-search chips in the hero — edit freely
const QUICK_SEARCHES = ['Action', 'Comedy', 'Sci-Fi', 'Drama', 'Horror', 'Animation', 'Crime'];
SR.app.initChrome();
const sections = document.getElementById('sections');
const form = document.getElementById('heroForm');
const input = document.getElementById('heroInput');
if (form && input) {
form.addEventListener('submit', (e) => {
e.preventDefault();
const q = input.value.trim();
location.href = q ? `search.html?q=${encodeURIComponent(q)}` : 'search.html';
});
}
const chips = document.getElementById('heroChips');
if (chips) {
for (const term of QUICK_SEARCHES) {
const a = document.createElement('a');
a.className = 'chip';
a.href = `search.html?q=${encodeURIComponent(term)}`;
a.textContent = term;
chips.appendChild(a);
}
}
const cont = SR.cards.continueRow();
if (cont) sections.appendChild(cont);
function appendRow(data, title) {
if (!data || !data.count) return;
sections.appendChild(SR.cards.row(title, data.results.map(SR.cards.normalizeItem)));
}
(async () => {
try {
appendRow(await SR.api.trending('movie', 'day'), 'Trending movies today');
} catch (e) {
SR.app.showError(e, 'could not load trending movies');
}
try {
appendRow(await SR.api.trending('tv', 'week'), 'Trending shows this week');
} catch (e) {
SR.app.showError(e, 'could not load trending shows');
}
})();
})();