mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-10-07 03:00:29 +00:00
feat(web): drop Unarchive action from archive toast
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
ca854f9033
commit
cdc43e05fc
2 changed files with 5 additions and 22 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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<ToastApi["push"]>[0] = {
|
||||
message: "Run archived.",
|
||||
};
|
||||
if (onUnarchive) {
|
||||
archiveToast.action = { label: "Unarchive", onClick: onUnarchive };
|
||||
}
|
||||
return {
|
||||
...nextState,
|
||||
activeArchiveToastId: toastApi.push(archiveToast),
|
||||
activeArchiveToastId: toastApi.push({ message: "Run archived." }),
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue