diff --git a/index.html b/index.html index dcf83cb..77f741c 100644 --- a/index.html +++ b/index.html @@ -143,7 +143,7 @@ - + diff --git a/pages/addon/addon-form.vue b/pages/addon/addon-form.vue index 3426b59..64b3f04 100644 --- a/pages/addon/addon-form.vue +++ b/pages/addon/addon-form.vue @@ -1,6 +1,6 @@ @@ -69,11 +69,12 @@ export default { data() { return { fullscreenIndex: undefined, + previewOpen: false, }; }, computed: { fullscreenItem() { - if (this.fullscreenIndex === undefined) return undefined; + if (this.fullscreenIndex === undefined) return ""; return this.sources[this.fullscreenIndex]; }, empty() { @@ -90,7 +91,7 @@ export default { onFullscreen(index, e) { if (e) e.target.blur(); this.fullscreenIndex = index; - this.$refs.preview.open(); + this.previewOpen = true; }, }, }; diff --git a/pages/components/fullscreen-preview.vue b/pages/components/fullscreen-preview.vue index c0a4485..2f8be66 100644 --- a/pages/components/fullscreen-preview.vue +++ b/pages/components/fullscreen-preview.vue @@ -8,7 +8,7 @@ alt="fullscreen preview" :aspect-ratio="aspectRatio" contain - @click="close" + @click="() => (modalOpened = false)" /> @@ -18,6 +18,10 @@ export default { name: "fullscreen-preview", props: { + value: { + type: Boolean, + required: true, + }, aspectRatio: { required: false, type: Number, @@ -38,14 +42,6 @@ export default { modalOpened: false, }; }, - methods: { - close() { - this.modalOpened = false; - }, - open() { - this.modalOpened = true; - }, - }, computed: { styles() { if (!this.texture) return {}; @@ -54,5 +50,13 @@ export default { }; }, }, + watch: { + value(newValue) { + this.modalOpened = newValue; + }, + modalOpened(newValue) { + this.$emit("input", newValue); + }, + }, }; diff --git a/pages/gallery/gallery-modal.vue b/pages/gallery/gallery-modal.vue index d23c954..12f1c29 100644 --- a/pages/gallery/gallery-modal.vue +++ b/pages/gallery/gallery-modal.vue @@ -7,7 +7,7 @@ @click.stop="() => closeModal()" > - + @@ -194,6 +194,7 @@ export default { ], opened: false, clickedImage: "", + previewOpen: false, }; }, watch: { @@ -250,7 +251,7 @@ export default { }, openFullscreenPreview(url) { this.clickedImage = url; - this.$refs.preview.open(); + this.previewOpen = true; }, getHeaders(item) { if (this.packs.includes(item)) diff --git a/pages/review/expansion-panel.vue b/pages/review/expansion-panel.vue index faafb2c..12ae8ef 100644 --- a/pages/review/expansion-panel.vue +++ b/pages/review/expansion-panel.vue @@ -1,6 +1,6 @@