import * as React from 'react'; import { useCallback } from 'react'; import { ButtonLevel } from '../../Button/Button'; import { StyledAddButton, StyledHeader, StyledHeaderIcon, StyledHeaderLabel } from '../styles'; import { HeaderId, HeaderListItem } from '../types'; import { _ } from '@joplin/lib/locale'; import bridge from '../../../services/bridge'; import MenuUtils from '@joplin/lib/services/commands/MenuUtils'; import CommandService from '@joplin/lib/services/CommandService'; const Menu = bridge().Menu; const MenuItem = bridge().MenuItem; const menuUtils = new MenuUtils(CommandService.instance()); interface Props { item: HeaderListItem; onDrop: React.DragEventHandler|null; anchorRef: React.Ref; } const HeaderItem: React.FC = props => { const item = props.item; const onItemClick = item.onClick; const itemId = item.id; const onClick: React.MouseEventHandler = useCallback(event => { if (onItemClick) { onItemClick(itemId, event); } }, [onItemClick, itemId]); const onContextMenu = useCallback(async () => { if (itemId === HeaderId.FolderHeader) { const menu = new Menu(); menu.append( new MenuItem(menuUtils.commandToStatefulMenuItem('newFolder')), ); menu.popup({ window: bridge().window() }); } }, [itemId]); const addButton = ; return (
{item.label} { item.onPlusButtonClick && addButton }
); }; export default HeaderItem;