File tree Expand file tree Collapse file tree 2 files changed +11
-21
lines changed
components/Common/Partners Expand file tree Collapse file tree 2 files changed +11
-21
lines changed Original file line number Diff line number Diff 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} ;
Original file line number Diff line number Diff 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
2625export default providePartners ;
You can’t perform that action at this time.
0 commit comments