Files
docmost_custom/apps/client/src/components/layouts/header.tsx
T

94 lines
2.1 KiB
TypeScript
Raw Normal View History

2023-10-30 14:53:49 +00:00
import {
ActionIcon,
Menu,
Button,
} from '@mantine/core';
import {
IconDots,
IconFileInfo,
IconHistory,
IconLink,
IconLock,
IconShare,
IconTrash,
2023-11-09 16:52:34 +00:00
IconMessage,
2023-10-30 14:53:49 +00:00
} from '@tabler/icons-react';
import React from 'react';
2023-11-22 20:42:34 +00:00
import useToggleAside from '@/hooks/use-toggle-aside';
import { useAtom } from 'jotai';
import { historyAtoms } from '@/features/page-history/atoms/history-atoms';
2023-10-30 14:53:49 +00:00
export default function Header() {
2023-11-22 20:42:34 +00:00
const toggleAside = useToggleAside();
2023-10-30 14:53:49 +00:00
return (
<>
<Button variant="default" style={{ border: 'none' }} size="compact-sm">
Share
</Button>
2023-11-22 20:42:34 +00:00
<ActionIcon variant="default" style={{ border: 'none' }} onClick={() => toggleAside('comments')}>
2023-11-09 16:52:34 +00:00
<IconMessage size={20} stroke={2} />
</ActionIcon>
2023-10-30 14:53:49 +00:00
<PageActionMenu />
</>
);
}
function PageActionMenu() {
2023-11-22 20:42:34 +00:00
const [, setHistoryModalOpen] = useAtom(historyAtoms);
const openHistoryModal = () => {
setHistoryModalOpen(true);
};
2023-10-30 14:53:49 +00:00
return (
<Menu
shadow="xl"
position="bottom-end"
offset={20}
width={200}
withArrow
arrowPosition="center"
>
<Menu.Target>
<ActionIcon variant="default" style={{ border: 'none' }}>
<IconDots size={20} stroke={2} />
</ActionIcon>
</Menu.Target>
<Menu.Dropdown>
<Menu.Item
2023-11-22 20:42:34 +00:00
leftSection={<IconFileInfo size={16} stroke={2} />}>
2023-10-30 14:53:49 +00:00
Page info
</Menu.Item>
<Menu.Item
2023-11-22 20:42:34 +00:00
leftSection={<IconLink size={16} stroke={2} />}
2023-10-30 14:53:49 +00:00
>
Copy link
</Menu.Item>
<Menu.Item
2023-11-22 20:42:34 +00:00
leftSection={<IconShare size={16} stroke={2} />}>
2023-10-30 14:53:49 +00:00
Share
</Menu.Item>
<Menu.Item
2023-11-22 20:42:34 +00:00
leftSection={<IconHistory size={16} stroke={2} />}
onClick={openHistoryModal}>
2023-10-30 14:53:49 +00:00
Page history
</Menu.Item>
<Menu.Divider />
<Menu.Item
2023-11-22 20:42:34 +00:00
leftSection={<IconLock size={16} stroke={2} />}>
2023-10-30 14:53:49 +00:00
Lock
</Menu.Item>
<Menu.Item
2023-11-22 20:42:34 +00:00
leftSection={<IconTrash size={16} stroke={2} />}>
2023-10-30 14:53:49 +00:00
Delete
</Menu.Item>
</Menu.Dropdown>
</Menu>
);
}