feat: big major update

This commit is contained in:
2026-02-02 04:00:37 +03:00
parent bbab6fc46a
commit d557664b25
34 changed files with 1801 additions and 665 deletions

View File

@@ -9,8 +9,7 @@ import {
Box,
} from "@mui/material";
import { observer } from "mobx-react-lite";
import { ArrowLeft, Save } from "lucide-react";
import { Loader2 } from "lucide-react";
import { ArrowLeft, Loader2, Save } from "lucide-react";
import { useNavigate, useParams } from "react-router-dom";
import { toast } from "react-toastify";
import {
@@ -18,16 +17,15 @@ import {
countryStore,
languageStore,
mediaStore,
isMediaIdEmpty,
CashedCities,
LoadingSpinner,
} from "@shared";
import { useEffect, useState } from "react";
import { LanguageSwitcher, ImageUploadCard } from "@widgets";
import {
SelectMediaDialog,
UploadMediaDialog,
PreviewMediaDialog,
} from "@shared";
import { useEffect, useState } from "react";
import { LanguageSwitcher, ImageUploadCard } from "@widgets";
export const CityEditPage = observer(() => {
const navigate = useNavigate();
@@ -99,13 +97,17 @@ export const CityEditPage = observer(() => {
editCityData[language].name,
editCityData.country_code,
media.id,
language
language,
);
};
const selectedMedia = editCityData.arms
? mediaStore.media.find((m) => m.id === editCityData.arms)
: null;
const selectedMedia =
editCityData.arms && !isMediaIdEmpty(editCityData.arms)
? mediaStore.media.find((m) => m.id === editCityData.arms)
: null;
const effectiveArmsUrl = isMediaIdEmpty(editCityData.arms)
? null
: selectedMedia?.id ?? editCityData.arms;
if (isLoadingData) {
return (
@@ -149,7 +151,7 @@ export const CityEditPage = observer(() => {
e.target.value,
editCityData.country_code,
editCityData.arms,
language
language,
)
}
/>
@@ -165,7 +167,7 @@ export const CityEditPage = observer(() => {
editCityData[language].name,
e.target.value,
editCityData.arms,
language
language,
);
}}
>
@@ -181,17 +183,17 @@ export const CityEditPage = observer(() => {
<ImageUploadCard
title="Герб города"
imageKey="image"
imageUrl={selectedMedia?.id}
imageUrl={effectiveArmsUrl}
onImageClick={() => {
setIsPreviewMediaOpen(true);
setMediaId(selectedMedia?.id ?? "");
setMediaId(effectiveArmsUrl ?? "");
}}
onDeleteImageClick={() => {
setEditCityData(
editCityData[language].name,
editCityData.country_code,
"",
language
language,
);
setActiveMenuType(null);
}}