File tree Expand file tree Collapse file tree 1 file changed +12
-6
lines changed
apps/site/components/Common/Partners Expand file tree Collapse file tree 1 file changed +12
-6
lines changed Original file line number Diff line number Diff line change @@ -27,20 +27,26 @@ function randomPartnerList(
2727 const seed = fixedTime . getTime ( ) ;
2828 const rng = mulberry32 ( seed ) ;
2929
30+ const weightedPartners = partners . flatMap ( partner => {
31+ if ( category && ! partner . categories . includes ( category ) ) return [ ] ;
32+ const weight = partner . weight ;
33+ return Array ( weight ) . fill ( partner ) ;
34+ } ) ;
35+
3036 // Create a copy of the array to avoid modifying the original
31- let shuffled = [ ...partners ]
32- . filter ( partner => ! category || partner . categories . includes ( category ) )
33- . sort ( ( ) => rng ( ) - 0.5 ) ;
37+ const shuffled = [ ...weightedPartners ] . sort ( ( ) => rng ( ) - 0.5 ) ;
38+
39+ // Remove duplicates while preserving order
40+ const unique = Array . from ( new Set ( shuffled ) ) ;
3441
3542 if ( pick !== null ) {
36- shuffled = shuffled . slice ( 0 , pick ) ;
43+ return unique . slice ( 0 , pick ) ;
3744 }
3845
39- return shuffled ;
46+ return unique ;
4047}
4148
4249// This function returns a random list of partners based on a fixed time seed
43-
4450function mulberry32 ( seed : number ) {
4551 return function ( ) {
4652 let t = ( seed += 0x6d2b79f5 ) ;
You can’t perform that action at this time.
0 commit comments