Files
kandev/apps/web/components/task/task-switcher-plugin-menu-items.tsx
T
2026-09-11 14:51:57 +00:00

43 lines
1.3 KiB
TypeScript

"use client";
import {
KanbanCardContextMenuItems,
type KanbanCardMenuEntry,
} from "@/components/kanban-card-menu-items";
import { buildPrimaryPluginEntries } from "@/components/plugins/task-menu-actions";
import { useAppStore } from "@/components/state-provider";
import { useResponsiveBreakpoint } from "@/hooks/use-responsive-breakpoint";
import { usePluginRegistry } from "@/lib/plugins/registry";
import type { PluginTaskMenuContext } from "@/lib/plugins/types";
import type { TaskSwitcherItem } from "./task-switcher-types";
export function TaskPluginPrimaryMenuItems({
task,
disabled,
}: {
task: TaskSwitcherItem;
disabled?: boolean;
}) {
const entries = useTaskPluginPrimaryMenuEntries(task, disabled);
return <KanbanCardContextMenuItems entries={entries} />;
}
export function useTaskPluginPrimaryMenuEntries(
task: TaskSwitcherItem,
disabled?: boolean,
): KanbanCardMenuEntry[] {
usePluginRegistry();
const workspaceId = useAppStore((state) => state.workspaces.activeId);
const { isMobile } = useResponsiveBreakpoint();
if (!workspaceId) return [];
const context: PluginTaskMenuContext = {
workspaceId,
taskId: task.id,
taskTitle: task.title,
workflowStepId: task.workflowStepId ?? null,
presentation: isMobile ? "mobile" : "desktop",
};
return buildPrimaryPluginEntries({ disabled, context });
}