@@ -21,12 +21,14 @@ import { mergeProps } from '../../merge-props';
21
21
import { useOpenInteractionType } from '../../utils/useOpenInteractionType' ;
22
22
import {
23
23
translateOpenChangeReason ,
24
- type OpenChangeReason ,
24
+ type BaseOpenChangeReason ,
25
25
} from '../../utils/translateOpenChangeReason' ;
26
26
import { useOpenChangeComplete } from '../../utils/useOpenChangeComplete' ;
27
27
import { PATIENT_CLICK_THRESHOLD } from '../../utils/constants' ;
28
28
import { useScrollLock } from '../../utils/useScrollLock' ;
29
29
30
+ export type OpenChangeReason = BaseOpenChangeReason | 'close-button' ;
31
+
30
32
export function usePopoverRoot ( params : usePopoverRoot . Parameters ) : usePopoverRoot . ReturnValue {
31
33
const {
32
34
open : externalOpen ,
@@ -65,7 +67,7 @@ export function usePopoverRoot(params: usePopoverRoot.Parameters): usePopoverRoo
65
67
const { mounted, setMounted, transitionStatus } = useTransitionStatus ( open ) ;
66
68
67
69
useScrollLock ( {
68
- enabled : open && modal === true && openReason !== 'hover' ,
70
+ enabled : open && modal === true && openReason !== 'trigger- hover' ,
69
71
mounted,
70
72
open,
71
73
referenceElement : positionerElement ,
@@ -155,7 +157,7 @@ export function usePopoverRoot(params: usePopoverRoot.Parameters): usePopoverRoo
155
157
const computedRestMs = delayWithDefault ;
156
158
157
159
const hover = useHover ( context , {
158
- enabled : openOnHover && ( openMethod !== 'touch' || openReason !== 'click ' ) ,
160
+ enabled : openOnHover && ( openMethod !== 'touch' || openReason !== 'trigger-press ' ) ,
159
161
mouseOnly : true ,
160
162
move : false ,
161
163
handleClose : safePolygon ( { blockPointerEvents : true } ) ,
@@ -287,7 +289,11 @@ export namespace usePopoverRoot {
287
289
288
290
export interface ReturnValue {
289
291
open : boolean ;
290
- setOpen : ( open : boolean , event ?: Event , reason ?: OpenChangeReason ) => void ;
292
+ setOpen : (
293
+ open : boolean ,
294
+ event : Event | undefined ,
295
+ reason : OpenChangeReason | undefined ,
296
+ ) => void ;
291
297
mounted : boolean ;
292
298
setMounted : React . Dispatch < React . SetStateAction < boolean > > ;
293
299
transitionStatus : TransitionStatus ;
0 commit comments