- Архитектура FSD
- Typescript
- Scss
- RTK, RTK Query
- React Router
- Api - https://openlibrary.org/
- Главная
- Поиск
- Избранное
- История
- Авторицация
- Регистрация
- Карточка книги
- Учетные записи, а также избранное и история поиска хранятся в localStorage
- Код разделен на глупые и умные компоненты: Умные: MainPageContainer, BookArticle, Header Глупые: Button, Spinner, Link
- Есть рендеринг списков: MainPageContainer, SearchPageContainer, HistoryPageContainer
- Реализована форма для ввода email и password для страниц авторизации и регистрации: LoginForm
- Реализован Контекст с темой приложения - ThemeContext в Header
- Реализован кастомный хук: useFavorites
- Предохранители не реализованы
- Компоненты Link и Input используют PropsTypes
- Используется useDebounce в компонентах MainPageContainer и SearchPageContainer
- Добавлена ленивая загрузка для Routing и Spinner в качестве fallback
- Использую Modern Redux with Redux Toolkit store
- Использую слайсы: sessionSlice, favoritesSlice,historySlice
- Использую middleware для стороннего эфекта записи и чтения в localStorage historyMiddleware, favoritesMiddleware, sessionMiddleware
- Компонент Spinner используется при ожидании, например в компоненте MainPageContainer
- Компонент Protected используется в Routing для проверки на авторизацию, после чего либо дает нам доступ, либо перенаправляет на авторизацию
- Компонент Header