@@ -14,7 +14,7 @@ import {
14
14
PropGetter ,
15
15
useProviderContext ,
16
16
} from "@nextui-org/system" ;
17
- import { getArrowPlacement , getShouldUseAxisPlacement } from "@nextui-org/aria-utils" ;
17
+ import { getArrowPlacement } from "@nextui-org/aria-utils" ;
18
18
import { popover } from "@nextui-org/theme" ;
19
19
import { mergeProps , mergeRefs } from "@react-aria/utils" ;
20
20
import { clsx , dataAttr , objectToDeps } from "@nextui-org/shared-utils" ;
@@ -81,6 +81,8 @@ export interface Props extends HTMLNextUIProps<"div"> {
81
81
onClose ?: ( ) => void ;
82
82
}
83
83
84
+ const DEFAULT_PLACEMENT = "top" ;
85
+
84
86
export type UsePopoverProps = Props &
85
87
Omit < ReactAriaPopoverProps , "triggerRef" | "popoverRef" > &
86
88
OverlayTriggerProps &
@@ -110,7 +112,7 @@ export function usePopover(originalProps: UsePopoverProps) {
110
112
portalContainer,
111
113
updatePositionDeps,
112
114
dialogProps : dialogPropsProp ,
113
- placement : placementProp = "top" ,
115
+ placement : placementProp = DEFAULT_PLACEMENT ,
114
116
triggerType = "dialog" ,
115
117
showArrow = false ,
116
118
offset = 7 ,
@@ -150,11 +152,7 @@ export function usePopover(originalProps: UsePopoverProps) {
150
152
151
153
const state = stateProp || innerState ;
152
154
153
- const {
154
- popoverProps,
155
- underlayProps,
156
- placement : ariaPlacement ,
157
- } = useReactAriaPopover (
155
+ const { popoverProps, underlayProps, placement} = useReactAriaPopover (
158
156
{
159
157
triggerRef,
160
158
isNonModal,
@@ -208,7 +206,7 @@ export function usePopover(originalProps: UsePopoverProps) {
208
206
"data-focus" : dataAttr ( isFocused ) ,
209
207
"data-arrow" : dataAttr ( showArrow ) ,
210
208
"data-focus-visible" : dataAttr ( isFocusVisible ) ,
211
- "data-placement" : getArrowPlacement ( ariaPlacement || "top" , placementProp ) ,
209
+ "data-placement" : getArrowPlacement ( placement || DEFAULT_PLACEMENT , placementProp ) ,
212
210
...mergeProps ( focusProps , dialogPropsProp , props ) ,
213
211
className : slots . base ( { class : clsx ( baseStyles ) } ) ,
214
212
style : {
@@ -222,18 +220,10 @@ export function usePopover(originalProps: UsePopoverProps) {
222
220
"data-slot" : "content" ,
223
221
"data-open" : dataAttr ( state . isOpen ) ,
224
222
"data-arrow" : dataAttr ( showArrow ) ,
225
- "data-placement" : getArrowPlacement ( ariaPlacement || "top" , placementProp ) ,
223
+ "data-placement" : getArrowPlacement ( placement || DEFAULT_PLACEMENT , placementProp ) ,
226
224
className : slots . content ( { class : clsx ( classNames ?. content , props . className ) } ) ,
227
225
} ) ,
228
- [ slots , state . isOpen , showArrow , ariaPlacement , placementProp , classNames ] ,
229
- ) ;
230
-
231
- const placement = useMemo (
232
- ( ) =>
233
- getShouldUseAxisPlacement ( ariaPlacement || "top" , placementProp )
234
- ? ariaPlacement || placementProp
235
- : placementProp ,
236
- [ ariaPlacement , placementProp ] ,
226
+ [ slots , state . isOpen , showArrow , placement , placementProp , classNames ] ,
237
227
) ;
238
228
239
229
const onPress = useCallback (
@@ -317,7 +307,7 @@ export function usePopover(originalProps: UsePopoverProps) {
317
307
classNames,
318
308
showArrow,
319
309
triggerRef,
320
- placement,
310
+ placement : placement || DEFAULT_PLACEMENT ,
321
311
isNonModal,
322
312
popoverRef : domRef ,
323
313
portalContainer,
0 commit comments