diff options
Diffstat (limited to 'packages/excalidraw/components/dropdownMenu/DropdownMenuItemLink.tsx')
| -rw-r--r-- | packages/excalidraw/components/dropdownMenu/DropdownMenuItemLink.tsx | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/packages/excalidraw/components/dropdownMenu/DropdownMenuItemLink.tsx b/packages/excalidraw/components/dropdownMenu/DropdownMenuItemLink.tsx new file mode 100644 index 0000000..2dbee75 --- /dev/null +++ b/packages/excalidraw/components/dropdownMenu/DropdownMenuItemLink.tsx @@ -0,0 +1,49 @@ +import MenuItemContent from "./DropdownMenuItemContent"; +import type { JSX } from "react"; +import React from "react"; +import { + getDropdownMenuItemClassName, + useHandleDropdownMenuItemClick, +} from "./common"; + +const DropdownMenuItemLink = ({ + icon, + shortcut, + href, + children, + onSelect, + className = "", + selected, + rel = "noreferrer", + ...rest +}: { + href: string; + icon?: JSX.Element; + children: React.ReactNode; + shortcut?: string; + className?: string; + selected?: boolean; + onSelect?: (event: Event) => void; + rel?: string; +} & React.AnchorHTMLAttributes<HTMLAnchorElement>) => { + const handleClick = useHandleDropdownMenuItemClick(rest.onClick, onSelect); + + return ( + <a + {...rest} + href={href} + target="_blank" + rel="noreferrer" + className={getDropdownMenuItemClassName(className, selected)} + title={rest.title ?? rest["aria-label"]} + onClick={handleClick} + > + <MenuItemContent icon={icon} shortcut={shortcut}> + {children} + </MenuItemContent> + </a> + ); +}; + +export default DropdownMenuItemLink; +DropdownMenuItemLink.displayName = "DropdownMenuItemLink"; |
