На данный момент закончил работу над корзиной.
Что нового:
- Реализовал корзину для неавторизованных пользователей через гостевую сессию и httpOnly cookie
- Проверка остатка на складе и пересчёт суммы корзины происходят на бэкенде
- Подключил TanStack Query: корзина, счётчик в Header и страница корзины синхронизированы между собой без перезагрузки
- Настроил CORS с поддержкой credentials для запросов между фронтом и бэком
- Добавил оптимистичные обновления: изменение количества и удаление товара происходят сразу, а при ошибке сервера состояние откатывается
- По пути нашёл и поправил пару багов
Корзина самый насыщенный функциональный блок на текущий момент. Состояние нужно синхронизировать сразу в нескольких местах интерфейса (счётчик в хедере, страница корзины), и сама корзина при этом должна оставаться источником истины на бэкенде, а не жить только на фронте. TanStack Query сюда хорошо вписался.
По плану - авторизация.
Начну со входа по email и коду, возможно ещё magic link, а дальше уже буду развивать эту часть.
Идём дальше
