useEffect(() => {
let listaFiltrada = cardapio;
if (busca) {
listaFiltrada = listaFiltrada.filter(item => item.title.toLowerCase().includes(busca.toLowerCase()));
}
if (filtro) {
listaFiltrada = listaFiltrada.filter(item => filtro === item.category.id);
}
if (ordenador === 'porcao') {
listaFiltrada = listaFiltrada.sort((a, b) => a.size > b.size ? 1 : -1);
}
if (ordenador === 'qtd_pessoas') {
listaFiltrada = listaFiltrada.sort((a, b) => a.serving > b.serving ? 1 : -1);
}
if (ordenador === 'preco') {
listaFiltrada = listaFiltrada.sort((a, b) => a.price - b.price ? 1 : -1);
}
setLista(listaFiltrada);
}, [busca, filtro, ordenador]);
aparentemente mais verboso, mas menos complicado, pois não precisa criar varias funções e nem regex, etc.