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
+ />
) : (