diff --git a/plane-src/apps/web/core/components/issues/issue-layouts/calendar/quick-add-issue-actions.tsx b/plane-src/apps/web/core/components/issues/issue-layouts/calendar/quick-add-issue-actions.tsx index a5b3a4c..65da964 100644 --- a/plane-src/apps/web/core/components/issues/issue-layouts/calendar/quick-add-issue-actions.tsx +++ b/plane-src/apps/web/core/components/issues/issue-layouts/calendar/quick-add-issue-actions.tsx @@ -15,7 +15,8 @@ import { PlusIcon } from "@plane/propel/icons"; import { setPromiseToast } from "@plane/propel/toast"; import type { ISearchIssueResponse, TIssue } from "@plane/types"; import { EIssueLayoutTypes } from "@plane/types"; -import { CustomMenu } from "@plane/ui"; +import type { TContextMenuItem } from "@plane/ui"; +import { ActionDropdown } from "@plane/ui"; import { cn } from "@plane/utils"; // components import { ExistingIssuesListModal } from "@/components/core/modals/existing-issues-list-modal"; @@ -78,6 +79,19 @@ export const CalendarQuickAddIssueActions = observer(function CalendarQuickAddIs const handleExistingIssue = () => { setIsExistingIssueModalOpen(true); }; + const actionItems: TContextMenuItem[] = [ + { + key: "create-work-item", + action: handleNewIssue, + title: isEpic ? t("epic.add.label") : t("issue.add.label"), + }, + { + key: "add-existing-work-item", + action: handleExistingIssue, + title: t("issue.add.existing"), + shouldRender: !isEpic, + }, + ]; if (!projectId) return null; @@ -117,28 +131,24 @@ export const CalendarQuickAddIssueActions = observer(function CalendarQuickAddIs } )} > - setIsMenuOpen(true)} - onMenuClose={() => setIsMenuOpen(false)} className="w-full" - customButtonClassName="w-full" - customButton={ -
+ onOpenChange={setIsMenuOpen} + button={ +
+ } - > - - {isEpic ? t("epic.add.label") : t("issue.add.label")} - - {!isEpic && ( - {t("issue.add.existing")} - )} -
+ buttonAsChild + /> } isEpic={isEpic} diff --git a/plane-src/apps/web/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx b/plane-src/apps/web/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx index 3a89e49..80c526e 100644 --- a/plane-src/apps/web/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx +++ b/plane-src/apps/web/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx @@ -13,7 +13,8 @@ import { PlusIcon } from "@plane/propel/icons"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import type { TIssue, ISearchIssueResponse, TIssueKanbanFilters, TIssueGroupByOptions } from "@plane/types"; // ui -import { CustomMenu } from "@plane/ui"; +import type { TContextMenuItem } from "@plane/ui"; +import { ActionDropdown } from "@plane/ui"; // components import { ExistingIssuesListModal } from "@/components/core/modals/existing-issues-list-modal"; import { CreateUpdateIssueModal } from "@/components/issues/issue-modal/modal"; @@ -65,6 +66,23 @@ export const HeaderGroupByCard = observer(function HeaderGroupByCard(props: IHea const renderExistingIssueModal = moduleId || cycleId; const ExistingIssuesListModalPayload = moduleId ? { module: moduleId.toString() } : { cycle: true }; + const actionItems: TContextMenuItem[] = [ + { + key: "create-work-item", + action: () => { + setIsOpen(true); + }, + title: "Create work item", + }, + { + key: "add-existing-work-item", + action: () => { + setOpenExistingIssueListModal(true); + }, + title: "Add an existing work item", + shouldRender: !!renderExistingIssueModal, + }, + ]; const handleAddIssuesToView = async (data: ISearchIssueResponse[]) => { if (!workspaceSlug || !projectId) return; @@ -156,29 +174,19 @@ export const HeaderGroupByCard = observer(function HeaderGroupByCard(props: IHea {!disableIssueCreation && (renderExistingIssueModal ? ( - + - + } + buttonAsChild placement="bottom-end" - > - { - setIsOpen(true); - }} - > - Create work item - - { - setOpenExistingIssueListModal(true); - }} - > - Add an existing work item - - + /> ) : ( } - > - { - setIsOpen(true); - }} - > - Create work item - - { - setOpenExistingIssueListModal(true); - }} - > - Add an existing work item - - + buttonAsChild + /> ) : (