это генерируются фильтры
const { groups} = filterItems;
const templateGroupFiltres = groups.reduce((template, group) => {
const templateItem = `<label class='filter-checkbox map-filter__checkbox'><input type='radio' name=${group.id} class='filter-checkbox__checkbox'><div class='filter-checkbox__content'><span class='filter-checkbox__text'>${group.name}</div></label>`;
return template + templateItem;
}, '');
this.filtresContainer.insertAdjacentHTML('beforeend', templateGroupFiltres);
};
<div class="map-filter__list">
<label class="filter-checkbox map-filter__checkbox">
<input type="radio" name=showAll class="filter-checkbox__checkbox" checked>
<div class="filter-checkbox__content">
<span class="filter-checkbox__text">Все объекты</span>
</div>
как переделать условия фильтрации, чтобы каждый фильтр можно было выбрать по одному?
сейчас выбираются либо все обьекты, либо любое количество сгенерированных фильтровБ нужно из генерированных выбрать только один
this.filtresContainer.addEventListener('change', (e) => {
const filtres = []
.slice
.call(this.filtresContainer.querySelectorAll('.filter-checkbox__checkbox'));
if (e.target.name === 'showAll' && e.target.checked) {
filtres.forEach((filter) => {
if(filter.name !== 'showAll'){
filter.checked = false
} else{
null
}
})
objManager.setFilter(() => true);
}
else {
filtres.forEach((filter) => {
if (filter.name === 'showAll' && e.target.checked){
filter.checked = false
} else{
null
}
})
objManager.setFilter((obj) => {
if (obj.groupId === 'project') {
return true;
}
else{
return filtres
.find((filter) => filter.name === obj.groupId)
.checked;
}
});
};
})