From cdc43e05fc96050817f3a076601d4a98a49ec354 Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Mon, 27 Apr 2026 16:10:16 -0700 Subject: [PATCH] feat(web): drop Unarchive action from archive toast Co-Authored-By: Claude Opus 4.7 (1M context) --- apps/fabro-web/app/routes/run-detail.test.ts | 15 +++------------ apps/fabro-web/app/routes/run-detail.tsx | 12 ++---------- 2 files changed, 5 insertions(+), 22 deletions(-) diff --git a/apps/fabro-web/app/routes/run-detail.test.ts b/apps/fabro-web/app/routes/run-detail.test.ts index 5ec95ba1c..305dc2b27 100644 --- a/apps/fabro-web/app/routes/run-detail.test.ts +++ b/apps/fabro-web/app/routes/run-detail.test.ts @@ -97,7 +97,6 @@ describe("handleLifecycleToastResult", () => { test("replaying the same archive success result does not enqueue a duplicate toast", () => { const { pushed, dismissed, api } = makeToastApi(); - let unarchiveClicks = 0; const result: RunDetailActionResult = { intent: "archive", ok: true, @@ -111,20 +110,12 @@ describe("handleLifecycleToastResult", () => { }, }; - const firstState = handleLifecycleToastResult("archive", result, initialState, api, () => { - unarchiveClicks += 1; - }); + const firstState = handleLifecycleToastResult("archive", result, initialState, api); - expect(pushed).toHaveLength(1); - expect(pushed[0]?.message).toBe("Run archived."); - expect(pushed[0]?.action?.label).toBe("Unarchive"); - pushed[0]?.action?.onClick(); - expect(unarchiveClicks).toBe(1); + expect(pushed).toEqual([{ message: "Run archived." }]); expect(firstState.activeArchiveToastId).toBe("toast-1"); - const replayedState = handleLifecycleToastResult("archive", result, firstState, api, () => { - unarchiveClicks += 1; - }); + const replayedState = handleLifecycleToastResult("archive", result, firstState, api); expect(pushed).toHaveLength(1); expect(replayedState).toBe(firstState); diff --git a/apps/fabro-web/app/routes/run-detail.tsx b/apps/fabro-web/app/routes/run-detail.tsx index 8355ab9a5..deeb3887f 100644 --- a/apps/fabro-web/app/routes/run-detail.tsx +++ b/apps/fabro-web/app/routes/run-detail.tsx @@ -138,9 +138,8 @@ export default function RunDetail({ params }: { params: { id: string } }) { archiveMutation.data, lifecycleToastStateRef.current, { push, dismiss }, - () => void unarchiveMutation.trigger(), ); - }, [archiveMutation.data, dismiss, push, unarchiveMutation]); + }, [archiveMutation.data, dismiss, push]); useEffect(() => { lifecycleToastStateRef.current = handleLifecycleToastResult( @@ -322,7 +321,6 @@ export function handleLifecycleToastResult( result: RunDetailActionResult | undefined, state: LifecycleToastState, toastApi: ToastApi, - onUnarchive?: () => void, ): LifecycleToastState { if (!result || result.intent !== intent) return state; if (state.lastProcessed[intent] === result) return state; @@ -349,15 +347,9 @@ export function handleLifecycleToastResult( } if (intent === "archive") { - const archiveToast: Parameters[0] = { - message: "Run archived.", - }; - if (onUnarchive) { - archiveToast.action = { label: "Unarchive", onClick: onUnarchive }; - } return { ...nextState, - activeArchiveToastId: toastApi.push(archiveToast), + activeArchiveToastId: toastApi.push({ message: "Run archived." }), }; }