This commit is contained in:
parent
8cc6b0344d
commit
dad6eabee0
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue