Skip to content

Commit b144d94

Browse files
authored
Merge branch 'master' into flat-tables-customer-pricing
2 parents da0a152 + 2fe9429 commit b144d94

File tree

17 files changed

+129
-86
lines changed

17 files changed

+129
-86
lines changed

.github/workflows/analyse.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ jobs:
1616
php: [8.2, 8.3, 8.4]
1717
stability: [prefer-stable]
1818
include:
19-
- laravel: 11.*
20-
testbench: 9.*
2119
- laravel: 12.*
2220
testbench: 10.*
2321

.github/workflows/phpunit.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,9 @@ jobs:
1616
fail-fast: false
1717
matrix:
1818
php: [8.2, 8.3, 8.4]
19-
laravel: [11.*, 12.*]
19+
laravel: [12.*]
2020
stability: [prefer-lowest, prefer-stable]
2121
include:
22-
- laravel: 11.*
23-
testbench: ~9.2
2422
- laravel: 12.*
2523
testbench: 10.*
2624

composer.json

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020
"blade-ui-kit/blade-heroicons": "^2.6",
2121
"blade-ui-kit/blade-icons": "^1.8",
2222
"http-interop/http-factory-guzzle": "^1.2",
23-
"illuminate/database": "^11.0|^12.0",
24-
"illuminate/events": "^11.0|^12.0",
25-
"illuminate/queue": "^11.0|^12.0",
26-
"illuminate/support": "^11.0|^12.0, <12.26.0 || >=12.27.0",
23+
"illuminate/database": "^12.0",
24+
"illuminate/events": "^12.0",
25+
"illuminate/queue": "^12.0",
26+
"illuminate/support": "^12.0, <12.26.0 || >=12.27.0",
2727
"justbetter/laravel-http3earlyhints": "^1.4",
2828
"laravel/scout": "^10.14",
2929
"lcobucci/clock": "^2.0|^3.2",
@@ -36,7 +36,7 @@
3636
},
3737
"require-dev": {
3838
"larastan/larastan": "^3.1",
39-
"orchestra/testbench": "^9.4|^10.0",
39+
"orchestra/testbench": "^10.0",
4040
"phpunit/phpunit": "^11.3.5"
4141
},
4242
"autoload": {
@@ -70,6 +70,7 @@
7070
}
7171
},
7272
"conflict": {
73+
"laravel/framework": "<12.11",
7374
"rapidez/reviews": "<4.1"
7475
},
7576
"scripts": {

resources/js/components/Listing/Listing.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -222,9 +222,9 @@ export default {
222222
let ranges = Object.fromEntries(Object.entries(routeState).filter(([key]) => this.rangeAttributes.includes(key)))
223223
224224
let refinementList = Object.fromEntries(
225-
Object.entries(routeState).filter(
226-
([key]) => !['q', 'hits', 'sort', 'page', 'category'].includes(key) && !this.rangeAttributes.includes(key),
227-
),
225+
Object.entries(routeState)
226+
.filter(([key]) => !['q', 'hits', 'sort', 'page', 'category'].includes(key) && !this.rangeAttributes.includes(key))
227+
.map(([key, refinement]) => [key, typeof refinement === 'string' ? refinement.split(',') : refinement]),
228228
)
229229
230230
const categories = [...(this.rootPath || []), ...(routeState.category?.split('--') || [])]

resources/js/components/Product/QuantitySelect.vue

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,16 @@ export default {
3636
methods: {
3737
increase() {
3838
if (this.increasable) {
39-
this.$emit('input', this.clampValue(this.value + this.step))
39+
this.value = this.clampValue(this.value + this.step)
40+
this.$emit('input', this.value)
4041
this.$emit('change')
4142
}
4243
},
4344
4445
decrease() {
4546
if (this.decreasable) {
46-
this.$emit('input', this.clampValue(this.value - this.step))
47+
this.value = this.clampValue(this.value - this.step)
48+
this.$emit('input', this.value)
4749
this.$emit('change')
4850
}
4951
},

resources/js/components/Search/Autocomplete.vue

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ export default {
3535
type: Number,
3636
default: 3,
3737
},
38+
filterQueryString: {
39+
type: String,
40+
},
3841
},
3942
4043
data() {
@@ -127,6 +130,33 @@ export default {
127130
return client
128131
},
129132
133+
async getInstantSearchClientConfig() {
134+
const config = await InstantSearchMixin.methods.getInstantSearchClientConfig.bind(this).call()
135+
136+
config.getBaseFilters = this.getBaseFilters
137+
138+
return config
139+
},
140+
141+
getBaseFilters() {
142+
let extraFilters = []
143+
extraFilters.push({
144+
query_string: {
145+
query: 'visibility:(3 OR 4) OR (NOT _exists_:visibility)',
146+
},
147+
})
148+
149+
if (this.filterQueryString) {
150+
extraFilters.push({
151+
query_string: {
152+
query: this.filterQueryString,
153+
},
154+
})
155+
}
156+
157+
return extraFilters
158+
},
159+
130160
getMiddlewares() {
131161
let middlewares = InstantSearchMixin.methods.getMiddlewares.bind(this).call()
132162

resources/js/mixins.js

Lines changed: 30 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,38 @@
11
import { mask } from './stores/useMask'
2+
import { computed } from 'vue'
23

34
document.addEventListener('vue:loaded', function (event) {
4-
event.detail.vue.mixin({
5-
methods: {
6-
async asyncForEach(array, callback) {
7-
for (let index = 0; index < array.length; index++) {
8-
await callback(array[index], index, array)
9-
}
10-
},
5+
event.detail.vue.config.globalProperties.asyncForEach = async (array, callback) => {
6+
for (let index = 0; index < array.length; index++) {
7+
await callback(array[index], index, array)
8+
}
9+
}
1110

12-
async magentoCart(method, endpoint, data) {
13-
if (window.app.config.globalProperties.loggedIn.value) {
14-
return await window.magentoAPI(method, 'carts/mine/' + endpoint, data)
15-
} else {
16-
return await window.magentoAPI(method, 'guest-carts/' + mask.value + '/' + endpoint, data)
17-
}
18-
},
19-
},
11+
event.detail.vue.config.globalProperties.magentoCart = async (method, endpoint, data) => {
12+
if (window.app.config.globalProperties.loggedIn.value) {
13+
return await window.magentoAPI(method, 'carts/mine/' + endpoint, data)
14+
} else {
15+
return await window.magentoAPI(method, 'guest-carts/' + mask.value + '/' + endpoint, data)
16+
}
17+
}
2018

21-
computed: {
22-
currencySymbolLocation() {
23-
return new Intl.NumberFormat(config.locale.replace('_', '-'), {
24-
style: 'currency',
25-
currency: config.currency,
26-
}).formatToParts(1)?.[0]?.type === 'currency'
27-
? 'left'
28-
: 'right'
29-
},
19+
event.detail.vue.config.globalProperties.currencySymbolLocation = computed(() => {
20+
return new Intl.NumberFormat(config.locale.replace('_', '-'), {
21+
style: 'currency',
22+
currency: config.currency,
23+
}).formatToParts(1)?.[0]?.type === 'currency'
24+
? 'left'
25+
: 'right'
26+
})
3027

31-
currencySymbol() {
32-
return new Intl.NumberFormat(config.locale.replace('_', '-'), {
33-
style: 'currency',
34-
currency: config.currency,
35-
maximumFractionDigits: 0,
36-
})
37-
.format(0)
38-
.replace(/\d/g, '')
39-
.trim()
40-
},
41-
},
28+
event.detail.vue.config.globalProperties.currencySymbol = computed(() => {
29+
return new Intl.NumberFormat(config.locale.replace('_', '-'), {
30+
style: 'currency',
31+
currency: config.currency,
32+
maximumFractionDigits: 0,
33+
})
34+
.format(0)
35+
.replace(/\d/g, '')
36+
.trim()
4237
})
4338
})

resources/js/package.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import './callbacks'
2323
import './vue-components'
2424
import './instantsearch'
2525
import { fetchCount } from './stores/useFetches.js'
26-
import { computed, createApp } from 'vue'
26+
import { computed, createApp, watch } from 'vue'
2727
;(() => import('./turbolinks'))()
2828

2929
if (import.meta.env.VITE_DEBUG === 'true') {
@@ -134,11 +134,6 @@ function init() {
134134
}
135135
},
136136
},
137-
watch: {
138-
loadingCount: function (count) {
139-
app.config.globalProperties.loading = count > 0
140-
},
141-
},
142137
mounted() {
143138
setTimeout(() => {
144139
const event = new CustomEvent('vue:mounted', { detail: { vue: window.app } })
@@ -183,6 +178,10 @@ function init() {
183178
window.app.config.globalProperties.window = window
184179
window.app.config.globalProperties.config = window.config
185180

181+
watch(fetchCount, function (count) {
182+
app.config.globalProperties.loading = count > 0
183+
})
184+
186185
setTimeout(() => {
187186
booting = false
188187
const event = new CustomEvent('vue:loaded', { detail: { vue: window.app } })

resources/views/cart/sidebar.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
<div class="border-t pt-3 mt-3 font-bold">
4343
<dt>@lang('Total')</dt>
4444
<dd v-if="showTax">@{{ window.price(cart.value.prices.grand_total.value) }}</dd>
45-
<dd v-else>@{{ window.price(cart.value.prices.grand_total.value - cart.value.taxTotal.value) }}</dd>
45+
<dd v-else>@{{ window.price(cart.value.prices.grand_total.value - cart.value.taxTotal) }}</dd>
4646
</div>
4747
</x-rapidez::summary>
4848

resources/views/checkout/partials/sidebar.blade.php

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,12 @@ class="w-10 h-auto object-contain"
6060
<dt>@lang('Tax')</dt>
6161
<dd>@{{ window.price(cart.value.prices.applied_taxes[0].amount.value) }}</dd>
6262
</div>
63-
<div v-if="cart.value.shipping_addresses.length && cart.value.shipping_addresses[0]?.selected_shipping_method">
63+
<div v-if="cart.value.shipping_addresses.length && cart.value.shipping_addresses?.[0]?.selected_shipping_method">
6464
<dt>
6565
@lang('Shipping')<br>
66-
<small class="text-muted">@{{ cart.value.shipping_addresses[0]?.selected_shipping_method.carrier_title }} - @{{ cart.value.shipping_addresses[0]?.selected_shipping_method.method_title }}</small>
66+
<small class="text-muted">@{{ cart.value.shipping_addresses[0].selected_shipping_method.carrier_title }} - @{{ cart.value.shipping_addresses[0].selected_shipping_method.method_title }}</small>
6767
</dt>
68-
<dd>@{{ window.price(cart.value.shipping_addresses[0]?.selected_shipping_method.amount.value) }}</dd>
68+
<dd>@{{ window.price(cart.value.shipping_addresses[0].selected_shipping_method.amount.value) }}</dd>
6969
</div>
7070
<div v-for="discount in cart.value.prices.discounts" class="border-t pt-3 mt-3">
7171
<dt>@{{ discount.label }}</dt>
@@ -77,17 +77,17 @@ class="w-10 h-auto object-contain"
7777
</div>
7878
</x-rapidez::summary>
7979

80-
<div v-if="cart.value.shipping_addresses[0]" class="flex w-full flex-col gap-x-1 bg px-5 py-4 rounded">
80+
<div v-if="cart.value.shipping_addresses?.[0]" class="flex w-full flex-col gap-x-1 bg px-5 py-4 rounded">
8181
<p class="font-lg mb-2 font-bold">
8282
<template v-if="cart.value.billing_address?.same_as_shipping">@lang('Shipping & billing address')</template>
8383
<template v-else>@lang('Shipping address')</template>
8484
</p>
8585
<ul>
86-
<li v-if="cart.value.shipping_addresses[0]?.company">@{{ cart.value.shipping_addresses[0]?.company }}</li>
87-
<li>@{{ cart.value.shipping_addresses[0]?.prefix }} @{{ cart.value.shipping_addresses[0]?.firstname }} @{{ cart.value.shipping_addresses[0]?.middlename }} @{{ cart.value.shipping_addresses[0]?.lastname }} @{{ cart.value.shipping_addresses[0]?.suffix }}</li>
88-
<li>@{{ cart.value.shipping_addresses[0]?.street[0] }} @{{ cart.value.shipping_addresses[0]?.street[1] }} @{{ cart.value.shipping_addresses[0]?.street[2] }}</li>
89-
<li>@{{ cart.value.shipping_addresses[0]?.postcode }} - @{{ cart.value.shipping_addresses[0]?.city }} - @{{ cart.value.shipping_addresses[0]?.country.label }}</li>
90-
<li v-if="cart.value.shipping_addresses[0]?.telephone">@{{ cart.value.shipping_addresses[0]?.telephone }}</li>
86+
<li v-if="cart.value.shipping_addresses[0].company">@{{ cart.value.shipping_addresses[0].company }}</li>
87+
<li>@{{ cart.value.shipping_addresses[0].prefix }} @{{ cart.value.shipping_addresses[0].firstname }} @{{ cart.value.shipping_addresses[0].middlename }} @{{ cart.value.shipping_addresses[0].lastname }} @{{ cart.value.shipping_addresses[0].suffix }}</li>
88+
<li>@{{ cart.value.shipping_addresses[0].street[0] }} @{{ cart.value.shipping_addresses[0].street[1] }} @{{ cart.value.shipping_addresses[0].street[2] }}</li>
89+
<li>@{{ cart.value.shipping_addresses[0].postcode }} - @{{ cart.value.shipping_addresses[0].city }} - @{{ cart.value.shipping_addresses[0].country.label }}</li>
90+
<li v-if="cart.value.shipping_addresses[0].telephone">@{{ cart.value.shipping_addresses[0].telephone }}</li>
9191
</ul>
9292
</div>
9393
<div v-if="cart.value.billing_address && !cart.value.billing_address?.same_as_shipping" class="mt-4 flex w-full flex-col gap-x-1 border p-3">

0 commit comments

Comments
 (0)