Техническое задание - открыть
- Created with: CRA
- Node -v: v16.15.0
- npm install
- npm run start:dev
React v18.2.0
- CRAReact Router Dom
- для навигации между страницамиReact Dropzone
- для drag&drop добавления изображенийClassNames
- для удобной работы с CSS ModulesSASS/SCSS
env-cmd
- для запуска/билда с конфигов .env под дев и прод окружениеaxios
- для resttypescript
- для типизации данныхstorybook
- для тестирования компонентовcreatePortal
- для создания модального окна
- GET /auth -
сделано
- GET /companies/ID -
сделано
- PATCH /companies/ID - не сделано
- DELETE /companies/ID -
сделано
- POST /companies/ID/image - не сделано
- DELETE /companies/ID/image/IMAGE_NAME - не сделано
- GET /conacts/ID -
сделано
- PATCH /conacts/ID -
сделано
Попытался отрендерить одним компонентом данные из блока "ОБЩАЯ ИНФОРМАЦИЯ" и "КОНТАКТНЫЕ ДАННЫЕ", но из-за этого в дальнейшем не очень удобно было прикрутить редактированние данных, переделывать компонент уже не стал, так как не хватило времени, то же с запросами на фото. Вывод
: изначально недостаточно хорошо продумал структуру компонентов.
Axios
- Добавление токена авторизации в дефолтные заголовки для всех запросов в файле App.tsx, все запросы вынесены вRequestService.tsx
Constants
- различные константы выведенны в.env
файл и вConstants
папкуAssets
- все статичные иконки выведены в/Helpers/Icons
и их можно удобно доставать в остальных компонентахStyles/SCSS
- для стилизации использовались:SCSS + BEM + CSS Modules + CSS Vars
Router
- обработана страница404
Button
- имеет различные вариации стилей/иконок, можно посмотреть вstorybook
createPortal
- все модальные окна сделаны при помощи порталов
- Несколько АПИ методов не обработаны
- Адаптив под меньшие разрешения экраны
- Валидация формы с инпутами
- jest/screen тесты