From 1bb51988ac48aae57f1b932c56db3e2c7871a039 Mon Sep 17 00:00:00 2001 From: Cooldude2606 <25043174+Cooldude2606@users.noreply.github.com> Date: Sat, 25 Apr 2026 23:32:30 +0100 Subject: [PATCH] Fix popconfirm on instance kill button --- .../src/components/InstanceControlButton.tsx | 61 +++++++++++-------- 1 file changed, 35 insertions(+), 26 deletions(-) diff --git a/packages/web_ui/src/components/InstanceControlButton.tsx b/packages/web_ui/src/components/InstanceControlButton.tsx index 2f1636e3..1090f2b3 100644 --- a/packages/web_ui/src/components/InstanceControlButton.tsx +++ b/packages/web_ui/src/components/InstanceControlButton.tsx @@ -21,6 +21,7 @@ export default function InstanceControlButton(props: InstanceControlButtonProps) const account = useAccount(); const control = useContext(ControlContext); const [switching, setSwitching] = useState(false); + const [popconfirm, setPopconfirm] = useState(null); const instanceId = props.instance.id; const instanceStatus = props.instance.status; @@ -88,35 +89,43 @@ export default function InstanceControlButton(props: InstanceControlButtonProps) if (account.hasPermission("core.instance.kill")) { actions.push({ key: "kill", + label: "Kill", danger: true, disabled: instanceStatus === "stopped", - label: ( - Killing this instance may leave you save and player data corrupted. - Are you sure you want to kill the instance? - } - placement="bottomRight" - okText="Kill" - okButtonProps={{ danger: true }} - onConfirm={() => { - control.sendTo( - { instanceId }, - new lib.InstanceKillRequest(), - ).catch( - notifyErrorHandler("Error killing instance") - ).finally(actionFinish); - }} - > - Kill - ), + onClick: () => setPopconfirm("kill"), }); } - return ; + return
+ + + Killing this instance may leave you save and player data corrupted. + Are you sure you want to kill the instance? + } + open={popconfirm === "kill"} + placement="bottomRight" + okText="Kill" + okButtonProps={{ danger: true }} + onCancel={() => setPopconfirm(null)} + onConfirm={() => { + control.sendTo( + { instanceId }, + new lib.InstanceKillRequest(), + ).catch( + notifyErrorHandler("Error killing instance") + ).finally(actionFinish); + setPopconfirm(null); + }} + > + {/* Used to position the popup under the button */} + + +
; }