Files
kandev/apps/web/components/task/task-session-sidebar-task-linking.ts
T
José Almeida 4eae00964d feat: move integration links into task menus (#1644)
* feat: move integration links into task menus

* fix: address integration link review feedback

* fix: preserve archived task title when linking

* fix: address integration link review issues

* fix: remove ignored swimlane availability prop
2026-07-09 23:43:35 +01:00

30 lines
1.2 KiB
TypeScript

"use client";
import { useJiraAvailable } from "@/hooks/domains/jira/use-jira-availability";
import { useLinearAvailable } from "@/hooks/domains/linear/use-linear-availability";
import { useSentryAvailable } from "@/hooks/domains/sentry/use-sentry-availability";
import type { useSidebarActions } from "./task-session-sidebar";
type SidebarActions = Pick<
ReturnType<typeof useSidebarActions>,
| "handleLinkPullRequestTask"
| "handleLinkIssueTask"
| "handleLinkJiraTicketTask"
| "handleLinkLinearIssueTask"
| "handleLinkSentryIssueTask"
>;
export function useSidebarTaskLinking(workspaceId: string | null, actions: SidebarActions) {
const jiraAvailable = useJiraAvailable(workspaceId);
const linearAvailable = useLinearAvailable(workspaceId);
const sentryAvailable = useSentryAvailable(workspaceId);
return {
onLinkPullRequest: actions.handleLinkPullRequestTask,
onLinkIssue: actions.handleLinkIssueTask,
onLinkJiraTicket: jiraAvailable ? actions.handleLinkJiraTicketTask : undefined,
onLinkLinearIssue: linearAvailable ? actions.handleLinkLinearIssueTask : undefined,
onLinkSentryIssue: sentryAvailable ? actions.handleLinkSentryIssueTask : undefined,
};
}