on master help sign in
handle non planet sponsor case
commitee01fbfdadd5d94bef9b7936568e1a1280c2bdce authorLiam Fitzgerald <liam@urizen.co> dateThu 13 Feb 2020, 13:09 (7 years ago) parentf6537ea
2 files changed+43−21
src/views/UrbitOS/ChangeSponsor.js+26−11 src/views/UrbitOS/Home.js+17−10
src/views/UrbitOS/ChangeSponsor.js+26−11
@@ -44,8 +44,10 @@ function useChangeSponsor() {
4444
4545function ChangeSponsor({ onDone }) {
4646 const { contracts } = useNetwork();
47+ const { pointCursor } = usePointCursor();
4748
4849 const _contracts = need.contracts(contracts);
50+ const point = need.point(pointCursor);
4951 const { construct, unconstruct, inputsLocked, bind } = useChangeSponsor();
5052
5153 const validateFormAsync = useCallback(
@@ -70,16 +72,18 @@ function ChangeSponsor({ onDone }) {
7072 [validateFormAsync]
7173 );
7274
73− const validate = useMemo(
74− () =>
75− composeValidator(
76− {
77− sponsor: buildPointValidator(2, [validateMinimumPatpByteLength(2)]),
78− },
79− validateForm
80− ),
81− [validateForm]
82− );
75+ const validate = useMemo(() => {
76+ const sponsorSize =
77+ azimuth.getPointSize(point) === azimuth.PointSize.Star ? 1 : 2;
78+ return composeValidator(
79+ {
80+ sponsor: buildPointValidator(sponsorSize, [
81+ validateMinimumPatpByteLength(sponsorSize),
82+ ]),
83+ },
84+ validateForm
85+ );
86+ }, [validateForm, point]);
8387
8488 const onValues = useCallback(
8589 ({ valid, values }) => {
@@ -141,13 +145,24 @@ function useCancelEscape() {
141145function CurrentEscape({ onDone }) {
142146 const { construct, bind } = useCancelEscape();
143147
148+ const { pointCursor } = usePointCursor();
149+ const { getDetails } = usePointCache();
150+
151+ const point = need.point(pointCursor);
152+
153+ const details = need.details(getDetails(point));
154+
155+ const newSponsor = useMemo(() => ob.patp(details.escapeRequestedTo), [
156+ details,
157+ ]);
158+
144159 useEffect(() => {
145160 construct();
146161 }, [construct]);
147162 return (
148163 <Grid>
149164 <Grid.Item full as={ViewHeader}>
150− Currently requesting <span className="mono">~dopzod</span> as a new
165+ Currently requesting <span className="mono">{newSponsor}</span> as a new
151166 sponsor
152167 </Grid.Item>
153168 <Grid.Item
src/views/UrbitOS/Home.js+17−10
@@ -1,6 +1,7 @@
11import React, { useCallback, useState } from 'react';
22import { Grid, Button, SelectInput } from 'indigo-react';
33import * as ob from 'urbit-ob';
4+import { azimuth } from 'azimuth-js';
45
56import { usePointCursor } from 'store/pointCursor';
67import { usePointCache } from 'store/pointCache';
@@ -34,6 +35,8 @@ export default function UrbitOSHome() {
3435 const { code, notice } = useKeyfileGenerator();
3536
3637 const [showKeys, setShowKeys] = useState(false);
38+
39+ const showSponsor = azimuth.getPointSize(point) !== azimuth.PointSize.Galaxy;
3740 const toggleShowKeys = useCallback(() => setShowKeys(!showKeys), [
3841 setShowKeys,
3942 showKeys,
@@ -63,16 +66,20 @@ export default function UrbitOSHome() {
6366 Network
6467 </Grid.Item>
6568 <Grid.Divider />
66− <Grid.Item
67− full
68− as={ForwardButton}
69− detail="A sponsor finds new peers in your network"
70− accessory={<u>Change</u>}
71− onClick={goChangeSponsor}>
72− <span className="mono">{sponsor}</span>
73− <span className="f7 bg-black white p1 ml2 r4">SPONSOR</span>
74− </Grid.Item>
75− <Grid.Divider />
69+ {showSponsor && (
70+ <>
71+ <Grid.Item
72+ full
73+ as={ForwardButton}
74+ detail="A sponsor finds new peers in your network"
75+ accessory={<u>Change</u>}
76+ onClick={goChangeSponsor}>
77+ <span className="mono">{sponsor}</span>
78+ <span className="f7 bg-black white p1 ml2 r4">SPONSOR</span>
79+ </Grid.Item>
80+ <Grid.Divider />
81+ </>
82+ )}
7683 <Grid.Item
7784 full
7885 as={ForwardButton}