1. Почитайте про
управляемые компоненты. Знаний, полученных из статьи, должно хватить чтобы собрать значения всех фильтров с состояние компонента.
2. Для параллельного запроса к массиву источников можно использовать Promise.all или поискать реализации Promise.settled. Почитайте
это обсуждение, где обсуждается проблема отклоненного Promise. Результаты так-же пишите в state.
3. Почитайте про
списки и ключи. Знаний, полученных из статьи, вам должно хватить, чтобы отрисовать полученные данные в виде списка.