From 0c5d6b9e67a2710d12b8154fe94a1ac389546340 Mon Sep 17 00:00:00 2001 From: mertsincan Date: Mon, 12 Apr 2021 14:33:04 +0300 Subject: [PATCH] Refactor #1951 - For OverlayPanel --- src/components/overlaypanel/OverlayPanel.d.ts | 1 + src/components/overlaypanel/OverlayPanel.js | 10 ++++++---- src/showcase/overlaypanel/OverlayPanelDoc.js | 7 ++++++- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/components/overlaypanel/OverlayPanel.d.ts b/src/components/overlaypanel/OverlayPanel.d.ts index bb5d84db28..1db9a9f3a0 100644 --- a/src/components/overlaypanel/OverlayPanel.d.ts +++ b/src/components/overlaypanel/OverlayPanel.d.ts @@ -20,6 +20,7 @@ interface OverlayPanelProps { ariaCloseLabel?: string; breakpoints?: Breakpoints; transitionOptions?: object; + onShow?(): void; onHide?(): void; } diff --git a/src/components/overlaypanel/OverlayPanel.js b/src/components/overlaypanel/OverlayPanel.js index d9dd24a579..93f0ddd126 100644 --- a/src/components/overlaypanel/OverlayPanel.js +++ b/src/components/overlaypanel/OverlayPanel.js @@ -22,6 +22,7 @@ export class OverlayPanel extends Component { breakpoints: null, ariaCloseLabel: 'close', transitionOptions: null, + onShow: null, onHide: null } @@ -35,6 +36,7 @@ export class OverlayPanel extends Component { breakpoints: PropTypes.object, ariaCloseLabel: PropTypes.string, transitionOptions: PropTypes.object, + onShow: PropTypes.func, onHide: PropTypes.func } @@ -173,10 +175,6 @@ export class OverlayPanel extends Component { hide() { this.setState({ visible: false }, () => { OverlayEventBus.off('overlay-click'); - - if (this.props.onHide) { - this.props.onHide(); - } }); } @@ -190,6 +188,8 @@ export class OverlayPanel extends Component { this.bindDocumentClickListener(); this.bindScrollListener(); this.bindResizeListener(); + + this.props.onShow && this.props.onShow(); } onExit() { @@ -200,6 +200,8 @@ export class OverlayPanel extends Component { onExited() { ZIndexUtils.clear(this.overlayRef.current); + + this.props.onHide && this.props.onHide(); } align() { diff --git a/src/showcase/overlaypanel/OverlayPanelDoc.js b/src/showcase/overlaypanel/OverlayPanelDoc.js index 40a4e008d1..9ad9734fe1 100644 --- a/src/showcase/overlaypanel/OverlayPanelDoc.js +++ b/src/showcase/overlaypanel/OverlayPanelDoc.js @@ -373,10 +373,15 @@ import { OverlayPanel } from 'primereact/overlaypanel'; + + onShow + - + Callback to invoke when overlay becomes visible. + onHide - - Callback to invoke when overlay gets hidden. + Callback to invoke when overlay becomes hidden.