Skip to content

Commit 44ac539

Browse files
authored
Recently viewed widget sorting (#1014)
1 parent 83a5f0b commit 44ac539

File tree

5 files changed

+12
-3
lines changed

5 files changed

+12
-3
lines changed

resources/js/components/Listing/Listing.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ export default {
3333
type: Boolean,
3434
default: false,
3535
},
36+
transformItems: {
37+
type: Function,
38+
default: (items) => items,
39+
},
3640
},
3741
3842
data: () => ({

resources/js/components/RecentlyViewed.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ export default {
3737
this.storage.products = this.storage.products.slice(-this.max)
3838
}
3939
},
40+
41+
sort(items) {
42+
return items.sort((a, b) => this.products.indexOf(b.entity_id) - this.products.indexOf(a.entity_id))
43+
},
4044
},
4145
4246
computed: {

resources/views/components/productlist.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
@endif
3434
@endslotdefault
3535

36-
<ais-hits v-slot="{ items, sendEvent }">
36+
<ais-hits v-slot="{ items, sendEvent }" v-bind:transform-items="listingSlotProps.transformItems">
3737
<div v-if="items.length" class="flex flex-col gap-5">
3838
@if ($title)
3939
<strong class="font-bold text-2xl">

resources/views/listing/products.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<div class="pb-4 border-b">
1717
@include('rapidez::listing.partials.toolbar')
1818
</div>
19-
<ais-hits>
19+
<ais-hits :transform-items="listingSlotProps.transformItems">
2020
<template v-slot="{ items, sendEvent }">
2121
<div v-if="items && items.length" class="overflow-hidden">
2222
<div class="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 -mx-5 -mb-px *:border-b">
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
<recently-viewed :max="{{ $options->page_size ?? $max ?? Rapidez::config('catalog/recently_products/viewed_count') }}" v-slot="{ products }">
1+
<recently-viewed :max="{{ $options->page_size ?? $max ?? Rapidez::config('catalog/recently_products/viewed_count') }}" v-slot="{ products, sort }">
22
<x-rapidez::productlist
33
title="Recently viewed"
44
field="entity_id"
55
value="products"
6+
v-bind:transform-items="sort"
67
/>
78
</recently-viewed>

0 commit comments

Comments
 (0)