aboutsummaryrefslogtreecommitdiff
path: root/src/components/modal
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
parentd502baaffc30d97a9c4f8f254bf1ff146844151b (diff)
render modals into the “modal” portal
Diffstat (limited to 'src/components/modal')
-rw-r--r--src/components/modal/modal.js20
-rw-r--r--src/components/modal/modal.vue28
2 files changed, 32 insertions, 16 deletions
diff --git a/src/components/modal/modal.js b/src/components/modal/modal.js
new file mode 100644
index 00000000..b9517445
--- /dev/null
+++ b/src/components/modal/modal.js
@@ -0,0 +1,20 @@
+import Vue from 'vue'
+
+const Modal = {
+ props: {
+ viewClass: {
+ type: String
+ },
+ isOpen: {
+ type: Boolean,
+ default: true
+ }
+ },
+ methods: {
+ closeModal () {
+ this.$emit('close')
+ }
+ }
+}
+
+export default Modal \ No newline at end of file
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 {