File tree Expand file tree Collapse file tree 1 file changed +27
-5
lines changed Expand file tree Collapse file tree 1 file changed +27
-5
lines changed Original file line number Diff line number Diff line change @@ -3,12 +3,34 @@ import { getCollection } from "astro:content";
33export const products = await getCollection ( "products" ) ;
44
55export const productsByGroup = Object . entries (
6- Object . groupBy (
7- products . filter ( ( product ) => Boolean ( product . data . product . group ) ) ,
8- ( product ) => product . data . product . group ,
9- ) ,
6+ products
7+ . filter ( ( product ) => Boolean ( product . data . product . group ) )
8+ . reduce (
9+ ( groups , product ) => {
10+ const primaryGroup = product . data . product . group ;
11+ const additionalGroups = product . data . product . additional_groups ?? [ ] ;
12+ const allGroups = [ primaryGroup , ...additionalGroups ] ;
13+
14+ for ( const group of allGroups ) {
15+ if ( ! groups [ group ] ) {
16+ groups [ group ] = [ ] ;
17+ }
18+ groups [ group ] . push ( product ) ;
19+ }
20+
21+ return groups ;
22+ } ,
23+ { } as Record < string , typeof products > ,
24+ ) ,
1025) ;
1126
1227export const groups = [
13- ...new Set ( products . flatMap ( ( product ) => product . data . product . group ?? [ ] ) ) ,
28+ ...new Set (
29+ products . flatMap ( ( product ) =>
30+ [
31+ product . data . product . group ,
32+ ...( product . data . product . additional_groups ?? [ ] ) ,
33+ ] . filter ( Boolean ) ,
34+ ) ,
35+ ) ,
1436] . sort ( ) ;
You can’t perform that action at this time.
0 commit comments