diff --git a/packages/ui/src/features/canvas/components/ChannelFeedView.tsx b/packages/ui/src/features/canvas/components/ChannelFeedView.tsx index 4dfc3cf537..c0ddffd6bd 100644 --- a/packages/ui/src/features/canvas/components/ChannelFeedView.tsx +++ b/packages/ui/src/features/canvas/components/ChannelFeedView.tsx @@ -48,7 +48,7 @@ import { TaskTabIcon } from "@posthog/ui/features/browser-tabs/TaskTabIcon"; import type { ChannelFeedSystemMessage } from "@posthog/ui/features/canvas/hooks/useChannelFeedMessages"; import { useChannelTaskData } from "@posthog/ui/features/canvas/hooks/useChannelTaskData"; import { useTaskThread } from "@posthog/ui/features/canvas/hooks/useTaskThread"; -import { shouldOpenTaskCardInline } from "@posthog/ui/features/canvas/taskCardNavigation"; +import { taskCardNavigation } from "@posthog/ui/features/canvas/taskCardNavigation"; import { userDisplayName } from "@posthog/ui/features/canvas/utils/userDisplay"; import { type SidebarPrState, @@ -59,7 +59,6 @@ import { Text } from "@radix-ui/themes"; import { Link } from "@tanstack/react-router"; import { Fragment, - type MouseEvent, memo, type ReactNode, useEffect, @@ -270,12 +269,10 @@ const NO_PENDING: PendingKickoff[] = []; export function TaskCard({ task, channelId, - onOpen, inThread = false, }: { task: Task; channelId: string; - onOpen?: () => void; inThread?: boolean; }) { const statusDisplay = useTaskStatusDisplay(task); @@ -284,18 +281,10 @@ export function TaskCard({ ? task.latest_run.output.pr_url : undefined; const stage = task.latest_run?.stage; - const handleClick = (event: MouseEvent) => { - if (!onOpen || !shouldOpenTaskCardInline(event)) return; - event.preventDefault(); - onOpen(); - }; - return ( } > - onOpenThread(task)} - /> + { - it("opens an unmodified primary click in the thread dock", () => { - expect(shouldOpenTaskCardInline(PRIMARY_CLICK)).toBe(true); - }); - - it.each([ - { defaultPrevented: true }, - { button: 1 }, - { metaKey: true }, - { ctrlKey: true }, - { shiftKey: true }, - { altKey: true }, - ])("leaves browser navigation intact for %o", (override) => { - expect(shouldOpenTaskCardInline({ ...PRIMARY_CLICK, ...override })).toBe( - false, - ); +describe("taskCardNavigation", () => { + it("opens the channel task view", () => { + expect(taskCardNavigation("channel-1", "task-1")).toEqual({ + to: "/website/$channelId/tasks/$taskId", + params: { channelId: "channel-1", taskId: "task-1" }, + }); }); }); diff --git a/packages/ui/src/features/canvas/taskCardNavigation.ts b/packages/ui/src/features/canvas/taskCardNavigation.ts index 27ad8f0abb..571a6cd3a7 100644 --- a/packages/ui/src/features/canvas/taskCardNavigation.ts +++ b/packages/ui/src/features/canvas/taskCardNavigation.ts @@ -1,21 +1,6 @@ -export interface TaskCardPointerIntent { - defaultPrevented: boolean; - button: number; - metaKey: boolean; - ctrlKey: boolean; - shiftKey: boolean; - altKey: boolean; -} - -export function shouldOpenTaskCardInline( - event: TaskCardPointerIntent, -): boolean { - return ( - !event.defaultPrevented && - event.button === 0 && - !event.metaKey && - !event.ctrlKey && - !event.shiftKey && - !event.altKey - ); +export function taskCardNavigation(channelId: string, taskId: string) { + return { + to: "/website/$channelId/tasks/$taskId" as const, + params: { channelId, taskId }, + }; }