Skip to content

Commit 692e8a2

Browse files
Update apps/site/components/Common/Partners/index.tsx
Co-authored-by: Aviv Keller <me@aviv.sh> Signed-off-by: Sebastian Beltran <bjohansebas@gmail.com>
1 parent 113acc4 commit 692e8a2

File tree

2 files changed

+11
-21
lines changed

2 files changed

+11
-21
lines changed

apps/site/components/Common/Partners/index.tsx

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,11 @@ const getPartners = async (
2525
category?: PartnerCategory,
2626
sort?: 'name' | 'weight'
2727
) => {
28-
let result: Array<Partner>;
29-
30-
if (sort === 'name') {
31-
// For name sorting, just filter and sort directly - no need for weighted shuffling
32-
const filtered = category
33-
? partners.filter(p => p.categories.includes(category))
34-
: partners;
35-
result = filtered.toSorted((a, b) => a.name.localeCompare(b.name));
36-
} else {
37-
// For weight sorting, use cached weighted partners
38-
const seconds = 300; // Change every 5 minutes
39-
const seed = Math.floor(Date.now() / (seconds * 1000));
40-
result = await providePartners(seed, category);
41-
}
28+
let result = sort === 'name' ? partners : await providePartners();
29+
30+
result = category
31+
? result.filter(p => p.categories.includes(category))
32+
: result;
4233

4334
return length ? result.slice(0, length) : result;
4435
};

apps/site/next-data/generators/partners.mjs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ import { shuffle } from '#site/util/array';
44
/**
55
* Provides the weighted and shuffled partners array.
66
* Results are cached using React's cache directive.
7-
* @param seed - The seed for deterministic shuffling
8-
* @param category - Optional category to filter partners
97
*/
10-
const providePartners = async (seed, category) => {
8+
const providePartners = async () => {
9+
// For weight sorting, use cached weighted partners
10+
const seconds = 300; // Change every 5 minutes
11+
const seed = Math.floor(Date.now() / (seconds * 1000));
12+
1113
// Create weighted array (duplicates based on weight)
1214
const weightedPartners = partners.flatMap(partner => {
1315
const weight = partner.weight ?? 0;
@@ -16,11 +18,8 @@ const providePartners = async (seed, category) => {
1618

1719
// Shuffle and remove duplicates
1820
const shuffled = await shuffle(weightedPartners, seed);
19-
const unique = Array.from(new Set(shuffled));
2021

21-
return category
22-
? unique.filter(p => p.categories.includes(category))
23-
: unique;
22+
return Array.from(new Set(shuffled));
2423
};
2524

2625
export default providePartners;

0 commit comments

Comments
 (0)