Fix relock popup visibility and buttons

This commit is contained in:
2026-02-06 23:09:58 +01:00
parent f112e7d483
commit 2814548ea2
2 changed files with 17 additions and 7 deletions

View File

@@ -18,6 +18,7 @@ import {
openNewSuggestionModal, openNewSuggestionModal,
updatePhaseNav, updatePhaseNav,
openConfirmModal, openConfirmModal,
openResultsRelockModal,
} from "./js/ui.js"; } from "./js/ui.js";
import { import {
loadState, loadState,
@@ -180,9 +181,15 @@ function setupHandlers() {
const desired = !!e.target.checked; const desired = !!e.target.checked;
try { try {
const resp = await adminApi.setResultsOpen(desired); const resp = await adminApi.setResultsOpen(desired);
const wasResultsOpen = state.resultsOpen;
const wasPhase = state.phase;
state.resultsOpen = resp.resultsOpen; state.resultsOpen = resp.resultsOpen;
if (wasResultsOpen && !resp.resultsOpen && wasPhase === "Results") {
openResultsRelockModal();
}
renderPhasePill(); renderPhasePill();
toast(t("admin.resultsUpdated")); toast(t("admin.resultsUpdated"));
await refreshPhaseData();
} catch (err) { } catch (err) {
e.target.checked = !desired; e.target.checked = !desired;
toast(err.message, true); toast(err.message, true);

View File

@@ -729,7 +729,7 @@ export function openResultsRelockModal() {
title: t("results.relockedTitle"), title: t("results.relockedTitle"),
body: t("results.relockedBody"), body: t("results.relockedBody"),
confirmLabel: t("results.relockedConfirm"), confirmLabel: t("results.relockedConfirm"),
cancelLabel: t("modal.close"), cancelLabel: null,
onConfirm: (close) => close(), onConfirm: (close) => close(),
}); });
} }
@@ -752,11 +752,15 @@ export function openConfirmModal({ title, body, confirmLabel, cancelLabel = t("m
actions.className = "stack horizontal"; actions.className = "stack horizontal";
const confirmBtn = document.createElement("button"); const confirmBtn = document.createElement("button");
confirmBtn.textContent = confirmLabel ?? t("modal.confirm"); confirmBtn.textContent = confirmLabel ?? t("modal.confirm");
const cancelBtn = document.createElement("button"); actions.append(confirmBtn);
cancelBtn.className = "ghost"; if (cancelLabel !== null && cancelLabel !== undefined) {
cancelBtn.type = "button"; const cancelBtn = document.createElement("button");
cancelBtn.textContent = cancelLabel; cancelBtn.className = "ghost";
actions.append(confirmBtn, cancelBtn); cancelBtn.type = "button";
cancelBtn.textContent = cancelLabel;
actions.append(cancelBtn);
cancelBtn.addEventListener("click", close);
}
panel.querySelector(".edit-body")?.appendChild(actions); panel.querySelector(".edit-body")?.appendChild(actions);
const close = () => overlay.remove(); const close = () => overlay.remove();
@@ -767,7 +771,6 @@ export function openConfirmModal({ title, body, confirmLabel, cancelLabel = t("m
) )
close(); close();
}); });
cancelBtn.addEventListener("click", close);
confirmBtn.addEventListener("click", async () => { confirmBtn.addEventListener("click", async () => {
try { try {
await onConfirm?.(close); await onConfirm?.(close);