- Используем классическую архитектуру (свалка компонентов)
- В каждом модуле слоя используем entrypoint и реэкспортируем сущности через него.
- Используем алиасы.
- В api: авторизация, поиск, фильм, оценка. Делаем по доке: https://redux-toolkit.js.org/rtk-query/overview#basic-usage. Путь 'api/movieApi.ts', 'api/searchApi.ts'.
- Используем module css;
- Пропсы: ComponentProps на уровне компонента над компонентом;
- Оптимизации: useMemo для массивов и объектов, useCallback для всех функций с зависимостями (при пустом массиве зависимостей выносим из компонента);
- Используем суффикс Page;
- Храним по пути '@components/ComponentName', в самом компоненте index.ts с реэкспортом.
- components
- Button
- Button.tsx
- index.ts
- types.ts?
- Button
- components
- Храним рядом с сущностью (либо в файле, либо в types TS); import { Button, ButtonProps } from '@components/button';
- Экспортируем с припиской тип;
- Всё на стрелочных функциях
- Переиспользуемые типы кладём в types.ts
- Описать переменные в соответствии с палитрами
- Импортируем classnames и используем как cn
- StrictMode
- Husky?
- Необходимость store'a
- Сделать роутинг через конфиг и компоненты
- Показать разницу по работе с роутом (useParams против пропа в Next)
- Хедер с авторизацией - Дима
- Вёрстка хедера
- Модалка
- Логика по авторизации: слайс, мидлвара для работы с токеном
- Авторизация
- Страница поиска фильма - Миша
- Строка поиска
- Фильтры
- Список фильмов
- Пагинация
- Лоадер
- Страница фильма - Лёша
- Блок картинки с описанием фильма
- Скрины
- Оценка