# Задачи
## Архитектура приложения
Продумать и реализовать новую масштабируемую архитектуру приложения(файловая структура, подключаемые модули, роутинг, стейт менеджмент и тд).
### State manager
Продумать необходимость менеджера стейтов(redux/?) и его применение.
## Реквест-моки
Есть потребность на реквест-моки для реализации модулей без реализованных методов бэкенда, чтобы упростить и ускорить подключение методов по мере их реализации бэкендом.
## Единый функционал Modal/Drawer
Есть необходимость в едином функционале открытия/получения данных с модалок и дроверов. Сейчас происходит копирование из модуля в модуль функционала, написанного на коленке без адекватной типизации.
## Локализации
Подключить функционал и реализовать базовую архитектуру локализации приложения.
## Отвязать логику UI
Сейчас UI сильно завязан(в основном грид) от функционала приложения и jrpc, что мешает его вынести в отдельную библиотеку.
## Вынести UI как зависимость
После отвязывания UI, вынести UI в отдельную библиотеку, что позволит переиспользовать как библиотеку компонентов. Так же появится возможность вынести документацию в отдельный репозиторий.
## Документация
Сейчас документация проекта и UI в одном месте. Если выносить UI в библиотеку, надо ее разделить?
## Тесты модулей
Сейчас отсутствует даже базовое тестирование модулей. Реализовать функционал тестирования модулей и предоставить пример.
## VSCode конфиги
Перенести важные конфиги VSCode в репозиторий.
## Тесты UI
Реализовать тесты для UI расширенного функционала базовых antd/новых компонентов.
## Роутинг
Продумать переход с одной формы на другую с передачей данных и колбеками.
## Grid
Динамический пропс columns. Сейчас учитываются колонки при первом рендере, последующие изменения пропса не учитываются.
## Pivot grid
Продумать и реализовать функционал pivot в гриде/новом компоненте?
## Дать более гибкие настройки для Grid'а
* Фильтр без кнопки + live search?
* Кастомизация кнопки поиска
## Dnd в transfer
Реализовать функционал DnD с сортировкой в компоненте Transfer.
## Типизация
Скорректировать и дописать типизацию для компонентов в UI.
## Тесты/проверка на ошибки
Реализовать проверку тестов и кода на наличие ошибок и при создании пр, при их наличии - не давать коммитить.
## Линтер
Актуализировать настройки линтера
## Неиспользуемые стили
Ввести проверку неиспользуемых стилей
## ?
* Пагинации и стейт. Есть ли возможность использовать подстановку данных при гриде, контролируемым бэкендом?
---
# Блокнот
#### Codestyle
Именование типов T/I => !
#### создание модуля/компонента
##### Helpers
...
##### Хуки
useHook / index.ts?
##### Тесты ?
```text
/app
┣ ...
┣ /src
┃ ┗ /modules
┃ ┗ /frontpage
┃ ┗ /module
┃ ┣ module.tsx
┃ ┗ module.test.tsx
┗...
```
##### Предлагаемая структура
```
/app
┣ ...
┗ ...
```
#### предложения:
##### Ануар:
1. сложить интерфейсы в одну единую папку, сейчас либо дублируется во многих местах либо импортируется с чужого модуля.
2. единый формат нейминга ф-ий. действиеНадЧем, onDeleteDirections вместо onDirectionsDelete.
3. Возможно стоит предусмотреть тестирование ответов бэка на соответствие нашим вручную описанным интерфейсам.