import { ActionIcon, Menu } from "@mantine/core"; import { IconDotsVertical, IconPencil, IconTrash } from "@tabler/icons-react"; import { useEditMode } from "@homarr/boards/edit-mode"; import { useConfirmModal, useModalAction } from "@homarr/modals"; import { useI18n, useScopedI18n } from "@homarr/translation/client"; import type { DynamicSectionItem } from "~/app/[locale]/boards/_types"; import { useDynamicSectionActions } from "./dynamic-actions"; import { DynamicSectionEditModal } from "./dynamic-edit-modal"; export const BoardDynamicSectionMenu = ({ section }: { section: DynamicSectionItem }) => { const t = useI18n(); const tDynamic = useScopedI18n("section.dynamic"); const tItem = useScopedI18n("item"); const { openModal } = useModalAction(DynamicSectionEditModal); const { updateDynamicSection, removeDynamicSection } = useDynamicSectionActions(); const { openConfirmModal } = useConfirmModal(); const [isEditMode] = useEditMode(); if (!isEditMode) return null; const openEditModal = () => { openModal({ value: section.options, onSuccessfulEdit: (options) => { updateDynamicSection({ itemId: section.id, newOptions: options, }); }, }); }; const openRemoveModal = () => { openConfirmModal({ title: tDynamic("remove.title"), children: tDynamic("remove.message"), onConfirm: () => { removeDynamicSection({ id: section.id }); }, }); }; return ( {tItem("menu.label.settings")} } onClick={openEditModal}> {tItem("action.edit")} {t("common.dangerZone")} } onClick={openRemoveModal}> {tDynamic("action.remove")} ); };