Refactor #3535
parent
22757dbb5b
commit
201a6ac138
|
@ -68,38 +68,35 @@ export default {
|
||||||
default: false
|
default: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
containerVisible: this.visible
|
||||||
|
};
|
||||||
|
},
|
||||||
container: null,
|
container: null,
|
||||||
mask: null,
|
mask: null,
|
||||||
content: null,
|
content: null,
|
||||||
headerContainer: null,
|
headerContainer: null,
|
||||||
closeButton: null,
|
closeButton: null,
|
||||||
outsideClickListener: null,
|
outsideClickListener: null,
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
containerVisible: this.visible
|
|
||||||
};
|
|
||||||
},
|
|
||||||
updated() {
|
updated() {
|
||||||
if (this.visible) {
|
if (this.visible) {
|
||||||
this.containerVisible = this.visible;
|
this.containerVisible = this.visible;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeUnmount() {
|
beforeUnmount() {
|
||||||
if (this.container && this.autoZIndex) {
|
this.disableDocumentSettings();
|
||||||
ZIndexUtils.clear(this.container);
|
|
||||||
|
if (this.mask && this.autoZIndex) {
|
||||||
|
ZIndexUtils.clear(this.mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.unbindOutsideClickListener();
|
|
||||||
this.container = null;
|
this.container = null;
|
||||||
|
this.mask = null;
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
hide() {
|
hide() {
|
||||||
this.$emit('update:visible', false);
|
this.$emit('update:visible', false);
|
||||||
this.unbindOutsideClickListener();
|
|
||||||
|
|
||||||
if (this.blockScroll) {
|
|
||||||
DomHandler.removeClass(document.body, 'p-overflow-hidden');
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
onEnter() {
|
onEnter() {
|
||||||
this.$emit('show');
|
this.$emit('show');
|
||||||
|
@ -108,13 +105,9 @@ export default {
|
||||||
if (this.autoZIndex) {
|
if (this.autoZIndex) {
|
||||||
ZIndexUtils.set('modal', this.mask, this.baseZIndex || this.$primevue.config.zIndex.modal);
|
ZIndexUtils.set('modal', this.mask, this.baseZIndex || this.$primevue.config.zIndex.modal);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.blockScroll) {
|
|
||||||
DomHandler.addClass(document.body, 'p-overflow-hidden');
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
onAfterEnter() {
|
onAfterEnter() {
|
||||||
this.bindOutsideClickListener();
|
this.enableDocumentSettings();
|
||||||
},
|
},
|
||||||
onBeforeLeave() {
|
onBeforeLeave() {
|
||||||
if (this.modal) {
|
if (this.modal) {
|
||||||
|
@ -123,7 +116,6 @@ export default {
|
||||||
},
|
},
|
||||||
onLeave() {
|
onLeave() {
|
||||||
this.$emit('hide');
|
this.$emit('hide');
|
||||||
this.unbindOutsideClickListener();
|
|
||||||
},
|
},
|
||||||
onAfterLeave() {
|
onAfterLeave() {
|
||||||
if (this.autoZIndex) {
|
if (this.autoZIndex) {
|
||||||
|
@ -131,6 +123,7 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
this.containerVisible = false;
|
this.containerVisible = false;
|
||||||
|
this.disableDocumentSettings();
|
||||||
this.$emit('after-hide');
|
this.$emit('after-hide');
|
||||||
},
|
},
|
||||||
onMaskClick(event) {
|
onMaskClick(event) {
|
||||||
|
@ -155,6 +148,22 @@ export default {
|
||||||
|
|
||||||
focusTarget && focusTarget.focus();
|
focusTarget && focusTarget.focus();
|
||||||
},
|
},
|
||||||
|
enableDocumentSettings() {
|
||||||
|
if (this.dismissable && !this.modal) {
|
||||||
|
this.bindOutsideClickListener();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.blockScroll) {
|
||||||
|
DomHandler.addClass(document.body, 'p-overflow-hidden');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
disableDocumentSettings() {
|
||||||
|
this.unbindOutsideClickListener();
|
||||||
|
|
||||||
|
if (this.blockScroll) {
|
||||||
|
DomHandler.removeClass(document.body, 'p-overflow-hidden');
|
||||||
|
}
|
||||||
|
},
|
||||||
onKeydown(event) {
|
onKeydown(event) {
|
||||||
if (event.code === 'Escape') {
|
if (event.code === 'Escape') {
|
||||||
this.hide();
|
this.hide();
|
||||||
|
@ -184,7 +193,7 @@ export default {
|
||||||
bindOutsideClickListener() {
|
bindOutsideClickListener() {
|
||||||
if (!this.outsideClickListener) {
|
if (!this.outsideClickListener) {
|
||||||
this.outsideClickListener = (event) => {
|
this.outsideClickListener = (event) => {
|
||||||
if (!this.modal && this.isOutsideClicked(event) && this.dismissable) {
|
if (this.isOutsideClicked(event)) {
|
||||||
this.hide();
|
this.hide();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue