diff --git a/src/pages/Route/RouteCreatePage/index.tsx b/src/pages/Route/RouteCreatePage/index.tsx index bc0c5d6..0cfbec9 100644 --- a/src/pages/Route/RouteCreatePage/index.tsx +++ b/src/pages/Route/RouteCreatePage/index.tsx @@ -13,7 +13,7 @@ import { DialogContent, DialogActions, } from "@mui/material"; -import { MediaViewer } from "@widgets"; +import { MediaViewer, VideoPreviewCard } from "@widgets"; import { observer } from "mobx-react-lite"; import { ArrowLeft, Loader2, Save, Plus } from "lucide-react"; import { useEffect, useState, useMemo } from "react"; @@ -24,9 +24,10 @@ import { articlesStore } from "../../../shared/store/ArticlesStore"; import { Route, routeStore } from "../../../shared/store/RouteStore"; import { languageStore, - SelectArticleModal, + ArticleSelectOrCreateDialog, SelectMediaDialog, selectedCityStore, + UploadMediaDialog, } from "@shared"; export const RouteCreatePage = observer(() => { @@ -39,6 +40,7 @@ export const RouteCreatePage = observer(() => { const [direction, setDirection] = useState("backward"); const [scaleMin, setScaleMin] = useState(""); const [scaleMax, setScaleMax] = useState(""); + const [routeName, setRouteName] = useState(""); const [turn, setTurn] = useState(""); const [centerLat, setCenterLat] = useState(""); const [centerLng, setCenterLng] = useState(""); @@ -48,6 +50,8 @@ export const RouteCreatePage = observer(() => { useState(false); const [isSelectVideoDialogOpen, setIsSelectVideoDialogOpen] = useState(false); const [isVideoPreviewOpen, setIsVideoPreviewOpen] = useState(false); + const [isUploadVideoDialogOpen, setIsUploadVideoDialogOpen] = useState(false); + const [fileToUpload, setFileToUpload] = useState(null); const { language } = languageStore; useEffect(() => { @@ -110,6 +114,8 @@ export const RouteCreatePage = observer(() => { const handleArticleSelect = (articleId: number) => { setGovernorAppeal(articleId.toString()); setIsSelectArticleDialogOpen(false); + // Обновляем список статей после создания новой + articlesStore.getArticleList(); }; const handleVideoSelect = (media: { @@ -122,6 +128,26 @@ export const RouteCreatePage = observer(() => { setIsSelectVideoDialogOpen(false); }; + const handleVideoFileSelect = (file?: File) => { + if (file) { + setFileToUpload(file); + setIsUploadVideoDialogOpen(true); + } else { + setIsSelectVideoDialogOpen(true); + } + }; + + const handleVideoUpload = (media: { + id: string; + filename: string; + media_name?: string; + media_type: number; + }) => { + setVideoPreview(media.id); + setIsUploadVideoDialogOpen(false); + setFileToUpload(null); + }; + const handleVideoPreviewClick = () => { setIsVideoPreviewOpen(true); }; @@ -167,6 +193,7 @@ export const RouteCreatePage = observer(() => { route_number: routeNumber, route_sys_number: govRouteNumber, governor_appeal, + route_name: routeName, route_direction, scale_min, scale_max, @@ -208,6 +235,13 @@ export const RouteCreatePage = observer(() => {
+ setRouteName(e.target.value)} + /> Выберите перевозчика { } /> - {/* Заменяем Select на кнопку для выбора статьи */} - - - - - - - - - {/* Селектор видеозаставки */} - - - - - - - {editRouteData.video_preview && - editRouteData.video_preview !== "" - ? "Видео выбрано" - : "Видео не выбрано"} - - {editRouteData.video_preview && - editRouteData.video_preview !== "" && ( - { - e.stopPropagation(); - routeStore.setEditRouteData({ video_preview: "" }); - }} - sx={{ - cursor: "pointer", - color: "#999", - "&:hover": { - color: "#666", - }, - }} - > - - × - - - )} - - - - - - Прямой/обратный маршрут