demo filtering

This commit is contained in:
Robin Appelman 2023-04-13 23:33:20 +02:00
commit 57d034159b
14 changed files with 402 additions and 35 deletions

View file

@ -8,6 +8,22 @@ ready(() => {
const maps = filterBar.dataset.maps.split(",");
const apiBase = filterBar.dataset.apiBase;
const api = new Api(apiBase);
const demoListBody = document.querySelector('.demolist tbody');
render(() => <FilterBar maps={maps} api={api} />, filterBar)
});
render(() => <FilterBar maps={maps} api={api} onChange={onFilter.bind(null, api, demoListBody)}/>, filterBar);
});
const onFilter = async (api, demoListBody, filter) => {
if (!(filter.mode || filter.map || filter.players.length)) {
return;
}
let queryParams = new URLSearchParams({
players: filter.players.map(player => player.id).join(','),
mode: filter.mode.toLowerCase(),
map: filter.map,
});
console.log(queryParams);
const response = await fetch("/fragments/demo-list?" + queryParams);
document.querySelector('.demolist tbody').innerHTML = await response.text();
}