Skip to content

Commit 359f6fd

Browse files
authored
add section on download page
1 parent ed3f839 commit 359f6fd

File tree

5 files changed

+27
-8
lines changed

5 files changed

+27
-8
lines changed

apps/site/components/Common/Partners/PartnersIconList/index.module.css

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,5 @@
55
flex-row
66
flex-wrap
77
items-center
8-
justify-center
98
gap-4;
109
}

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

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,21 @@
33
import { useEffect, useRef, useState, type FC } from 'react';
44

55
import PARTNERS from '#site/next.partners.constants';
6-
import type { Partners } from '#site/types';
6+
import type { PartnerCategory, Partners } from '#site/types';
77

88
import PartnerIcon from '../PartnerIcon';
99
import style from './index.module.css';
1010
import { randomPartnerList } from '../utils';
1111

1212
type PartnersIconListProps = {
1313
maxLength?: number;
14+
categories?: PartnerCategory;
1415
};
1516

16-
const PartnersIconList: FC<PartnersIconListProps> = ({ maxLength = 4 }) => {
17+
const PartnersIconList: FC<PartnersIconListProps> = ({
18+
maxLength = 4,
19+
categories,
20+
}) => {
1721
const initialRenderer = useRef(true);
1822

1923
const [seedList, setSeedList] = useState<Array<Partners>>(
@@ -33,7 +37,7 @@ const PartnersIconList: FC<PartnersIconListProps> = ({ maxLength = 4 }) => {
3337
const renderSponsorsAnimation = setTimeout(() => {
3438
initialRenderer.current = false;
3539

36-
setSeedList(randomPartnerList(PARTNERS, maxLength));
40+
setSeedList(randomPartnerList(PARTNERS, maxLength, 5, categories));
3741
}, 0);
3842

3943
return () => clearTimeout(renderSponsorsAnimation);

apps/site/components/Common/Partners/utils.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
1-
import type { Partners } from '#site/types/partners.js';
2-
3-
function randomPartnerList(partners: Array<Partners>, pick = 4, dateSeed = 5) {
1+
import type { PartnerCategory, Partners } from '#site/types/partners.js';
2+
3+
function randomPartnerList(
4+
partners: Array<Partners>,
5+
pick = 4,
6+
dateSeed = 5,
7+
category?: PartnerCategory
8+
) {
49
const now = new Date();
510
const minutes = Math.floor(now.getUTCMinutes() / dateSeed) * dateSeed;
611

@@ -21,7 +26,10 @@ function randomPartnerList(partners: Array<Partners>, pick = 4, dateSeed = 5) {
2126
const rng = mulberry32(seed);
2227

2328
// Create a copy of the array to avoid modifying the original
24-
const shuffled = partners.slice().sort(() => rng() - 0.5);
29+
const shuffled = partners
30+
.filter(partner => !category || partner.categories.includes(category))
31+
.slice()
32+
.sort(() => rng() - 0.5);
2533

2634
return shuffled.slice(0, pick);
2735
}

apps/site/pages/en/download/current.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,7 @@ all <LinkWithArrow href="https://nodejs.org/download/release/">previous releases
3434
or the <LinkWithArrow href="https://unofficial-builds.nodejs.org/download/">unofficial</LinkWithArrow> binaries for other platforms.
3535

3636
</section>
37+
38+
We are able to serve Node.js downloads thank to our <Link href="/about/partners">partners</Link>.
39+
40+
<PartnersIconList maxLength={6} />

apps/site/pages/en/download/index.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,7 @@ all <LinkWithArrow href="https://nodejs.org/download/release/">previous releases
3434
or the <LinkWithArrow href="https://unofficial-builds.nodejs.org/download/">unofficial</LinkWithArrow> binaries for other platforms.
3535

3636
</section>
37+
38+
We are able to serve Node.js downloads thank to our <Link href="/about/partners">partners</Link>.
39+
40+
<PartnersIconList maxLength={6} />

0 commit comments

Comments
 (0)