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
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:
@@ -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" />
|
||||
|
||||
Reference in New Issue
Block a user