on master help sign in
ux: link to new Port for Windows
ae01be4tomholford
src/views/Activate/DownloadPortButton.tsxnew file+30
@@ -0,0 +1,30 @@
1+import { useMemo } from 'react';
2+import { isMacOs, isWindows } from 'react-device-detect';
3+import ActivateButton from './ActivateButton';
4+
5+export const DownloadPortButton = ({ error }) => {
6+ const downloadButtonLabel = useMemo(() => {
7+ return isMacOs
8+ ? 'Download the Client for Mac'
9+ : isWindows
10+ ? 'Download the Client for Windows'
11+ : 'Download the Client for Your OS';
12+ }, []);
13+
14+ const downloadUrl = useMemo(() => {
15+ return isMacOs
16+ ? `https://github.com/urbit/port/releases/latest/download/Port.dmg`
17+ : 'https://github.com/urbit/port/releases/latest';
18+ }, []);
19+
20+ return (
21+ <>
22+ <ActivateButton
23+ onClick={() => window.open(downloadUrl)}
24+ disabled={error}
25+ success={true}>
26+ {downloadButtonLabel}
27+ </ActivateButton>
28+ </>
29+ );
30+};
src/views/Activate/MasterKeyTransfer.tsx+6−28
@@ -7,13 +7,12 @@ import { useActivateFlow } from './ActivateFlow';
7import ActivateView from './ActivateView';
7import ActivateView from './ActivateView';
8import useRoller from 'lib/useRoller';
8import useRoller from 'lib/useRoller';
9import { FadeableActivateHeader as ActivateHeader } from './ActivateHeader';
9import { FadeableActivateHeader as ActivateHeader } from './ActivateHeader';
10−import { FadeableActivateButton as ActivateButton } from './ActivateButton';
11import useFadeIn from './useFadeIn';
10import useFadeIn from './useFadeIn';
12import PointPresenter from './PointPresenter';
11import PointPresenter from './PointPresenter';
13import DangerBox from './DangerBox';
12import DangerBox from './DangerBox';
14import View from 'components/View';
13import View from 'components/View';
15
14
16−import { isMacOs, isWindows } from 'react-device-detect';
15+import { DownloadPortButton } from './DownloadPortButton';
17
16
18const MasterKeyTransfer = () => {
17const MasterKeyTransfer = () => {
19 const { performL2Reticket } = useRoller();
18 const { performL2Reticket } = useRoller();
@@ -36,9 +35,9 @@ const MasterKeyTransfer = () => {
36 toWallet: derivedWallet.value,
35 toWallet: derivedWallet.value,
37 fromWallet: inviteWallet.value,
36 fromWallet: inviteWallet.value,
38 });
37 });
39− } catch (error) {
38+ } catch (e) {
40− console.error(error);
39+ console.error(e);
41− setError(error);
40+ setError(e);
42 }
41 }
43 }, [
42 }, [
44 derivedWallet,
43 derivedWallet,
@@ -47,22 +46,6 @@ const MasterKeyTransfer = () => {
47 inviteWallet.value,
46 inviteWallet.value,
48 ]);
47 ]);
49
48
50− const downloadButtonLabel = useMemo(() => {
51− return isMacOs
52− ? 'Download the Client for Mac'
53− : isWindows
54− ? 'Download the Client for Windows'
55− : 'Download the Client for Your OS';
56− }, []);
57−
58− const downloadUrl = useMemo(() => {
59− return isMacOs
60− ? `https://github.com/urbit/port/releases/latest/download/Port.dmg`
61− : isWindows
62− ? 'https://github.com/urbit/urbit/releases/download/latest/windows.tgz'
63− : 'https://github.com/urbit/port/releases/download/latest';
64− }, []);
65−
66 useFadeIn();
49 useFadeIn();
67
50
68 useLifecycle(() => {
51 useLifecycle(() => {
@@ -112,12 +95,7 @@ const MasterKeyTransfer = () => {
112 flexWrap={'nowrap'}
95 flexWrap={'nowrap'}
113 justifyContent={'space-between'}>
96 justifyContent={'space-between'}>
114 {error && <DangerBox>{error.toString()}</DangerBox>}
97 {error && <DangerBox>{error.toString()}</DangerBox>}
115− <ActivateButton
98+ <DownloadPortButton error={error} />
116− onClick={() => window.open(downloadUrl)}
117− disabled={error}
118− success={true}>
119− {downloadButtonLabel}
120− </ActivateButton>
121 <Anchor
99 <Anchor
122 href="https://urbit.org/getting-started/cli"
100 href="https://urbit.org/getting-started/cli"
123 marginTop={'20px'}
101 marginTop={'20px'}
@@ -134,7 +112,7 @@ const MasterKeyTransfer = () => {
134 </Anchor>
112 </Anchor>
135 </Box>
113 </Box>
136 );
114 );
137− }, [downloadButtonLabel, downloadUrl, error]);
115+ }, [error]);
138
116
139 return (
117 return (
140 <View centered={true}>
118 <View centered={true}>