feat: role system
This commit is contained in:
@@ -14,6 +14,7 @@ import {
|
||||
BackButton,
|
||||
TabPanel,
|
||||
languageStore,
|
||||
authStore,
|
||||
Language,
|
||||
cityStore,
|
||||
isMediaIdEmpty,
|
||||
@@ -40,7 +41,7 @@ import { SaveWithoutCityAgree } from "@widgets";
|
||||
|
||||
export const CreateInformationTab = observer(
|
||||
({ value, index }: { value: number; index: number }) => {
|
||||
const { cities } = cityStore;
|
||||
const canReadCities = authStore.canRead("cities");
|
||||
const [mediaId, setMediaId] = useState<string>("");
|
||||
const [isPreviewMediaOpen, setIsPreviewMediaOpen] = useState(false);
|
||||
const [isUploadMediaOpen, setIsUploadMediaOpen] = useState(false);
|
||||
@@ -64,6 +65,30 @@ export const CreateInformationTab = observer(
|
||||
// НОВОЕ СОСТОЯНИЕ ДЛЯ ПРЕДУПРЕЖДАЮЩЕГО ОКНА
|
||||
const [isSaveWarningOpen, setIsSaveWarningOpen] = useState(false);
|
||||
|
||||
const baseCities = canReadCities
|
||||
? cityStore.cities["ru"]?.data ?? []
|
||||
: authStore.meCities["ru"].map((city) => ({
|
||||
id: city.city_id,
|
||||
name: city.name,
|
||||
country: "",
|
||||
country_code: "",
|
||||
arms: "",
|
||||
}));
|
||||
|
||||
const availableCities =
|
||||
sight.city_id && !baseCities.some((city) => city.id === sight.city_id)
|
||||
? [
|
||||
{
|
||||
id: sight.city_id,
|
||||
name: sight.city || `Город ${sight.city_id}`,
|
||||
country: "",
|
||||
country_code: "",
|
||||
arms: "",
|
||||
},
|
||||
...baseCities,
|
||||
]
|
||||
: baseCities;
|
||||
|
||||
useEffect(() => {}, [hardcodeType]);
|
||||
|
||||
useEffect(() => {
|
||||
@@ -208,17 +233,16 @@ export const CreateInformationTab = observer(
|
||||
/>
|
||||
|
||||
<Autocomplete
|
||||
options={cities["ru"]?.data ?? []}
|
||||
options={availableCities}
|
||||
value={
|
||||
cities["ru"]?.data?.find(
|
||||
(city) => city.id === sight.city_id
|
||||
) ?? null
|
||||
availableCities.find((city) => city.id === sight.city_id) ?? null
|
||||
}
|
||||
getOptionLabel={(option) => option.name}
|
||||
onChange={(_, value) => {
|
||||
setCity(value?.id ?? 0);
|
||||
handleChange({
|
||||
city_id: value?.id ?? 0,
|
||||
city: value?.name ?? "",
|
||||
});
|
||||
}}
|
||||
renderInput={(params) => (
|
||||
|
||||
@@ -14,6 +14,7 @@ import {
|
||||
BackButton,
|
||||
TabPanel,
|
||||
languageStore,
|
||||
authStore,
|
||||
Language,
|
||||
cityStore,
|
||||
editSightStore,
|
||||
@@ -62,10 +63,35 @@ export const InformationTab = observer(
|
||||
const [hardcodeType, setHardcodeType] = useState<
|
||||
"thumbnail" | "watermark_lu" | "watermark_rd" | "video_preview" | null
|
||||
>(null);
|
||||
const { cities } = cityStore;
|
||||
const canReadCities = authStore.canRead("cities");
|
||||
|
||||
const [isSaveWarningOpen, setIsSaveWarningOpen] = useState(false);
|
||||
|
||||
const baseCities = canReadCities
|
||||
? cityStore.cities["ru"]?.data ?? []
|
||||
: authStore.meCities["ru"].map((city) => ({
|
||||
id: city.city_id,
|
||||
name: city.name,
|
||||
country: "",
|
||||
country_code: "",
|
||||
arms: "",
|
||||
}));
|
||||
|
||||
const availableCities =
|
||||
sight.common.city_id &&
|
||||
!baseCities.some((city) => city.id === sight.common.city_id)
|
||||
? [
|
||||
{
|
||||
id: sight.common.city_id,
|
||||
name: sight.common.city || `Город ${sight.common.city_id}`,
|
||||
country: "",
|
||||
country_code: "",
|
||||
arms: "",
|
||||
},
|
||||
...baseCities,
|
||||
]
|
||||
: baseCities;
|
||||
|
||||
useEffect(() => {}, [hardcodeType]);
|
||||
|
||||
useEffect(() => {
|
||||
@@ -208,11 +234,9 @@ export const InformationTab = observer(
|
||||
/>
|
||||
|
||||
<Autocomplete
|
||||
options={cities["ru"]?.data ?? []}
|
||||
options={availableCities}
|
||||
value={
|
||||
cities["ru"]?.data?.find(
|
||||
(city) => city.id === sight.common.city_id
|
||||
) ?? null
|
||||
availableCities.find((city) => city.id === sight.common.city_id) ?? null
|
||||
}
|
||||
getOptionLabel={(option) => option.name}
|
||||
onChange={(_, value) => {
|
||||
@@ -221,6 +245,7 @@ export const InformationTab = observer(
|
||||
language as Language,
|
||||
{
|
||||
city_id: value?.id ?? 0,
|
||||
city: value?.name ?? "",
|
||||
},
|
||||
true
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user