add closing animation

This commit is contained in:
Mutasem 2021-07-02 17:18:08 +02:00
parent 6e424e15f4
commit cf67e94b84

View file

@ -1,11 +1,11 @@
<template> <template>
<div v-if="dialogVisible"> <div>
<el-drawer <el-drawer
v-if="drawer" v-if="drawer"
:direction="drawerDirection" :direction="drawerDirection"
:before-close="closeDialog" :visible="visibleDrawer"
:visible="true"
:size="drawerWidth" :size="drawerWidth"
:before-close="closeDrawer"
> >
<template v-slot:title> <template v-slot:title>
<slot name="header" /> <slot name="header" />
@ -48,6 +48,11 @@ const sizeMap: {[size: string]: string} = {
export default Vue.extend({ export default Vue.extend({
name: "Modal", name: "Modal",
props: ['name', 'title', 'eventBus', 'size', 'drawer', 'drawerDirection', 'drawerWidth'], props: ['name', 'title', 'eventBus', 'size', 'drawer', 'drawerDirection', 'drawerWidth'],
data() {
return {
visibleDrawer: this.drawer,
};
},
mounted() { mounted() {
window.addEventListener('keydown', this.onWindowKeydown); window.addEventListener('keydown', this.onWindowKeydown);
@ -83,6 +88,12 @@ export default Vue.extend({
closeDialog() { closeDialog() {
this.$store.commit('ui/closeTopModal'); this.$store.commit('ui/closeTopModal');
}, },
closeDrawer() {
this.visibleDrawer = false;
setTimeout(() =>{
this.$store.commit('ui/closeTopModal');
}, 300); // delayed for closing animation to take effect
},
}, },
computed: { computed: {
width(): string { width(): string {