diff --git a/packages/primevue/src/drawer/Drawer.d.ts b/packages/primevue/src/drawer/Drawer.d.ts index fb44801e24..9dd62a0401 100755 --- a/packages/primevue/src/drawer/Drawer.d.ts +++ b/packages/primevue/src/drawer/Drawer.d.ts @@ -259,6 +259,10 @@ export interface DrawerEmitsOptions { * Callback to invoke when drawer is shown. */ show(): void; + /** + * Callback to invoke before drawer gets hidden. + */ + 'before-hide'(): void; /** * Callback to invoke when drawer gets hidden. */ diff --git a/packages/primevue/src/drawer/Drawer.vue b/packages/primevue/src/drawer/Drawer.vue index c52e229484..e2d6f1626c 100755 --- a/packages/primevue/src/drawer/Drawer.vue +++ b/packages/primevue/src/drawer/Drawer.vue @@ -54,7 +54,7 @@ export default { name: 'Drawer', extends: BaseDrawer, inheritAttrs: false, - emits: ['update:visible', 'show', 'after-show', 'hide', 'after-hide'], + emits: ['update:visible', 'show', 'after-show', 'hide', 'after-hide', 'before-hide'], data() { return { containerVisible: this.visible @@ -113,6 +113,8 @@ export default { if (this.modal) { !this.isUnstyled && addClass(this.mask, 'p-overlay-mask-leave'); } + + this.$emit('before-hide'); }, onLeave() { this.$emit('hide');