on master help sign in
clear linter errors
59f91ddLiam Fitzgerald
src/components/InlineEthereumTransaction.js+1−1
@@ -10,7 +10,7 @@ import {
10 Text,
10 Text,
11} from 'indigo-react';
11} from 'indigo-react';
12
12
13−import { useExploreTxUrl, useExploreTxUrls } from 'lib/explorer';
13+import { useExploreTxUrls } from 'lib/explorer';
14import { hexify } from 'lib/txn';
14import { hexify } from 'lib/txn';
15import pluralize from 'lib/pluralize';
15import pluralize from 'lib/pluralize';
16
16
src/form/EmailChipInput.js+1−2
@@ -35,13 +35,12 @@ const EmailChipInput = ({ className, name, label, disabled }) => {
35
35
36 const {
36 const {
37 input,
37 input,
38− meta: { active, error, dirtySinceLastSubmit },
38+ meta: { active, error },
39 } = useField(name, {
39 } = useField(name, {
40 subscription: {
40 subscription: {
41 active: true,
41 active: true,
42 error: true,
42 error: true,
43 value: true,
43 value: true,
44− dirtySinceLastSubmit: true,
45 },
44 },
46 isEqual,
45 isEqual,
47 });
46 });
src/views/Invite/Cohort.js+5−24
@@ -32,7 +32,6 @@ import {
32import { MIN_PLANET, GAS_LIMITS } from 'lib/constants';
32import { MIN_PLANET, GAS_LIMITS } from 'lib/constants';
33import pluralize from 'lib/pluralize';
33import pluralize from 'lib/pluralize';
34import useGasPrice from 'lib/useGasPrice';
34import useGasPrice from 'lib/useGasPrice';
35−import useSetState from 'lib/useSetState';
36
35
37import EmailChipInput from 'form/EmailChipInput';
36import EmailChipInput from 'form/EmailChipInput';
38import FormError from 'form/FormError';
37import FormError from 'form/FormError';
@@ -43,7 +42,7 @@ import {
43 composeValidator,
42 composeValidator,
44 hasErrors,
43 hasErrors,
45} from 'form/validators';
44} from 'form/validators';
46−import { WARNING, onlyHasWarning } from 'form/helpers';
45+import { WARNING } from 'form/helpers';
47
46
48const GAS_LIMIT = GAS_LIMITS.GIFT_PLANET;
47const GAS_LIMIT = GAS_LIMITS.GIFT_PLANET;
49
48
@@ -54,8 +53,6 @@ const STATUS = {
54 FAILURE: 'FAILURE',
53 FAILURE: 'FAILURE',
55};
54};
56
55
57−const nameForEmailField = i => `emails[${i}]`;
58−
59const useInviter = sendInvites => {
56const useInviter = sendInvites => {
60 const { contracts, web3, networkType } = useNetwork();
57 const { contracts, web3, networkType } = useNetwork();
61 const { wallet, walletType, walletHdPath } = useWallet();
58 const { wallet, walletType, walletHdPath } = useWallet();
@@ -69,7 +66,7 @@ const useInviter = sendInvites => {
69
66
70 const [progress, setProgress] = useState(0);
67 const [progress, setProgress] = useState(0);
71 const [txStatus, setTxStatus] = useState(STATUS.INPUT);
68 const [txStatus, setTxStatus] = useState(STATUS.INPUT);
72− const [errors, addError] = useSetState();
69+ // const [errors, addError] = useSetState();
73
70
74 const isDone = txStatus === STATUS.SUCCESS;
71 const isDone = txStatus === STATUS.SUCCESS;
75 useEffect(() => {
72 useEffect(() => {
@@ -119,13 +116,10 @@ const useInviter = sendInvites => {
119 };
116 };
120 }
117 }
121
118
122− console.log('b');
123 // NB(shrugs) - must be processed in serial because main thread, etc
119 // NB(shrugs) - must be processed in serial because main thread, etc
124 let signedInvites = [];
120 let signedInvites = [];
125 let errorCount = 0;
121 let errorCount = 0;
126 for (let i = 0; i < numInvites; i++) {
122 for (let i = 0; i < numInvites; i++) {
127− console.log(`c: ${i}`);
128− const name = nameForEmailField(i);
129 setProgress(x => x + 1);
123 setProgress(x => x + 1);
130 try {
124 try {
131 const planet = planets[i];
125 const planet = planets[i];
@@ -257,17 +251,13 @@ const InviteMail = () => {
257 const [count, setCount] = useState(0);
251 const [count, setCount] = useState(0);
258 const canInput = status === STATUS.INPUT;
252 const canInput = status === STATUS.INPUT;
259 const isSending = txStatus === STATUS.SENDING || status === STATUS.SENDING;
253 const isSending = txStatus === STATUS.SENDING || status === STATUS.SENDING;
260− const isFailed = status === STATUS.FAILURE || txStatus === STATUS.FAILURE;
261 const isDone = status === STATUS.SUCCESS;
254 const isDone = status === STATUS.SUCCESS;
262 const onSubmit = useCallback(
255 const onSubmit = useCallback(
263 async values => {
256 async values => {
264− console.log('GENERATING');
265 const emailCount = values.emails.length;
257 const emailCount = values.emails.length;
266− console.log(values);
267 setCount(emailCount);
258 setCount(emailCount);
268 setStatus(STATUS.SENDING);
259 setStatus(STATUS.SENDING);
269 const errors = await generateInvites(emailCount);
260 const errors = await generateInvites(emailCount);
270− console.log(errors);
271 if (errors) {
261 if (errors) {
272 setStatus(STATUS.FAILED);
262 setStatus(STATUS.FAILED);
273 return errors;
263 return errors;
@@ -279,8 +269,6 @@ const InviteMail = () => {
279 useEffect(() => {
269 useEffect(() => {
280 async function processInvites() {
270 async function processInvites() {
281 if (invites.length !== 0 && txStatus === STATUS.SUCCESS) {
271 if (invites.length !== 0 && txStatus === STATUS.SUCCESS) {
282− console.log(JSON.stringify(invites));
283− console.log('a');
284 await timeout(500);
272 await timeout(500);
285
273
286 resetInvites();
274 resetInvites();
@@ -366,14 +354,7 @@ const InviteMail = () => {
366};
354};
367
355
368const InviteUrl = () => {
356const InviteUrl = () => {
369− const {
370− txStatus,
371− errors,
372− needFunds,
373− invites,
374− generateInvites,
357+ const { txStatus, needFunds, invites, generateInvites } = useInviter();
375− resetInvites,
376− } = useInviter();
377
358
378 const [error, setError] = useState();
359 const [error, setError] = useState();
379
360
@@ -417,9 +398,9 @@ const InviteUrl = () => {
417 Generating Invite URL
398 Generating Invite URL
418 </Grid.Item>
399 </Grid.Item>
419 );
400 );
401+ default:
402+ return null;
420 }
403 }
421−
422− return null;
423 };
404 };
424
405
425 const url = `https://bridge.urbit.org/#${get(invites, '[0].ticket', '')}`;
406 const url = `https://bridge.urbit.org/#${get(invites, '[0].ticket', '')}`;
src/views/Invite/InviteEmail.js+2−2
@@ -66,7 +66,7 @@ import timeout from 'lib/timeout';
66const INITIAL_VALUES = { emails: [''] };
66const INITIAL_VALUES = { emails: [''] };
67
67
68const GAS_LIMIT = GAS_LIMITS.GIFT_PLANET;
68const GAS_LIMIT = GAS_LIMITS.GIFT_PLANET;
69−const HAS_RECEIVED_TEXT = 'This email has already received an invite.';
69+// const HAS_RECEIVED_TEXT = 'This email has already received an invite.';
70
70
71const STATUS = {
71const STATUS = {
72 INPUT: 'INPUT',
72 INPUT: 'INPUT',
@@ -110,7 +110,7 @@ export default function InviteEmail() {
110 const { syncInvites, getInvites } = usePointCache();
110 const { syncInvites, getInvites } = usePointCache();
111 const { pointCursor } = usePointCursor();
111 const { pointCursor } = usePointCursor();
112 const point = need.point(pointCursor);
112 const point = need.point(pointCursor);
113− const { getHasReceived, sendMail } = useMailer();
113+ const { sendMail } = useMailer();
114 const { gasPrice } = useGasPrice();
114 const { gasPrice } = useGasPrice();
115
115
116 const cachedEmails = useRef({});
116 const cachedEmails = useRef({});
src/views/Party/ShowParty.js+9−6
@@ -1,5 +1,5 @@
1import React, { useMemo, useEffect, useCallback, useState } from 'react';
1import React, { useMemo, useEffect, useCallback, useState } from 'react';
2−import { Grid, Flex, Input } from 'indigo-react';
2+import { Grid, Flex } from 'indigo-react';
3import * as ob from 'urbit-ob';
3import * as ob from 'urbit-ob';
4import { Just } from 'folktale/maybe';
4import { Just } from 'folktale/maybe';
5import cn from 'classnames';
5import cn from 'classnames';
@@ -53,10 +53,13 @@ function PartyList({ points, className }) {
53 points.map(syncInvites);
53 points.map(syncInvites);
54 }, [points, syncInvites]);
54 }, [points, syncInvites]);
55
55
56− const handleChange = useCallback(e => {
56+ const handleChange = useCallback(
57+ e => {
57− setQuery(e.target.value);
58+ setQuery(e.target.value);
58− e.preventDefault();
59+ e.preventDefault();
60+ },
61+ [setQuery]
59− });
62+ );
60
63
61 const visiblePoints = useMemo(
64 const visiblePoints = useMemo(
62 () =>
65 () =>
@@ -92,7 +95,7 @@ function PartyList({ points, className }) {
92}
95}
93
96
94export default function ShowParty() {
97export default function ShowParty() {
95− const { pop, push, names } = useLocalRouter();
98+ const { pop } = useLocalRouter();
96
99
97 const { pointCursor } = usePointCursor();
100 const { pointCursor } = usePointCursor();
98 const point = need.point(pointCursor);
101 const point = need.point(pointCursor);
src/views/Point.js+1−2
@@ -1,5 +1,5 @@
1import React, { useCallback, useState } from 'react';
1import React, { useCallback, useState } from 'react';
2−import { Just, Nothing } from 'folktale/maybe';
2+import { Just } from 'folktale/maybe';
3import { Grid, Flex } from 'indigo-react';
3import { Grid, Flex } from 'indigo-react';
4import { azimuth } from 'azimuth-js';
4import { azimuth } from 'azimuth-js';
5
5
@@ -15,7 +15,6 @@ import { matchBlinky } from 'components/Blinky';
15import DownloadSigilButton from 'components/DownloadSigilButton';
15import DownloadSigilButton from 'components/DownloadSigilButton';
16import BarGraph from 'components/BarGraph';
16import BarGraph from 'components/BarGraph';
17import Chip from 'components/Chip';
17import Chip from 'components/Chip';
18−import MaybeSigil from 'components/MaybeSigil';
19import InviteSigilList from 'components/InviteSigilList';
18import InviteSigilList from 'components/InviteSigilList';
20
19
21import * as need from 'lib/need';
20import * as need from 'lib/need';
src/views/Points.js+1−1
@@ -1,6 +1,6 @@
1import React, { useCallback, useEffect, useMemo } from 'react';
1import React, { useCallback, useEffect, useMemo } from 'react';
2import { Just, Nothing } from 'folktale/maybe';
2import { Just, Nothing } from 'folktale/maybe';
3−import { Grid, H5, H1, HelpText, LinkButton, Flex } from 'indigo-react';
3+import { Grid, H5, HelpText, LinkButton, Flex } from 'indigo-react';
4import { get } from 'lodash';
4import { get } from 'lodash';
5
5
6import { useHistory } from 'store/history';
6import { useHistory } from 'store/history';