Skip to content

Commit 4eb194b

Browse files
authored
[Docs Site] Consider additional_groups in products.ts (#21763)
* [Docs Site] Consider additional_groups in products.ts * formatting
1 parent f8dbdc2 commit 4eb194b

File tree

1 file changed

+27
-5
lines changed

1 file changed

+27
-5
lines changed

src/util/products.ts

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,34 @@ import { getCollection } from "astro:content";
33
export const products = await getCollection("products");
44

55
export 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

1227
export 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();

0 commit comments

Comments
 (0)