-
Notifications
You must be signed in to change notification settings - Fork 6.5k
Expand file tree
/
Copy pathDownloadLink.tsx
More file actions
32 lines (24 loc) · 899 Bytes
/
DownloadLink.tsx
File metadata and controls
32 lines (24 loc) · 899 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
31
32
'use client';
import type { FC, PropsWithChildren } from 'react';
import LinkWithArrow from '#site/components/Common/LinkWithArrow';
import { useClientContext } from '#site/hooks';
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 } = useClientContext();
const platform = getUserPlatform(architecture, bitness);
const downloadLink = getNodeDownloadUrl(
versionWithPrefix,
os,
platform,
kind
);
return <LinkWithArrow href={downloadLink}>{children}</LinkWithArrow>;
};
export default DownloadLink;