aboutsummaryrefslogtreecommitdiff
path: root/src/components/modal/modal.vue
diff options
context:
space:
mode:
authortaehoon <th.dev91@gmail.com>2019-10-18 11:53:38 -0400
committertaehoon <th.dev91@gmail.com>2019-10-18 11:53:38 -0400
commita41ffea146bf1a392de255f04bf64599de165269 (patch)
treefa7ff5ad52ee3fce2288ba7498bc85f19e738f3e /src/components/modal/modal.vue
parentd502baaffc30d97a9c4f8f254bf1ff146844151b (diff)
render modals into the “modal” portal
Diffstat (limited to 'src/components/modal/modal.vue')
-rw-r--r--src/components/modal/modal.vue28
1 files changed, 12 insertions, 16 deletions
diff --git a/src/components/modal/modal.vue b/src/components/modal/modal.vue
index 8edfbd45..e5831c47 100644
--- a/src/components/modal/modal.vue
+++ b/src/components/modal/modal.vue
@@ -1,22 +1,18 @@
<template>
- <div
- v-body-scroll-lock="true"
- class="modal-view"
- @click.self="closeModal"
- >
- <slot />
- </div>
+ <portal to="modal">
+ <div
+ ref="view"
+ v-body-scroll-lock="isOpen"
+ v-show="isOpen"
+ :class="['modal-view', viewClass]"
+ @click.self="closeModal"
+ >
+ <slot />
+ </div>
+ </portal>
</template>
-<script>
-export default {
- methods: {
- closeModal () {
- this.$emit('close')
- }
- }
-}
-</script>
+<script src="./modal.js"></script>
<style lang="scss">
.modal-view {