feat: Update city logic in map page with scrollbar

This commit is contained in:
2025-10-02 04:38:15 +03:00
parent db64beb3ee
commit 7382a85082
3 changed files with 510 additions and 409 deletions

View File

@@ -1,62 +0,0 @@
# Селектор городов
## Описание функциональности
Добавлена функциональность выбора города в админ-панели "Белые ночи":
### Основные возможности:
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. Пользователь может изменить город в форме если нужно
Функциональность полностью интегрирована и готова к использованию.

File diff suppressed because it is too large Load Diff

View File

@@ -514,4 +514,4 @@ export const CreateInformationTab = observer(
</>
);
}
);
);