From aedd49a07de1e8da23b06c226f4c05f0db6d1b47 Mon Sep 17 00:00:00 2001 From: PhilReact Date: Sat, 21 Jun 2025 15:20:12 +0300 Subject: [PATCH] fix progress --- .../MultiPublish/MultiPublishDialog.tsx | 20 ++++++++++++------- src/context/GlobalProvider.tsx | 6 +++++- src/hooks/usePublish.tsx | 3 ++- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/components/MultiPublish/MultiPublishDialog.tsx b/src/components/MultiPublish/MultiPublishDialog.tsx index eddd5f5..b4f0f7d 100644 --- a/src/components/MultiPublish/MultiPublishDialog.tsx +++ b/src/components/MultiPublish/MultiPublishDialog.tsx @@ -173,6 +173,9 @@ export const MultiPublishDialogComponent = () => { maxWidth="sm" sx={{ zIndex: 999990 }} slotProps={{ paper: { elevation: 0 } }} + disableEnforceFocus + disableAutoFocus + disableRestoreFocus > Publishing Status @@ -275,12 +278,15 @@ const IndividualResourceComponent = ({ publish, publishKey, publishStatus }: Ind }, [chunkDone, processingStart]); // Keep time ticking for progress simulation - useEffect(() => { - if (!chunkDone) return; - const interval = setInterval(() => setNow(Date.now()), 1000); - return () => clearInterval(interval); - }, [chunkDone]); +useEffect(() => { + if (!chunkDone) return; + const interval = setInterval(() => { + setNow(Date.now()); + }, 1000); + + return () => clearInterval(interval); +}, [chunkDone]); const processingPercent = useMemo(() => { if (publishStatus?.error || !chunkDone || !processingStart || !publishStatus?.totalChunks || !now) return 0; @@ -307,9 +313,9 @@ const IndividualResourceComponent = ({ publish, publishKey, publishStatus }: Ind - File Processing ({processingStart ? processingPercent.toFixed(0) : '0'}%) + File Processing ({publishStatus?.processed ? 100 : processingStart ? processingPercent.toFixed(0) : '0'}%) - + {publishStatus?.processed && ( diff --git a/src/context/GlobalProvider.tsx b/src/context/GlobalProvider.tsx index 5273250..5f5a50b 100644 --- a/src/context/GlobalProvider.tsx +++ b/src/context/GlobalProvider.tsx @@ -17,6 +17,7 @@ import { useProgressStore } from "../state/video"; import { GlobalPipPlayer } from "../hooks/useGlobalPipPlayer"; import { Location, NavigateFunction } from "react-router-dom"; import { MultiPublishDialog } from "../components/MultiPublish/MultiPublishDialog"; +import { useMultiplePublishStore } from "../state/multiplePublish"; // ✅ Define Global Context Type interface GlobalContextType { @@ -60,6 +61,7 @@ export const GlobalProvider = ({ }: GlobalProviderProps) => { // ✅ Call hooks and pass in options dynamically const auth = useAuth(config?.auth || {}); + const isPublishing = useMultiplePublishStore((s)=> s.isPublishing); const appInfo = useAppInfo(config.appName, config?.publicSalt); const lists = useResources(); @@ -96,7 +98,9 @@ export const GlobalProvider = ({ - + {isPublishing && ( + + )}