Skip to content

Commit fb63e68

Browse files
committed
[Docs Site] Consider additional_groups in products.ts
1 parent c3d34bc commit fb63e68

File tree

1 file changed

+22
-5
lines changed

1 file changed

+22
-5
lines changed

src/util/products.ts

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,29 @@ 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((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

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

0 commit comments

Comments
 (0)