"use client"; import { LayoutGrid } from "lucide-react"; // plane imports import { CycleIcon, ModuleIcon, PageIcon, ProjectIcon, ViewsIcon } from "@plane/propel/icons"; import type { IWorkspaceDefaultSearchResult, IWorkspaceIssueSearchResult, IWorkspacePageSearchResult, IWorkspaceProjectSearchResult, IWorkspaceSearchResult, } from "@plane/types"; import { generateWorkItemLink } from "@plane/utils"; // plane web components import { IssueIdentifier } from "@/plane-web/components/issues/issue-details/issue-identifier"; export type TCommandGroups = { [key: string]: { icon: React.ReactNode | null; itemName: (item: any) => React.ReactNode; path: (item: any, projectId: string | undefined) => string; title: string; }; }; export const commandGroups: TCommandGroups = { cycle: { icon: , itemName: (cycle: IWorkspaceDefaultSearchResult) => (
{cycle.project__identifier} {cycle.name}
), path: (cycle: IWorkspaceDefaultSearchResult) => `/${cycle?.workspace__slug}/projects/${cycle?.project_id}/cycles/${cycle?.id}`, title: "Cycles", }, issue: { icon: null, itemName: (issue: IWorkspaceIssueSearchResult) => (
{" "} {issue.name}
), path: (issue: IWorkspaceIssueSearchResult) => generateWorkItemLink({ workspaceSlug: issue?.workspace__slug, projectId: issue?.project_id, issueId: issue?.id, projectIdentifier: issue.project__identifier, sequenceId: issue?.sequence_id, }), title: "Work items", }, issue_view: { icon: , itemName: (view: IWorkspaceDefaultSearchResult) => (
{view.project__identifier} {view.name}
), path: (view: IWorkspaceDefaultSearchResult) => `/${view?.workspace__slug}/projects/${view?.project_id}/views/${view?.id}`, title: "Views", }, module: { icon: , itemName: (module: IWorkspaceDefaultSearchResult) => (
{module.project__identifier} {module.name}
), path: (module: IWorkspaceDefaultSearchResult) => `/${module?.workspace__slug}/projects/${module?.project_id}/modules/${module?.id}`, title: "Modules", }, page: { icon: , itemName: (page: IWorkspacePageSearchResult) => (
{page.project__identifiers?.[0]} {page.name}
), path: (page: IWorkspacePageSearchResult, projectId: string | undefined) => { let redirectProjectId = page?.project_ids?.[0]; if (!!projectId && page?.project_ids?.includes(projectId)) redirectProjectId = projectId; return redirectProjectId ? `/${page?.workspace__slug}/projects/${redirectProjectId}/pages/${page?.id}` : `/${page?.workspace__slug}/pages/${page?.id}`; }, title: "Pages", }, project: { icon: , itemName: (project: IWorkspaceProjectSearchResult) => project?.name, path: (project: IWorkspaceProjectSearchResult) => `/${project?.workspace__slug}/projects/${project?.id}/issues/`, title: "Projects", }, workspace: { icon: , itemName: (workspace: IWorkspaceSearchResult) => workspace?.name, path: (workspace: IWorkspaceSearchResult) => `/${workspace?.slug}/`, title: "Workspaces", }, };