1) У тебя useEffect использует переменные от изменения которых не зависит. Не делай так.
2) Нафига столько раз вызывать setState? сделай так, чтобы один раз.
3) Почему map, а не forEach?
Да вроде норм манипуляции с фильтром. Вот ток вынеси в утильку это и будет что-то типа :
const sortedData = getSortedData(data, sortType)
setData(sortedData)
2) Нафига столько раз вызывать setState? сделай так, чтобы один раз.
3) Почему map, а не forEach?