import { MAX_PAGES, PageRecordType, TLPageId, track, useEditor } from '@bigbluebutton/editor' import * as DropdownMenu from '@radix-ui/react-dropdown-menu' import { useCallback } from 'react' import { useTranslation } from '../../hooks/useTranslation/useTranslation' import { Button } from '../primitives/Button' import * as M from '../primitives/DropdownMenu' import { onMovePage } from './edit-pages-shared' export interface PageItemSubmenuProps { index: number item: { id: string; name: string } listSize: number onRename?: () => void } export const PageItemSubmenu = track(function PageItemSubmenu({ index, listSize, item, onRename, }: PageItemSubmenuProps) { const editor = useEditor() const msg = useTranslation() const pages = editor.getPages() const onDuplicate = useCallback(() => { editor.mark('creating page') const newId = PageRecordType.createId() editor.duplicatePage(item.id as TLPageId, newId) }, [editor, item]) const onMoveUp = useCallback(() => { onMovePage(editor, item.id as TLPageId, index, index - 1) }, [editor, item, index]) const onMoveDown = useCallback(() => { onMovePage(editor, item.id as TLPageId, index, index + 1) }, [editor, item, index]) const onDelete = useCallback(() => { editor.mark('deleting page') editor.deletePage(item.id as TLPageId) }, [editor, item]) return (