feat(tests): dispute resolution UI — manager escalation + red/blue queue selector
Aegis CI / lint-and-test (push) Has been cancelled
Snyk Security Scan / Python vulnerabilities (backend) (push) Has been cancelled
Snyk Security Scan / npm vulnerabilities (frontend) (push) Has been cancelled
Snyk Security Scan / Docker image vulnerabilities (backend) (push) Has been cancelled

This commit is contained in:
kitos
2026-07-06 12:40:21 +02:00
parent f53e124c50
commit 19c4866103
4 changed files with 158 additions and 4 deletions
@@ -79,6 +79,7 @@ interface TestDetailHeaderProps {
onStartBlueWork: () => void;
onOpenValidateModal: (side: "red" | "blue") => void;
onOpenReviewModal: (side: "red" | "blue") => void;
onOpenResolveDisputeModal: () => void;
onReopen: () => void;
onPauseTimer: () => void;
onResumeTimer: () => void;
@@ -100,6 +101,7 @@ export default function TestDetailHeader({
onStartBlueWork,
onOpenValidateModal,
onOpenReviewModal,
onOpenResolveDisputeModal,
onReopen,
onPauseTimer,
onResumeTimer,
@@ -329,8 +331,6 @@ export default function TestDetailHeader({
(role === "blue_lead" && test.blue_validation_status === "rejected") ||
(role === "admin" && test.blue_validation_status === "rejected");
const approvingSide: "red" | "blue" =
test.red_validation_status === "approved" ? "red" : "blue";
const rejectingSide: "red" | "blue" =
test.red_validation_status === "rejected" ? "red" : "blue";
@@ -353,9 +353,9 @@ export default function TestDetailHeader({
Request Discussion
</button>
)}
{/* Change approving vote to rejected */}
{/* Change approving vote to rejected — routes to the team at fault */}
<button
onClick={() => onOpenValidateModal(approvingSide)}
onClick={onOpenResolveDisputeModal}
className="flex items-center gap-1.5 rounded-lg bg-red-700/80 px-4 py-2 text-sm font-medium text-white hover:bg-red-600 transition-colors"
>
<XCircle className="h-4 w-4" />