@AndrewRusinas

Как реализовать универсальный компонент для фильтрации таблиц?

Решаю сейчас задачу фильтрации таблиц и не могу придумать, как лучше, с точки зрения архитектуры, сделать такой компонент:
61891ad14e396627837152.png

В чем, собственно, сложности. Компонент должен синхронизироваться c query параметрами в URL, однако, для каждого фильтра должен быть свой набор полей, включая сложносоставные.

Что я имею ввиду под "сложносоставными":
1) В данном случае query будет выглядеть так: ?search=42
61891b68347dc756978688.png
2) А в этом уже ?description=42
61891bbc527ed882077454.png

То есть ключ должен генерироваться на лету в зависимости от полей.

Так же эти параметры должны парситься и попадать в список примененных фильтров:
61891c65134a3407412144.png

К чему я пришел на данный момент. Есть компонент-обёртка TableFilters, он принимает в себя массив объектов с описанием доступных фильтров, каждый такой объект содержит в себе поле component, что позволяет оборачивать наборы полей для фильтров в компоненты и переиспользовать их.

Так же каждый такой компонент умеет генерировать строку, которая будет отображена в примененных фильтрах (например "Цена от 500 до 900"). И с этим также есть определенная трудность - строка генерируется без проблем, когда мы вбиваем вручную данные. Однако при парсинге query строки, который происходит в компоненте-обёртке, компонент не знает, как правильно составить эту строку.

Это основные моменты, которые хотелось бы обсудить и понять, в каком направлении вообще двигаться.
  • Вопрос задан
  • 88 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы