updateFilter(e) - gmontero/bsale-market-design-doc GitHub Wiki
Descripción
Esta función se ejecuta cuando existen cambios en los checkbox de los filtros, actualizando el estado de los mismos. En primer lugar valida si el chechkbox esta checkeado para agregarlo al arreglo de filtros, si no esta checkeado se hace un filter a los del state para obtener su index y para cerciorarse de que realmente está el filtro, luego se elimina.
function updateFilter(e) {
try {
const { checked, dataset, value } = e.target
if (checked) {
filters.push({
//si no encuentra data-filter utiliza data-info
[dataset.filter || dataset.info]: value
})
} else {
let filterIndex
filters.filter((filter, i) => {
//si no encuentra data-filter utiliza data-info
const prevFilter = filter[dataset.filter || dataset.info] === value
if (prevFilter) {
filterIndex = i
return prevFilter
}
}).length && filters.splice(filterIndex, 1)
}
} catch (ex) {
console.warn(ex)
}
if (auto) {
filterCollection(e);
}
}