This commit is contained in:
hailin 2025-04-07 09:22:56 +08:00
parent 8cc6b0344d
commit dad6eabee0
1 changed files with 7 additions and 1 deletions

View File

@ -42,6 +42,8 @@ import { useState, useRef, } from "react";
import { Trash2 } from "lucide-react"; import { Trash2 } from "lucide-react";
import { useEffect } from "react"; import { useEffect } from "react";
import { import {
BadgeInfo, BadgeInfo,
Tags, Tags,
@ -412,6 +414,7 @@ export function DetailPageHeader({ data }: { data: any }) {
const [showDelete, setShowDelete] = useState(false); const [showDelete, setShowDelete] = useState(false);
const [hasWSConnected, setHasWSConnected] = useState(false); const [hasWSConnected, setHasWSConnected] = useState(false);
const [statusLoaded, setStatusLoaded] = useState(false); const [statusLoaded, setStatusLoaded] = useState(false);
const [canDeploy, setCanDeploy] = useState(true);
const socketRef = useRef<WebSocket | null>(null); const socketRef = useRef<WebSocket | null>(null);
const initWebSocket = (userName: string, id: number) => { const initWebSocket = (userName: string, id: number) => {
@ -585,6 +588,7 @@ export function DetailPageHeader({ data }: { data: any }) {
setShowDelete(false); setShowDelete(false);
setProgress("0%"); setProgress("0%");
setShowProgressBar(false); setShowProgressBar(false);
setCanDeploy(true); // ✅ 允许部署
return; return;
} }
@ -592,6 +596,7 @@ export function DetailPageHeader({ data }: { data: any }) {
setStatusText("检测到正在部署,连接中..."); setStatusText("检测到正在部署,连接中...");
initWebSocket(userName, id); initWebSocket(userName, id);
setShowProgressBar(true); setShowProgressBar(true);
setCanDeploy(false); // ✅ 正在部署中,禁止点击
} }
if (status === "running" || status === "stopped") { if (status === "running" || status === "stopped") {
@ -599,6 +604,7 @@ export function DetailPageHeader({ data }: { data: any }) {
setShowDelete(true); setShowDelete(true);
setProgress("100%"); setProgress("100%");
setShowProgressBar(true); setShowProgressBar(true);
setCanDeploy(false); // ✅ 已部署/已停止,不允许再次 deploy
if (status === "running") { if (status === "running") {
setStatusText("运行中"); setStatusText("运行中");
@ -716,7 +722,7 @@ export function DetailPageHeader({ data }: { data: any }) {
<button <button
className="group flex items-center justify-center w-24 h-24 md:w-32 md:h-32 border transition" className="group flex items-center justify-center w-24 h-24 md:w-32 md:h-32 border transition"
onClick={() => handleClick("icon")} onClick={() => handleClick("icon")}
disabled={loading || data?.status === "running"} disabled={loading || !canDeploy}
> >
{isImagePath ? ( {isImagePath ? (
<img <img