Skip to content

Commit d432e18

Browse files
feat: Overlay new type prop
1 parent 123fcf4 commit d432e18

File tree

5 files changed

+20
-12
lines changed

5 files changed

+20
-12
lines changed

packages/headless/src/overlay/useOverlay.props.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@ import type { useOverlayProps } from '@primereact/types/shared/overlay';
22

33
export const defaultProps: useOverlayProps = {
44
target: undefined,
5+
defaultOpen: undefined,
6+
open: undefined,
57
appendTo: 'body',
8+
type: 'overlay',
69
baseZIndex: 0,
710
autoZIndex: true,
811
closeOnEscape: true,
9-
defaultOpen: undefined,
10-
open: undefined,
1112
onOpenChange: undefined
1213
};

packages/headless/src/overlay/useOverlay.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ export const useOverlay = withHeadless({
5454

5555
addStyle(containerElement, { position: 'absolute', top: '0' });
5656

57-
if (props.autoZIndex) {
58-
ZIndex.set('overlay', containerElement, props.baseZIndex ?? 0 + ($primereact.config?.zIndex?.modal ?? 1100));
57+
if (props.autoZIndex && props.type) {
58+
ZIndex.set(props.type, containerElement, (props.baseZIndex ?? 0) + ($primereact.config?.zIndex?.[props.type] ?? 1000));
5959
}
6060

6161
alignOverlay();

packages/primereact/src/datepicker/portal/DatePickerPortal.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ export const DatePickerPortal = withComponent({
4747
ref={datepicker?.portalRef}
4848
appendTo={datepicker?.props.appendTo}
4949
target={datepicker?.inputRef?.current?.elementRef?.current}
50+
type="overlay"
5051
open={datepicker?.state.overlayVisible}
5152
onOpenChange={({ value }: useOverlayOpenChangeEvent) => datepicker?.changeVisibleState(value)}
5253
onEnter={datepicker?.onOverlayEnter}

packages/primereact/src/password/portal/PasswordPortal.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ export const PasswordPortal = withComponent({
4747
ref={password?.portalRef}
4848
appendTo={password?.props.appendTo}
4949
target={password?.inputRef?.current?.elementRef?.current}
50+
type="overlay"
5051
open={password?.state.overlayVisible}
5152
onOpenChange={({ value }: useOverlayOpenChangeEvent) => password?.changeVisibleState(value)}
5253
onEnter={password?.onOverlayEnter}

packages/types/src/shared/overlay/useOverlay.types.ts

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,19 @@ export interface useOverlayProps {
2828
* The target element to attach the overlay to.
2929
*/
3030
target?: HTMLElement | undefined;
31+
/**
32+
* Default open state for uncontrolled mode.
33+
*/
34+
defaultOpen?: boolean | undefined;
35+
/**
36+
* Whether the overlay is visible (controlled mode).
37+
*/
38+
open?: boolean | undefined;
39+
/**
40+
* Type of the overlay.
41+
* @default 'overlay'
42+
*/
43+
type?: 'overlay' | 'menu' | undefined;
3144
/**
3245
* Where to append the overlay.
3346
* @default 'body'
@@ -48,14 +61,6 @@ export interface useOverlayProps {
4861
* @default true
4962
*/
5063
closeOnEscape?: boolean | undefined;
51-
/**
52-
* Default open state for uncontrolled mode.
53-
*/
54-
defaultOpen?: boolean | undefined;
55-
/**
56-
* Whether the overlay is visible (controlled mode).
57-
*/
58-
open?: boolean | undefined;
5964
/**
6065
* Callback function that is called when the overlay's open state changes.
6166
*/

0 commit comments

Comments
 (0)