summaryrefslogtreecommitdiff
path: root/makima/frontend/src/components/workflow/PhaseColumn.tsx
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-01-19 17:55:22 +0000
committerGitHub <noreply@github.com>2026-01-19 17:55:22 +0000
commit52d121269195f0e799d0ab4241e4facc3c7c0596 (patch)
tree13d3dcdd743cf15f31d6d87097bf51ebfd01a305 /makima/frontend/src/components/workflow/PhaseColumn.tsx
parent164941cbd591b46f69a034bb9b86521fd7700ddb (diff)
downloadsoryu-52d121269195f0e799d0ab4241e4facc3c7c0596.tar.gz
soryu-52d121269195f0e799d0ab4241e4facc3c7c0596.zip
Add right-click context menu for contracts on contracts and board pages (#8)
Implement a reusable ContractContextMenu component that provides: - Mark as Complete/Active/Archive status actions (conditionally shown) - Go to Supervisor Task link (when supervisor exists) - Delete action with confirmation Integrate context menu into: - ContractList.tsx on the contracts page - WorkflowBoard on the workflow/board page via PhaseColumn and WorkflowContractCard Features match ElementContextMenu patterns: - Fixed positioning with z-50 - Click outside and Escape key close handlers - Viewport overflow prevention - Dark theme colors (#0a1628, #0d1b2d, #75aafc, #9bc3ff) Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'makima/frontend/src/components/workflow/PhaseColumn.tsx')
-rw-r--r--makima/frontend/src/components/workflow/PhaseColumn.tsx3
1 files changed, 3 insertions, 0 deletions
diff --git a/makima/frontend/src/components/workflow/PhaseColumn.tsx b/makima/frontend/src/components/workflow/PhaseColumn.tsx
index ddea85f..277b04c 100644
--- a/makima/frontend/src/components/workflow/PhaseColumn.tsx
+++ b/makima/frontend/src/components/workflow/PhaseColumn.tsx
@@ -7,6 +7,7 @@ interface PhaseColumnProps {
contracts: ContractSummary[];
onContractClick: (contractId: string) => void;
onDrop: (contractId: string, phase: ContractPhase) => void;
+ onContextMenu?: (e: React.MouseEvent, contract: ContractSummary) => void;
}
const phaseConfig: Record<
@@ -50,6 +51,7 @@ export function PhaseColumn({
contracts,
onContractClick,
onDrop,
+ onContextMenu,
}: PhaseColumnProps) {
const [isDragOver, setIsDragOver] = useState(false);
const config = phaseConfig[phase];
@@ -114,6 +116,7 @@ export function PhaseColumn({
e.dataTransfer.setData("contractId", contract.id);
e.dataTransfer.effectAllowed = "move";
}}
+ onContextMenu={onContextMenu ? (e) => onContextMenu(e, contract) : undefined}
/>
))
)}