

Поисковик отелей через Travelpayouts API
JS ES6
React SPA
,react-router-dom v6
redux
,react-redux
,redux-toolkit
,Saga
,redux-persist
, LocalStorage – стейт-менеджмент и кеширование данныхformik
– валидация полейreact-datepicker
– кастомный дейтпикер для выбора датdate-fns
– локализация дейтпикераswiper
– свайпер картинокuniqid
– для уникальных айдиsass
,classnames
– стили: переменные, миксины, вложенность и переиспользование стилейESlint
– линтингVercel
– деплой
-
Вход по логину-паролю
свалидацией полей
-
Кеширование состояния
пользователя в localstorage -
Получение отелей по API
из формы (город, дата, дни) -
Отрисовка списков
найденных / избранных отелей - Сохранение в избранное / удаление отелей
-
Сортировка по цене, по рейтингу
избранных отелей -
Анимации блоков с меняющейся шириной
-
UI-состояния
: hover, active, disabled и т.д. -
Адаптивная верстка
с flex - Кастомные utils для
работы с датами
исклонениями слов
- Кастомный хук для получения размеров доступного экрана
- 3 страницы: Login, Hotels, ErrorPage
- Hotels –
protected route
: lдоступ только после логина
-
Валидация формы логина
через Formik - Логин – любая почта
- Пароль – без кириллицы, минимум 8 символов
- Кнопка submit: disabled, если поля невалидны
- Кастомный
datepicker
- Разбит на логические слайсы
- Асинхронные запросы к API через
saga
- Стейт логина кешируется в
LocalStorage
- Состояние до запроса – выводом полей “нет данных” в блоки
- Состояние ожидания – через попап и спиннер
- Состояние ошибки – через попап с выводом ошибки
-
Адаптивная верстка
320px => 1440px -
Резиновые размеры шрифтов
-
Раскрытие блоков по кнопке
на планшетных и мобильных разрешениях - Состояния
hover
иactive
у UI-компонентов -
Анимации блоков
с изменяющейся шириной (блоки “избранное” и “найденные отели”) - Блоки с ограничениями по высоте и
скроллбарами
- clone branch with
git@github.com:proehavshiy/google-books-searcher.git
npm run build
– build final versionnpm run start
– start dev mode

Leave a Reply