summaryrefslogtreecommitdiff
path: root/makima/frontend/src/components/directives/StepNode.tsx
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-03-04 16:47:12 +0000
committerGitHub <noreply@github.com>2026-03-04 16:47:12 +0000
commitec9738a069e61529be040eff065318972b8a11e2 (patch)
treed1b15d3b22d4980acff4fba8a12b99920035025c /makima/frontend/src/components/directives/StepNode.tsx
parent78cb861412850889424ae7d5ae5cd952a2b90295 (diff)
downloadsoryu-ec9738a069e61529be040eff065318972b8a11e2.tar.gz
soryu-ec9738a069e61529be040eff065318972b8a11e2.zip
feat: task slide-out panel, 3-way reconcile toggle, daemon reauth fix (#85)
* WIP: heartbeat checkpoint * WIP: heartbeat checkpoint * feat: soryu-co/soryu - makima: Fix daemon reauth flow for new claude setup-token output format * feat: soryu-co/soryu - makima: Update frontend reconcile toggle to three-way switch * feat: soryu-co/soryu - makima: Add task slide-out panel to directive page
Diffstat (limited to 'makima/frontend/src/components/directives/StepNode.tsx')
-rw-r--r--makima/frontend/src/components/directives/StepNode.tsx12
1 files changed, 7 insertions, 5 deletions
diff --git a/makima/frontend/src/components/directives/StepNode.tsx b/makima/frontend/src/components/directives/StepNode.tsx
index 775b898..f854297 100644
--- a/makima/frontend/src/components/directives/StepNode.tsx
+++ b/makima/frontend/src/components/directives/StepNode.tsx
@@ -23,9 +23,10 @@ interface StepNodeProps {
onComplete?: () => void;
onFail?: () => void;
onSkip?: () => void;
+ onViewTask?: (taskId: string) => void;
}
-export function StepNode({ step, onComplete, onFail, onSkip }: StepNodeProps) {
+export function StepNode({ step, onComplete, onFail, onSkip, onViewTask }: StepNodeProps) {
const colors = STATUS_COLORS[step.status] || STATUS_COLORS.pending;
const label = STATUS_LABELS[step.status] || step.status.toUpperCase();
const isContractBacked = !!step.contractType;
@@ -66,12 +67,13 @@ export function StepNode({ step, onComplete, onFail, onSkip }: StepNodeProps) {
</a>
)}
{step.taskId && !step.contractId && (
- <a
- href={`/exec/${step.taskId}`}
- className="text-[9px] font-mono text-[#556677] hover:text-[#75aafc] underline block mb-1"
+ <button
+ type="button"
+ onClick={() => onViewTask?.(step.taskId!)}
+ className="text-[9px] font-mono text-[#556677] hover:text-[#75aafc] underline block mb-1 bg-transparent border-none p-0 cursor-pointer text-left"
>
{step.status === "running" ? "Auto-executing..." : "View task"}
- </a>
+ </button>
)}
{(step.status === "running" || step.status === "ready") && (
<div className="flex gap-1 mt-1">