import { ActionIcon, Menu, Tooltip } from "@mantine/core"; import { IconDots, IconHistory, IconLink, IconMessage, IconTrash, } from "@tabler/icons-react"; import React from "react"; import useToggleAside from "@/hooks/use-toggle-aside.tsx"; import { useAtom } from "jotai"; import { historyAtoms } from "@/features/page-history/atoms/history-atoms.ts"; import { useClipboard } from "@mantine/hooks"; import { useParams } from "react-router-dom"; import { usePageQuery } from "@/features/page/queries/page-query.ts"; import { buildPageUrl } from "@/features/page/page.utils.ts"; import { notifications } from "@mantine/notifications"; import { getAppUrl } from "@/lib/config.ts"; import { extractPageSlugId } from "@/lib"; import { treeApiAtom } from "@/features/page/tree/atoms/tree-api-atom.ts"; import { useDeletePageModal } from "@/features/page/hooks/use-delete-page-modal.tsx"; export default function PageHeaderMenu() { const toggleAside = useToggleAside(); return ( <> toggleAside("comments")} > ); } function PageActionMenu() { const [, setHistoryModalOpen] = useAtom(historyAtoms); const clipboard = useClipboard({ timeout: 500 }); const { pageSlug, spaceSlug } = useParams(); const { data: page, isLoading } = usePageQuery({ pageId: extractPageSlugId(pageSlug), }); const { openDeleteModal } = useDeletePageModal(); const [tree] = useAtom(treeApiAtom); const handleCopyLink = () => { const pageUrl = getAppUrl() + buildPageUrl(spaceSlug, page.slugId, page.title); clipboard.copy(pageUrl); notifications.show({ message: "Link copied" }); }; const openHistoryModal = () => { setHistoryModalOpen(true); }; const handleDeletePage = () => { openDeleteModal({ onConfirm: () => tree?.delete(page.id) }); }; return ( } onClick={handleCopyLink} > Copy link } onClick={openHistoryModal} > Page history } onClick={handleDeletePage} > Delete ); }