File tree Expand file tree Collapse file tree 2 files changed +22
-1
lines changed Expand file tree Collapse file tree 2 files changed +22
-1
lines changed Original file line number Diff line number Diff line change @@ -33,4 +33,23 @@ describe('useHoverOverlay', () => {
33
33
await userEvent . tab ( ) ;
34
34
expect ( componentProps . onBlur ) . toHaveBeenCalled ( ) ;
35
35
} ) ;
36
+
37
+ it ( 'skipWrapper=true does not swallow refs' , ( ) => {
38
+ function InnerComponent (
39
+ props : Partial < React . HTMLAttributes < HTMLDivElement > > &
40
+ React . RefAttributes < HTMLDivElement >
41
+ ) {
42
+ return < div { ...props } /> ;
43
+ }
44
+
45
+ const ref = jest . fn ( ) ;
46
+
47
+ const WrappedComponent = ( ) => {
48
+ const { wrapTrigger} = useHoverOverlay ( { skipWrapper : true } ) ;
49
+ return wrapTrigger ( < InnerComponent ref = { ref } /> ) ;
50
+ } ;
51
+
52
+ render ( < WrappedComponent /> ) ;
53
+ expect ( ref ) . toHaveBeenCalled ( ) ;
54
+ } ) ;
36
55
} ) ;
Original file line number Diff line number Diff line change @@ -11,7 +11,7 @@ import {
11
11
import type { PopperProps } from 'react-popper' ;
12
12
import { usePopper } from 'react-popper' ;
13
13
import { useTheme } from '@emotion/react' ;
14
- import { mergeProps } from '@react-aria/utils' ;
14
+ import { mergeProps , mergeRefs } from '@react-aria/utils' ;
15
15
16
16
import type { ColorOrAlias } from 'sentry/utils/theme' ;
17
17
@@ -292,6 +292,7 @@ function useHoverOverlay({
292
292
return cloneElement < any > (
293
293
triggerChildren ,
294
294
Object . assign ( mergeProps ( triggerChildren . props as any , providedProps ) , {
295
+ ref : mergeRefs ( ( triggerChildren . props as any ) . ref , setTriggerElement ) ,
295
296
style : triggerStyle ,
296
297
} )
297
298
) ;
@@ -301,6 +302,7 @@ function useHoverOverlay({
301
302
return cloneElement < any > (
302
303
triggerChildren ,
303
304
Object . assign ( mergeProps ( triggerChildren . props as any , providedProps ) , {
305
+ ref : mergeRefs ( ( triggerChildren . props as any ) . ref , setTriggerElement ) ,
304
306
style : ( triggerChildren . props as any ) . style ,
305
307
} )
306
308
) ;
You can’t perform that action at this time.
0 commit comments