mirror of
https://codeberg.org/demostf/frontend.git
synced 2026-06-03 18:24:12 +02:00
filter clear
This commit is contained in:
parent
ea7d0c5e42
commit
28782ff609
6 changed files with 77 additions and 31 deletions
|
|
@ -13,17 +13,29 @@ ready(() => {
|
|||
render(() => <FilterBar maps={maps} api={api} onChange={onFilter.bind(null, api, demoListBody)}/>, filterBar);
|
||||
});
|
||||
|
||||
let lastFilter = {
|
||||
mode: "",
|
||||
map: "",
|
||||
players: []
|
||||
};
|
||||
|
||||
const filterEq = (a, b) => {
|
||||
return (a.mode || "") === (b.mode || "")
|
||||
&& (a.map || "") === (b.map || "")
|
||||
&& a.players.length === b.players.length && b.players.every(player => a.players.includes(player))
|
||||
}
|
||||
|
||||
const onFilter = async (api, demoListBody, filter) => {
|
||||
if (!(filter.mode || filter.map || filter.players.length)) {
|
||||
if (filterEq(lastFilter, filter)) {
|
||||
return;
|
||||
}
|
||||
lastFilter = filter;
|
||||
|
||||
let queryParams = new URLSearchParams({
|
||||
players: filter.players.map(player => player.id).join(','),
|
||||
mode: filter.mode.toLowerCase(),
|
||||
map: filter.map,
|
||||
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();
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue