From 5b26ef277dea9c9eac70cac0cde34a37538bf307 Mon Sep 17 00:00:00 2001 From: indy koning Date: Tue, 14 Jan 2025 15:19:02 +0100 Subject: [PATCH 1/3] Implement teleport in slideover --- package.json | 3 +- resources/js/components/GlobalSlideover.vue | 13 +++++-- .../js/components/GlobalSlideoverInstance.vue | 2 -- resources/js/vue-components.js | 3 ++ .../views/checkout/steps/agreements.blade.php | 36 +++++++++++-------- .../components/slideover/global.blade.php | 15 +++++--- resources/views/layouts/app.blade.php | 3 +- .../partials/global-slideover.blade.php | 2 +- 8 files changed, 51 insertions(+), 26 deletions(-) diff --git a/package.json b/package.json index f853f4657..a556c625c 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,8 @@ "vue-clickaway": "^2.2.2", "vue-cookies": "^1.8.2", "vue-template-compiler": "^2.7.14", - "vue-turbolinks": "^2.2.2" + "vue-turbolinks": "^2.2.2", + "vue2-teleport": "^1.1.4" }, "dependencies": {} } diff --git a/resources/js/components/GlobalSlideover.vue b/resources/js/components/GlobalSlideover.vue index cd9d31be3..a14d59301 100644 --- a/resources/js/components/GlobalSlideover.vue +++ b/resources/js/components/GlobalSlideover.vue @@ -3,14 +3,23 @@ export default { props: { title: String, position: String, - content: String, + }, + data() { + return { + isCurrentSlideover: false + }; }, render() { return this.$scopedSlots.default(this) }, + mounted() { + this.$root.$on('global-slideover-open', (data) => { + this.isCurrentSlideover = data.initiator === this; + }) + }, methods: { open() { - this.$root.$emit('global-slideover-open', { content: this.content, title: this.title, position: this.position }) + this.$root.$emit('global-slideover-open', { title: this.title, position: this.position, initiator: this }) }, }, } diff --git a/resources/js/components/GlobalSlideoverInstance.vue b/resources/js/components/GlobalSlideoverInstance.vue index fa4fa7510..77e7f7b11 100644 --- a/resources/js/components/GlobalSlideoverInstance.vue +++ b/resources/js/components/GlobalSlideoverInstance.vue @@ -5,14 +5,12 @@ export default { }, data() { return { - content: '', title: '', position: 'left', } }, mounted() { this.$root.$on('global-slideover-open', (data) => { - this.content = data.content || '' this.title = data.title || '' this.position = data.position || 'left' this.$el.querySelector('#slideover-global').checked = true diff --git a/resources/js/vue-components.js b/resources/js/vue-components.js index 9a400f4c7..f62733966 100644 --- a/resources/js/vue-components.js +++ b/resources/js/vue-components.js @@ -1,3 +1,6 @@ +import Teleport from 'vue2-teleport'; +Vue.component('teleport', Teleport) + import toggler from './components/Elements/Toggler.vue' Vue.component('toggler', toggler) diff --git a/resources/views/checkout/steps/agreements.blade.php b/resources/views/checkout/steps/agreements.blade.php index 991308467..0089e0443 100644 --- a/resources/views/checkout/steps/agreements.blade.php +++ b/resources/views/checkout/steps/agreements.blade.php @@ -1,23 +1,31 @@
- - -
- + +
+ + +
diff --git a/resources/views/components/slideover/global.blade.php b/resources/views/components/slideover/global.blade.php index ba2b55bce..c2fdeb37a 100644 --- a/resources/views/components/slideover/global.blade.php +++ b/resources/views/components/slideover/global.blade.php @@ -16,8 +16,15 @@ @props(['title', 'position' => 'left']) @slots(['label']) - - + +
+ + +
diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index 806ad1d30..a25c84487 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -27,6 +27,7 @@
+ @include('rapidez::layouts.partials.global-slideover') @includeWhen(!request()->routeIs('checkout'), 'rapidez::layouts.partials.header') @includeWhen(request()->routeIs('checkout'), 'rapidez::layouts.checkout.header')
@@ -34,8 +35,6 @@
@includeWhen(!request()->routeIs('checkout'), 'rapidez::layouts.partials.footer') @includeWhen(request()->routeIs('checkout'), 'rapidez::layouts.checkout.footer') - - @include('rapidez::layouts.partials.global-slideover') @stack('page_end')
diff --git a/resources/views/layouts/partials/global-slideover.blade.php b/resources/views/layouts/partials/global-slideover.blade.php index 2c9ca7b53..c3a83f4f3 100644 --- a/resources/views/layouts/partials/global-slideover.blade.php +++ b/resources/views/layouts/partials/global-slideover.blade.php @@ -8,7 +8,7 @@
-
+
From 40b2d0c353b952c95636d500189bbaa3c54720ff Mon Sep 17 00:00:00 2001 From: indykoning Date: Tue, 14 Jan 2025 14:34:26 +0000 Subject: [PATCH 2/3] Apply fixes from Prettier --- resources/js/components/GlobalSlideover.vue | 6 ++-- resources/js/vue-components.js | 2 +- yarn.lock | 38 ++++++++++++++++++--- 3 files changed, 37 insertions(+), 9 deletions(-) diff --git a/resources/js/components/GlobalSlideover.vue b/resources/js/components/GlobalSlideover.vue index a14d59301..5c5beac86 100644 --- a/resources/js/components/GlobalSlideover.vue +++ b/resources/js/components/GlobalSlideover.vue @@ -6,15 +6,15 @@ export default { }, data() { return { - isCurrentSlideover: false - }; + isCurrentSlideover: false, + } }, render() { return this.$scopedSlots.default(this) }, mounted() { this.$root.$on('global-slideover-open', (data) => { - this.isCurrentSlideover = data.initiator === this; + this.isCurrentSlideover = data.initiator === this }) }, methods: { diff --git a/resources/js/vue-components.js b/resources/js/vue-components.js index f62733966..bf67f629d 100644 --- a/resources/js/vue-components.js +++ b/resources/js/vue-components.js @@ -1,4 +1,4 @@ -import Teleport from 'vue2-teleport'; +import Teleport from 'vue2-teleport' Vue.component('teleport', Teleport) import toggler from './components/Elements/Toggler.vue' diff --git a/yarn.lock b/yarn.lock index 56df3a677..5ed037ebe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1840,8 +1840,16 @@ source-map@^0.7.2, source-map@^0.7.4: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - name string-width-cjs +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -1859,7 +1867,14 @@ string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.1" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -2115,6 +2130,11 @@ vue-types@^1.7.0: dependencies: is-plain-object "3.0.0" +vue2-teleport@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/vue2-teleport/-/vue2-teleport-1.1.4.tgz#30c84b1005bf9c208b1c05f4b6147300c54ee846" + integrity sha512-mGTszyQP6k3sSSk7MBq+PZdVojHYLwg5772hl3UVpu5uaLBqWIZ5eNP6/TjkDrf1XUTTxybvpXC6inpjwO+i/Q== + vue@^2.7: version "2.7.16" resolved "https://registry.yarnpkg.com/vue/-/vue-2.7.16.tgz#98c60de9def99c0e3da8dae59b304ead43b967c9" @@ -2143,8 +2163,16 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: - name wrap-ansi-cjs +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== From 7975ac168cb6c0da89d279c846ddf493531c87ef Mon Sep 17 00:00:00 2001 From: indy koning Date: Thu, 23 Jan 2025 12:53:10 +0100 Subject: [PATCH 3/3] Move v-slot to same line --- resources/views/checkout/steps/agreements.blade.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/resources/views/checkout/steps/agreements.blade.php b/resources/views/checkout/steps/agreements.blade.php index 0089e0443..d5ebfffa6 100644 --- a/resources/views/checkout/steps/agreements.blade.php +++ b/resources/views/checkout/steps/agreements.blade.php @@ -1,8 +1,7 @@
- +