-
Notifications
You must be signed in to change notification settings - Fork 6.5k
Expand file tree
/
Copy pathDownloadLink.tsx
More file actions
30 lines (23 loc) · 896 Bytes
/
DownloadLink.tsx
File metadata and controls
30 lines (23 loc) · 896 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import type { FC, PropsWithChildren } from 'react';
import { getClientContext } from '#site/client-context';
import LinkWithArrow from '#site/components/Common/LinkWithArrow';
import type { DownloadKind, NodeRelease } from '#site/types';
import { getNodeDownloadUrl } from '#site/util/url';
import { getUserPlatform } from '#site/util/userAgent';
type DownloadLinkProps = { release: NodeRelease; kind?: DownloadKind };
const DownloadLink: FC<PropsWithChildren<DownloadLinkProps>> = ({
release: { versionWithPrefix },
kind = 'installer',
children,
}) => {
const { os, bitness, architecture } = getClientContext();
const platform = getUserPlatform(architecture, bitness);
const downloadLink = getNodeDownloadUrl({
versionWithPrefix,
os,
platform,
kind,
});
return <LinkWithArrow href={downloadLink}>{children}</LinkWithArrow>;
};
export default DownloadLink;