fix(ui): task-chat plan/confirmation card primary CTA on the right, secondary on the left

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
scotttongandClaude Fable 5 committed 2026-08-07 16:55:49 -07:00
1 parent f56a0d4b97
commit a96cb271ea
2 files changed
+21 -1

No files matched your search

@@ -75,6 +75,26 @@ describe("TaskChatInteractionCard", () => {
expect(container.textContent).toContain("Approve the plan");
});
it("puts the primary CTA on the right via a reversed action row", () => {
flushSync(() => {
root.render(
<TooltipProvider>
<ThemeProvider>
<TaskChatInteractionCard item={interactionItem(createRequestConfirmation())} />
</ThemeProvider>
</TooltipProvider>,
);
});
const buttons = Array.from(container.querySelectorAll("button"));
const confirm = buttons.find((button) => button.textContent === "Confirm");
const decline = buttons.find((button) => button.textContent === "Decline");
expect(confirm).not.toBeUndefined();
expect(decline).not.toBeUndefined();
const row = confirm?.parentElement;
expect(row).toBe(decline?.parentElement);
expect(row?.className).toContain("flex-row-reverse");
});
it("demotes an expired confirmation to a marker row", () => {
flushSync(() => {
root.render(
@@ -38,7 +38,7 @@ export function TaskChatInteractionCard({ item, ...cardProps }: TaskChatInteract
className="tc-enter-bubble w-full"
data-testid="task-chat-interaction"
>
<IssueThreadInteractionCard interaction={interaction} {...cardProps} />
<IssueThreadInteractionCard interaction={interaction} primaryActionOnRight {...cardProps} />
</div>
);
}