on master help sign in
ux: detect user's device OS for Port download link
commitc6f53ef832f6b473c4c0352f1442ae9272590f82 authortomholford <tomholford@users.noreply.github.com> dateTue 5 Oct 2021, 21:48 (5 years ago) parent51e0c25
3 files changed+31−9
package-lock.json+9−2 package.json+1 src/views/Activate/MasterKeyTransfer.tsx+21−7
package-lock.json+9−2
@@ -27837,6 +27837,14 @@
2783727837 }
2783827838 }
2783927839 },
27840+ "react-device-detect": {
27841+ "version": "2.0.1",
27842+ "resolved": "https://registry.npmjs.org/react-device-detect/-/react-device-detect-2.0.1.tgz",
27843+ "integrity": "sha512-DrDKiKky/L/DSEJUw5CL2I38s/18zCLIoKP4pE4CyO1FyL6XhQZMIjHmv0pbYQBlfdKB+ZUXP53tWeLkt0eqJw==",
27844+ "requires": {
27845+ "ua-parser-js": "^0.7.28"
27846+ }
27847+ },
2784027848 "react-dom": {
2784127849 "version": "17.0.2",
2784227850 "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
@@ -32445,8 +32453,7 @@
3244532453 "ua-parser-js": {
3244632454 "version": "0.7.28",
3244732455 "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz",
32448− "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==",
32449− "optional": true
32456+ "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g=="
3245032457 },
3245132458 "uint8arrays": {
3245232459 "version": "1.1.0",
package.json+1
@@ -65,6 +65,7 @@
6565 "new-github-issue-url": "^0.2.1",
6666 "prop-types": "^15.6.2",
6767 "react": "^17.0.2",
68+ "react-device-detect": "^2.0.1",
6869 "react-dom": "^17.0.2",
6970 "react-final-form": "^6.3.0",
7071 "react-final-form-arrays": "^3.1.0",
src/views/Activate/MasterKeyTransfer.tsx+21−7
@@ -13,6 +13,8 @@ import PointPresenter from './PointPresenter';
1313import DangerBox from './DangerBox';
1414import View from 'components/View';
1515
16+import { isMacOs, isWindows } from 'react-device-detect';
17+
1618const MasterKeyTransfer = () => {
1719 const { performL2Reticket } = useRoller();
1820 const {
@@ -45,6 +47,22 @@ const MasterKeyTransfer = () => {
4547 inviteWallet.value,
4648 ]);
4749
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+
4866 useFadeIn();
4967
5068 useLifecycle(() => {
@@ -95,14 +113,10 @@ const MasterKeyTransfer = () => {
95113 justifyContent={'space-between'}>
96114 {error && <DangerBox>{error.toString()}</DangerBox>}
97115 <ActivateButton
98− onClick={() =>
99− window.open(
100− 'https://github.com/urbit/port/releases/latest/download/Port.dmg'
101− )
102− }
116+ onClick={() => window.open(downloadUrl)}
103117 disabled={error}
104118 success={true}>
105− Download the Client for Mac
119+ {downloadButtonLabel}
106120 </ActivateButton>
107121 <Anchor
108122 href="https://urbit.org/getting-started/cli"
@@ -120,7 +134,7 @@ const MasterKeyTransfer = () => {
120134 </Anchor>
121135 </Box>
122136 );
123− }, [error]);
137+ }, [downloadButtonLabel, downloadUrl, error]);
124138
125139 return (
126140 <View centered={true}>