File tree Expand file tree Collapse file tree 1 file changed +22
-5
lines changed Expand file tree Collapse file tree 1 file changed +22
-5
lines changed Original file line number Diff line number Diff line change @@ -3,12 +3,29 @@ 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 ( ( groups , product ) => {
9+ const primaryGroup = product . data . product . group ;
10+ const additionalGroups = product . data . product . additional_groups ?? [ ] ;
11+ const allGroups = [ primaryGroup , ...additionalGroups ] ;
12+
13+ for ( const group of allGroups ) {
14+ if ( ! groups [ group ] ) {
15+ groups [ group ] = [ ] ;
16+ }
17+ groups [ group ] . push ( product ) ;
18+ }
19+
20+ return groups ;
21+ } , { } as Record < string , typeof products > ) ,
1022) ;
1123
1224export const groups = [
13- ...new Set ( products . flatMap ( ( product ) => product . data . product . group ?? [ ] ) ) ,
25+ ...new Set (
26+ products . flatMap ( ( product ) => [
27+ product . data . product . group ,
28+ ...( product . data . product . additional_groups ?? [ ] ) ,
29+ ] . filter ( Boolean ) ) ,
30+ ) ,
1431] . sort ( ) ;
You can’t perform that action at this time.
0 commit comments