diff options
| author | kj_sh604 | 2026-03-15 16:19:35 -0400 |
|---|---|---|
| committer | kj_sh604 | 2026-03-15 16:19:35 -0400 |
| commit | 6ec259a0e71174651bae95d4628138bf6fd68742 (patch) | |
| tree | 5e33c6a5ec091ecabfcb257fdc7b6a88ed8754ac /packages/excalidraw/components/dropdownMenu/DropdownMenuItemLink.tsx | |
| parent | 16c8578b15c727f22921f8a80a56ee4d4e7f2272 (diff) | |
refactor: packages/
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"; |
