aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/App.vue2
-rw-r--r--src/components/media_modal/media_modal.vue2
-rw-r--r--src/components/modal/modal.js20
-rw-r--r--src/components/modal/modal.vue28
-rw-r--r--src/components/post_status_modal/post_status_modal.vue4
5 files changed, 36 insertions, 20 deletions
diff --git a/src/App.vue b/src/App.vue
index dbe842ec..33077c9c 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -120,7 +120,7 @@
<MobilePostStatusButton />
<UserReportingModal />
<PostStatusModal />
- <portal-target name="modal" />
+ <portal-target name="modal" multiple />
</div>
</template>
diff --git a/src/components/media_modal/media_modal.vue b/src/components/media_modal/media_modal.vue
index 852bfe1f..35f6f9e9 100644
--- a/src/components/media_modal/media_modal.vue
+++ b/src/components/media_modal/media_modal.vue
@@ -1,7 +1,7 @@
<template>
<Modal
v-if="showing"
- class="media-modal-view"
+ view-class="media-modal-view"
@close="hide"
>
<img
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 {
diff --git a/src/components/post_status_modal/post_status_modal.vue b/src/components/post_status_modal/post_status_modal.vue
index d1caf38f..2fbb7cc7 100644
--- a/src/components/post_status_modal/post_status_modal.vue
+++ b/src/components/post_status_modal/post_status_modal.vue
@@ -1,8 +1,8 @@
<template>
<Modal
v-if="isLoggedIn && !resettingForm"
- v-show="modalActivated"
- class="post-form-modal-view"
+ :is-open="modalActivated"
+ view-class="post-form-modal-view"
@close="closeModal"
>
<div class="post-form-modal-panel panel">