Skip to content

Commit

Permalink
fix: forward ref to Menu component
Browse files Browse the repository at this point in the history
  • Loading branch information
Akari0731 committed Dec 12, 2023
1 parent 1e1c1db commit c707dcd
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 10 deletions.
5 changes: 5 additions & 0 deletions .changeset/seven-phones-poke.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@einride/ui": patch
---

Forward ref to Menu component
26 changes: 16 additions & 10 deletions packages/einride-ui/src/components/menus/Menu/Menu.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
import * as DropdownMenu from "@radix-ui/react-dropdown-menu"
import { ReactNode } from "react"
import { ComponentPropsWithoutRef, ReactNode, forwardRef } from "react"

export interface MenuProps {
export interface MenuProps
extends Omit<
ComponentPropsWithoutRef<typeof DropdownMenu.Content>,
"onAnimationStart" | "onDrag" | "onDragEnd" | "onDragStart" | "style" | "title"
> {
/** Menu content. */
children: ReactNode

Expand All @@ -15,13 +19,15 @@ export interface MenuProps {
onOpenChange?: (open: boolean) => void
}

export const Menu = ({ children, isOpen, ...props }: MenuProps): React.JSX.Element => {
export const Menu = forwardRef<HTMLDivElement, MenuProps>(({ children, isOpen, ...props }, ref) => {
return (
<DropdownMenu.Root
{...(typeof isOpen === "boolean" && { open: isOpen })} // TODO: Change to `open` in next major?
{...props}
>
{children}
</DropdownMenu.Root>
<div ref={ref}>
<DropdownMenu.Root
{...(typeof isOpen === "boolean" && { open: isOpen })} // TODO: Change to `open` in next major?
{...props}
>
{children}
</DropdownMenu.Root>
</div>
)
}
})

0 comments on commit c707dcd

Please sign in to comment.