63 lines
3.3 KiB
Markdown
63 lines
3.3 KiB
Markdown
# Селектор городов
|
||
|
||
## Описание функциональности
|
||
|
||
Добавлена функциональность выбора города в админ-панели "Белые ночи":
|
||
|
||
### Основные возможности:
|
||
|
||
1. **Селектор городов в шапке приложения**
|
||
|
||
- Расположен рядом с именем пользователя в верхней части приложения
|
||
- Показывает список всех доступных городов
|
||
- Имеет иконку MapPin для лучшего UX
|
||
|
||
2. **Сохранение в localStorage**
|
||
|
||
- Выбранный город автоматически сохраняется в localStorage
|
||
- При перезагрузке страницы выбранный город восстанавливается
|
||
|
||
3. **Автоматическое использование в формах**
|
||
- При создании новой станции выбранный город автоматически подставляется
|
||
- При создании нового перевозчика выбранный город автоматически подставляется
|
||
- Пользователь может изменить город в форме при необходимости
|
||
|
||
### Технические детали:
|
||
|
||
#### Новые компоненты и сторы:
|
||
|
||
- `SelectedCityStore` - стор для управления выбранным городом
|
||
- `CitySelector` - компонент селектора городов
|
||
- `useSelectedCity` - хук для удобного доступа к выбранному городу
|
||
|
||
#### Интеграция:
|
||
|
||
- Селектор добавлен в `Layout` компонент
|
||
- Интегрирован в `StationCreatePage` и `CarrierCreatePage`
|
||
- Использует существующий `CityStore` для получения списка городов
|
||
|
||
#### Файлы, которые были изменены:
|
||
|
||
- `src/widgets/Layout/index.tsx` - добавлен CitySelector
|
||
- `src/pages/Station/StationCreatePage/index.tsx` - автоматическая подстановка города
|
||
- `src/pages/Carrier/CarrierCreatePage/index.tsx` - автоматическая подстановка города
|
||
- `src/shared/store/index.ts` - добавлен экспорт SelectedCityStore
|
||
- `src/widgets/index.ts` - добавлен экспорт CitySelector
|
||
- `src/shared/index.tsx` - добавлен экспорт hooks
|
||
|
||
#### Новые файлы:
|
||
|
||
- `src/shared/store/SelectedCityStore/index.ts`
|
||
- `src/widgets/CitySelector/index.tsx`
|
||
- `src/shared/hooks/useSelectedCity.ts`
|
||
- `src/shared/hooks/index.ts`
|
||
|
||
### Использование:
|
||
|
||
1. Пользователь выбирает город в селекторе в шапке приложения
|
||
2. Выбранный город сохраняется в localStorage
|
||
3. При создании новой станции или перевозчика выбранный город автоматически подставляется в форму
|
||
4. Пользователь может изменить город в форме если нужно
|
||
|
||
Функциональность полностью интегрирована и готова к использованию.
|