На этом этапе полностью закрыл фильтрацию и пагинацию каталога.
Что нового:
- Добавил категориальные фильтры для всех трёх категорий: цвет, серия, память, чип, RAM, тип дисплея
- Добавил числовые фильтры: цена и диагональ экрана (запрос уходит по debounce)
- Добавил мультивыбор значений внутри одного фильтра
- Собрал конфигурацию фильтров по категориям - для iPhone, Mac и Watch отображаются свои наборы атрибутов без дублирования логики
- Реализовал пагинацию с сохранением выбранных фильтров при переключении страниц. Тут решил не делать InfiniteScroll
- Добавил loading-скелетон во время загрузки следующей страницы
- Связал карточки товаров в каталоге с детальными страницами
- Детальная страница теперь отображает характеристики в зависимости от категории товара
Набор доступных характеристик отличается у разных категорий, но не хотелось делать отдельную логику под каждую из них. В итоге собрал конфигурацию, на основе которой фронт понимает, какие фильтры и значения нужно показать.
Дальше по плану - корзина:
привязка к сессии без авторизации (пока что, после корзины сделаю авторизацию);
пересчёт суммы корзины на бэкенде;
проверка доступного остатка;
базовый скелет страницы корзины.
Пока план такой, идём дальше
