diff --git a/apps/client/src/features/base/components/views/view-tabs.tsx b/apps/client/src/features/base/components/views/view-tabs.tsx index 75d2b6a77..b3e367313 100644 --- a/apps/client/src/features/base/components/views/view-tabs.tsx +++ b/apps/client/src/features/base/components/views/view-tabs.tsx @@ -6,9 +6,7 @@ import { ActionIcon, Tooltip, TextInput, - Popover, - Stack, - Divider, + Menu, } from "@mantine/core"; import { IconPlus, IconPencil, IconTrash, IconTable } from "@tabler/icons-react"; import { IBaseView } from "@/features/base/types/base.types"; @@ -17,7 +15,6 @@ import { useDeleteViewMutation, } from "@/features/base/queries/base-view-query"; import { useTranslation } from "react-i18next"; -import cellClasses from "@/features/base/styles/cells.module.css"; type ViewTabsProps = { views: IBaseView[]; @@ -166,15 +163,19 @@ function ViewTab({ } return ( - setMenuOpened(false)} + onChange={setMenuOpened} position="bottom-start" shadow="md" width={180} withinPortal + // Default Menu behavior: closeOnClickOutside, closeOnEscape, and + // closeOnItemClick all true — replaces the manual setMenuOpened + // calls and gives the popover the same outside-click / Esc + // semantics every other Mantine menu in the app has. > - + { @@ -197,41 +198,27 @@ function ViewTab({ - - - - { - setMenuOpened(false); - onRenameStart(); - }} - > - - - {t("Rename")} - - - {canDelete && ( - <> - - { - setMenuOpened(false); - onDelete(); - }} - style={{ color: "var(--mantine-color-red-6)" }} - > - - - {t("Delete view")} - - - - )} - - - + + + } + onClick={onRenameStart} + > + {t("Rename")} + + {canDelete && ( + <> + + } + onClick={onDelete} + color="red" + > + {t("Delete view")} + + + )} + + ); }