import { Menu, MenuItem } from '@/ui/menu'; import { IconButton } from '@/ui/button'; import { EdgelessIcon, ExportIcon, ExportToHtmlIcon, ExportToMarkdownIcon, FavouritedIcon, FavouritesIcon, MoreVerticalIcon, PaperIcon, TrashIcon, } from '@blocksuite/icons'; import { useAppState } from '@/providers/app-state-provider'; import { usePageHelper } from '@/hooks/use-page-helper'; import { useConfirm } from '@/providers/confirm-provider'; import useCurrentPageMeta from '@/hooks/use-current-page-meta'; import { toast } from '@/ui/toast'; import { useTranslation } from 'react-i18next'; const PopoverContent = () => { const { editor } = useAppState(); const { toggleFavoritePage, toggleDeletePage } = usePageHelper(); const { changePageMode } = usePageHelper(); const { confirm } = useConfirm(); const { t } = useTranslation(); const { mode = 'page', id = '', favorite = false, title = '', } = useCurrentPageMeta() || {}; return ( <> { toggleFavoritePage(id); toast( favorite ? t('Removed from Favourites') : t('Added to Favourites') ); }} icon={favorite ? : } > {favorite ? t('Remove from favourites') : t('Add to favourites')} : } data-testid="editor-option-menu-edgeless" onClick={() => { changePageMode(id, mode === 'page' ? 'edgeless' : 'page'); }} > {t('Convert to ')} {mode === 'page' ? t('Edgeless') : t('Page')} { editor && editor.contentParser.onExportHtml(); }} icon={} > {t('Export to HTML')} { editor && editor.contentParser.onExportMarkdown(); }} icon={} > {t('Export to Markdown')} } > } isDir={true}> {t('Export')} { confirm({ title: t('Delete page?'), content: t('will be moved to Trash', { title: title || 'Untitled', }), confirmText: t('Delete'), confirmType: 'danger', }).then(confirm => { confirm && toggleDeletePage(id); confirm && toast(t('Moved to Trash')); }); }} icon={} > {t('Delete')} ); }; export const EditorOptionMenu = () => { return ( } placement="bottom-end"> ); }; export default EditorOptionMenu;