import { ExpandedIcon } from "outline-icons"; import * as React from "react"; import { useTranslation } from "react-i18next"; import { Link } from "react-router-dom"; import { useMenuState, MenuButton, MenuItem as BaseMenuItem, MenuStateReturn, } from "reakit/Menu"; import styled, { useTheme } from "styled-components"; import MenuIconWrapper from "~/components/ContextMenu/MenuIconWrapper"; import Flex from "~/components/Flex"; import { actionToMenuItem } from "~/actions"; import useActionContext from "~/hooks/useActionContext"; import { Action, ActionContext, MenuSeparator, MenuHeading, MenuItem as TMenuItem, } from "~/types"; import Tooltip from "../Tooltip"; import Header from "./Header"; import MenuItem, { MenuAnchor } from "./MenuItem"; import MouseSafeArea from "./MouseSafeArea"; import Separator from "./Separator"; import ContextMenu from "."; type Props = Omit & { actions?: (Action | MenuSeparator | MenuHeading)[]; context?: Partial; items?: TMenuItem[]; showIcons?: boolean; }; const Disclosure = styled(ExpandedIcon)` transform: rotate(270deg); position: absolute; right: 8px; `; type SubMenuProps = MenuStateReturn & { templateItems: TMenuItem[]; parentMenuState: Omit; title: React.ReactNode; }; const SubMenu = React.forwardRef(function _Template( { templateItems, title, parentMenuState, ...rest }: SubMenuProps, ref: React.LegacyRef ) { const { t } = useTranslation(); const theme = useTheme(); const menu = useMenuState(); return ( <> {(props) => ( {title} )}