/**
* External dependencies
*/
import { MenuGroup, MenuItem, DropdownMenu } from '@wordpress/components';
import { useState } from '@wordpress/element';
import { displayShortcut } from '@wordpress/keycodes';
import { moreVertical } from '@wordpress/icons';
import { useEntityProp } from '@wordpress/core-data';
import { __, _x } from '@wordpress/i18n';
import { PreferenceToggleMenuItem } from '@wordpress/preferences';
import { useSelect, useDispatch } from '@wordpress/data';
/**
* Internal dependencies
*/
import { storeName, editorCurrentPostType } from '../../store';
import { TrashModal } from './trash-modal';
import { recordEvent } from '../../events';
// See:
// https://github.com/WordPress/gutenberg/blob/9601a33e30ba41bac98579c8d822af63dd961488/packages/edit-post/src/components/header/more-menu/index.js
// https://github.com/WordPress/gutenberg/blob/0ee78b1bbe9c6f3e6df99f3b967132fa12bef77d/packages/edit-site/src/components/header/more-menu/index.js
export function MoreMenu(): JSX.Element {
const [ showTrashModal, setShowTrashModal ] = useState( false );
const { urls, postId } = useSelect(
( select ) => ( {
urls: select( storeName ).getUrls(),
postId: select( storeName ).getEmailPostId(),
} ),
[]
);
const [ status, setStatus ] = useEntityProp(
'postType',
editorCurrentPostType,
'status'
);
const { saveEditedEmail } = useDispatch( storeName );
const goToListings = () => {
window.location.href = urls.listings;
};
return (
<>
recordEvent( 'header_more_menu_dropdown_toggle', {
isOpened,
} )
}
>
{ ( { onClose } ) => (
<>
recordEvent(
'header_more_menu_fixed_toolbar_toggle'
)
}
/>
recordEvent(
'header_more_menu_focus_mode_toggle'
)
}
/>
recordEvent(
'header_more_menu_fullscreen_mode_toggle'
)
}
/>
{ status === 'trash' ? (
) : (
) }
>
) }
{ showTrashModal && (
setShowTrashModal( false ) }
onRemove={ goToListings }
postId={ postId }
/>
) }
>
);
}