@@ -21,25 +21,43 @@ function DropdownMenuPortal({
2121 ) ;
2222}
2323
24- function DropdownMenuTrigger ( {
25- ...props
26- } : React . ComponentProps < typeof DropdownMenuPrimitive . Trigger > ) {
24+ const DropdownMenuTrigger = React . forwardRef <
25+ React . ElementRef < typeof DropdownMenuPrimitive . Trigger > ,
26+ React . ComponentProps < typeof DropdownMenuPrimitive . Trigger >
27+ > ( ( { ...props } , ref ) => {
28+
2729 return (
2830 < DropdownMenuPrimitive . Trigger
31+ ref = { ref }
2932 data-slot = "dropdown-menu-trigger"
3033 { ...props }
3134 />
3235 ) ;
33- }
36+ } ) ;
37+
38+ DropdownMenuTrigger . displayName = 'DropdownMenuTrigger' ;
3439
35- function DropdownMenuContent ( {
40+ const DropdownMenuContent = React . forwardRef <
41+ React . ElementRef < typeof DropdownMenuPrimitive . Content > ,
42+ React . ComponentProps < typeof DropdownMenuPrimitive . Content >
43+ > ( ( {
3644 className,
3745 sideOffset = 4 ,
3846 ...props
39- } : React . ComponentProps < typeof DropdownMenuPrimitive . Content > ) {
47+ } , ref ) => {
48+
49+ const contentRef = React . useCallback ( ( node : HTMLDivElement | null ) => {
50+ if ( typeof ref === 'function' ) {
51+ ref ( node ) ;
52+ } else if ( ref ) {
53+ ref . current = node ;
54+ }
55+ } , [ ref ] ) ;
56+
4057 return (
4158 < DropdownMenuPrimitive . Portal >
4259 < DropdownMenuPrimitive . Content
60+ ref = { contentRef }
4361 className = { cn (
4462 'z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95' ,
4563 className
@@ -50,7 +68,9 @@ function DropdownMenuContent({
5068 />
5169 </ DropdownMenuPrimitive . Portal >
5270 ) ;
53- }
71+ } ) ;
72+
73+ DropdownMenuContent . displayName = 'DropdownMenuContent' ;
5474
5575function DropdownMenuGroup ( {
5676 ...props
0 commit comments