on master help sign in
qol: resolve linter warnings
44433fbtomholford
package.json+2−2
@@ -111,8 +111,8 @@
111 "pilot-residents": "WITH_TEST_STATE=RESIDENTS npm run pilot",
111 "pilot-residents": "WITH_TEST_STATE=RESIDENTS npm run pilot",
112 "pilot-ropsten": "REACT_APP_ROPSTEN=true HTTPS=true npm-run-all start --continue-on-error",
112 "pilot-ropsten": "REACT_APP_ROPSTEN=true HTTPS=true npm-run-all start --continue-on-error",
113 "pilot:cleanup": "pkill -f ganache-cli",
113 "pilot:cleanup": "pkill -f ganache-cli",
114− "lint:check": "eslint 'src/**/*.js'",
114+ "lint:check": "eslint 'src/**/*.{js,jsx,ts,tsx}'",
115− "lint:fix": "eslint --fix 'src/**/*.js'",
115+ "lint:fix": "eslint --fix 'src/**/*.{js,jsx,ts,tsx}'",
116 "analyze": "source-map-explorer 'build/static/js/*.js'"
116 "analyze": "source-map-explorer 'build/static/js/*.js'"
117 },
117 },
118 "browserslist": {
118 "browserslist": {
src/components/InlineEthereumTransaction.js+1−1
@@ -24,7 +24,7 @@ import Condition from 'form/Condition';
24import { GenerateButton, ForwardButton, RestartButton } from './Buttons';
24import { GenerateButton, ForwardButton, RestartButton } from './Buttons';
25import CopyButton from './CopyButton';
25import CopyButton from './CopyButton';
26import ProgressButton from './ProgressButton';
26import ProgressButton from './ProgressButton';
27−import convertToInt from 'lib/convertToInt';
27+import { convertToInt } from 'lib/convertToInt';
28import NeedFundsNotice from './NeedFundsNotice';
28import NeedFundsNotice from './NeedFundsNotice';
29
29
30export default function InlineEthereumTransaction({
30export default function InlineEthereumTransaction({
src/components/MiniBackButton.js+1−1
@@ -2,7 +2,7 @@ import React from 'react';
2import cn from 'classnames';
2import cn from 'classnames';
3import { IconButton } from 'indigo-react';
3import { IconButton } from 'indigo-react';
4
4
5−export default ({ className, isExit = false, ...rest }) => {
5+export const MiniBackButton = ({ className, isExit = false, ...rest }) => {
6 return (
6 return (
7 <IconButton className={cn('black', className)} {...rest}>
7 <IconButton className={cn('black', className)} {...rest}>
8 {'<-'}
8 {'<-'}
src/components/View.js+1−1
@@ -4,7 +4,7 @@ import { Flex } from 'indigo-react';
4
4
5import Footer from './Footer';
5import Footer from './Footer';
6import useBreakpoints from 'lib/useBreakpoints';
6import useBreakpoints from 'lib/useBreakpoints';
7−import MiniBackButton from './MiniBackButton';
7+import { MiniBackButton } from './MiniBackButton';
8import { useHistory } from 'store/history';
8import { useHistory } from 'store/history';
9import NavHeader from './NavHeader';
9import NavHeader from './NavHeader';
10
10
src/form/formatters.js+1−1
@@ -1,5 +1,5 @@
1import { compose, strSplice } from 'lib/lib';
1import { compose, strSplice } from 'lib/lib';
2−import convertToInt from 'lib/convertToInt';
2+import { convertToInt } from 'lib/convertToInt';
3
3
4const HEX_PREFIX = '0x';
4const HEX_PREFIX = '0x';
5const TICKET_MAX_BYTE_LEN = 32; // tickets can be as large as 32 bytes
5const TICKET_MAX_BYTE_LEN = 32; // tickets can be as large as 32 bytes
src/form/validators.js+1−1
@@ -21,7 +21,7 @@ import {
21 validateUnique,
21 validateUnique,
22 validatePsbt,
22 validatePsbt,
23} from 'lib/validators';
23} from 'lib/validators';
24−import isPromise from 'lib/isPromise';
24+import { isPromise } from 'lib/isPromise';
25
25
26const PRIVATE_KEY_CHAR_LENGTH = 64; // 64 hex characters
26const PRIVATE_KEY_CHAR_LENGTH = 64; // 64 hex characters
27const ADDRESS_CHAR_LENGTH = 40; // 40 hex characters
27const ADDRESS_CHAR_LENGTH = 40; // 40 hex characters
src/indigo-react/components/IndigoApp.js+2−2
@@ -1,7 +1,7 @@
1import React from 'react';
1import React from 'react';
2import cn from 'classnames';
2import cn from 'classnames';
3
3
4−export default function({ debug = false, ...rest }) {
4+export const IndigoApp = function({ debug = false, ...rest }) {
5 return (
5 return (
6 <main
6 <main
7 className={cn('minh-100', { debug })}
7 className={cn('minh-100', { debug })}
@@ -9,4 +9,4 @@ export default function({ debug = false, ...rest }) {
9 {...rest}
9 {...rest}
10 />
10 />
11 );
11 );
12−}
12+};
src/indigo-react/index.js+1−1
@@ -1,4 +1,4 @@
1−export { default as IndigoApp } from './components/IndigoApp';
1+export { IndigoApp } from './components/IndigoApp';
2export { default as Grid } from './components/Grid';
2export { default as Grid } from './components/Grid';
3export { default as Flex } from './components/Flex';
3export { default as Flex } from './components/Flex';
4export { default as Input } from './components/Input';
4export { default as Input } from './components/Input';
src/lib/capitalize.js+1−1
@@ -1 +1 @@
1−export default str => str.charAt(0).toUpperCase() + str.slice(1);
1+export const capitalize = str => str.charAt(0).toUpperCase() + str.slice(1);
src/lib/convertToInt.js+1−1
@@ -8,7 +8,7 @@ import { isNaN } from 'lodash';
8 * @throws
8 * @throws
9 * @returns {number}
9 * @returns {number}
10 */
10 */
11−export default (num, radix) => {
11+export const convertToInt = (num, radix) => {
12 const res = parseInt(num, radix);
12 const res = parseInt(num, radix);
13 if (isNaN(res)) {
13 if (isNaN(res)) {
14 throw new Error('NaN');
14 throw new Error('NaN');
src/lib/isPromise.js+1−1
@@ -1,6 +1,6 @@
1// an object is a promise if it has a `.then` function
1// an object is a promise if it has a `.then` function
2// https://github.com/then/is-promise/blob/master/index.js
2// https://github.com/then/is-promise/blob/master/index.js
3−export default obj =>
3+export const isPromise = obj =>
4 !!obj &&
4 !!obj &&
5 (typeof obj === 'object' || typeof obj === 'function') &&
5 (typeof obj === 'object' || typeof obj === 'function') &&
6 typeof obj.then === 'function';
6 typeof obj.then === 'function';
src/lib/lib.js+1−1
@@ -1,5 +1,5 @@
1import ob from 'urbit-ob';
1import ob from 'urbit-ob';
2−import patp2dec from './patp2dec';
2+import { patp2dec } from './patp2dec';
3import { fromWei, toWei, toBN } from 'web3-utils';
3import { fromWei, toWei, toBN } from 'web3-utils';
4
4
5const safeFromWei = (num, target) => {
5const safeFromWei = (num, target) => {
src/lib/nest.js+1−1
@@ -1,7 +1,7 @@
1import { createFactory } from 'react';
1import { createFactory } from 'react';
2
2
3// inspired by recompose/nest
3// inspired by recompose/nest
4−export default (components = []) => ({ children, ...props }) =>
4+export const nest = (components = []) => ({ children, ...props }) =>
5 components
5 components
6 .map(createFactory)
6 .map(createFactory)
7 .reduceRight((child, factory) => factory(props, child), children);
7 .reduceRight((child, factory) => factory(props, child), children);
src/lib/patp2dec.js+2−2
@@ -1,6 +1,6 @@
1import ob from 'urbit-ob';
1import ob from 'urbit-ob';
2
2
3−import convertToInt from './convertToInt';
3+import { convertToInt } from './convertToInt';
4
4
5/**
5/**
6 * Convert a patp string into a number, or throw.
6 * Convert a patp string into a number, or throw.
@@ -8,4 +8,4 @@ import convertToInt from './convertToInt';
8 * @throws
8 * @throws
9 * @return number
9 * @return number
10 */
10 */
11−export default patp => convertToInt(ob.patp2dec(patp), 10);
11+export const patp2dec = patp => convertToInt(ob.patp2dec(patp), 10);
src/lib/pluralize.js+1−1
@@ -1,4 +1,4 @@
1−export default (count, singular, plural) => {
1+export const pluralize = (count, singular, plural) => {
2 const isPlural = count === 0 || count > 1;
2 const isPlural = count === 0 || count > 1;
3 if (!plural) {
3 if (!plural) {
4 return `${count} ${singular}${isPlural ? 's' : ''}`;
4 return `${count} ${singular}${isPlural ? 's' : ''}`;
src/lib/timeout.js+1−1
@@ -1 +1 @@
1−export default ms => new Promise(resolve => setTimeout(resolve, ms));
1+export const timeout = ms => new Promise(resolve => setTimeout(resolve, ms));
src/lib/trezor.ts+1−1
@@ -1,5 +1,5 @@
1import TrezorConnect from 'trezor-connect';
1import TrezorConnect from 'trezor-connect';
2−import convertToInt from './convertToInt';
2+import { convertToInt } from './convertToInt';
3
3
4const TREZOR_PATH = "m/44'/60'/0'/0/x";
4const TREZOR_PATH = "m/44'/60'/0'/0/x";
5
5
src/lib/txn.js+1−1
@@ -9,7 +9,7 @@ import { trezorSignTransaction } from './trezor';
9import { metamaskSignTransaction, FakeMetamaskTransaction } from './metamask';
9import { metamaskSignTransaction, FakeMetamaskTransaction } from './metamask';
10import { addHexPrefix } from './utils/address';
10import { addHexPrefix } from './utils/address';
11import { CHECK_BLOCK_EVERY_MS, WALLET_TYPES } from './constants';
11import { CHECK_BLOCK_EVERY_MS, WALLET_TYPES } from './constants';
12−import patp2dec from './patp2dec';
12+import { patp2dec } from './patp2dec';
13
13
14const RETRY_OPTIONS = {
14const RETRY_OPTIONS = {
15 retries: 99999,
15 retries: 99999,
src/lib/useEthereumTransaction.js+1−1
@@ -21,7 +21,7 @@ import * as need from 'lib/need';
21import { ensureFundsFor } from 'lib/tank';
21import { ensureFundsFor } from 'lib/tank';
22import useDeepEqualReference from 'lib/useDeepEqualReference';
22import useDeepEqualReference from 'lib/useDeepEqualReference';
23import useGasPrice from 'lib/useGasPrice';
23import useGasPrice from 'lib/useGasPrice';
24−import timeout from 'lib/timeout';
24+import { timeout } from 'lib/timeout';
25import { safeToWei, safeFromWei } from 'lib/lib';
25import { safeToWei, safeFromWei } from 'lib/lib';
26
26
27const STATE = {
27const STATE = {
src/lib/useInviter.js−2
@@ -6,7 +6,6 @@ import { FORM_ERROR } from 'final-form';
6import * as wg from 'lib/walletgen';
6import * as wg from 'lib/walletgen';
7import * as tank from 'lib/tank';
7import * as tank from 'lib/tank';
8import * as need from 'lib/need';
8import * as need from 'lib/need';
9−import pluralize from 'lib/pluralize';
10import { GAS_LIMITS } from 'lib/constants';
9import { GAS_LIMITS } from 'lib/constants';
11import {
10import {
12 signTransaction,
11 signTransaction,
@@ -15,7 +14,6 @@ import {
15 hexify,
14 hexify,
16} from 'lib/txn';
15} from 'lib/txn';
17import useGasPrice from 'lib/useGasPrice';
16import useGasPrice from 'lib/useGasPrice';
18−import { MIN_PLANET } from 'lib/constants';
19import { safeToWei } from 'lib/lib';
17import { safeToWei } from 'lib/lib';
20
18
21import { useNetwork } from 'store/network';
19import { useNetwork } from 'store/network';
src/lib/useKeyfileGenerator.js+1−1
@@ -17,7 +17,7 @@ import {
17 compileNetworkingKey,
17 compileNetworkingKey,
18} from './keys';
18} from './keys';
19import useCurrentPermissions from './useCurrentPermissions';
19import useCurrentPermissions from './useCurrentPermissions';
20−import convertToInt from './convertToInt';
20+import { convertToInt } from './convertToInt';
21
21
22export default function useKeyfileGenerator(manualNetworkSeed) {
22export default function useKeyfileGenerator(manualNetworkSeed) {
23 const { urbitWallet, wallet, authMnemonic, authToken } = useWallet();
23 const { urbitWallet, wallet, authMnemonic, authToken } = useWallet();
src/lib/useLifecycle.js+1
@@ -2,5 +2,6 @@ import { useEffect } from 'react';
2
2
3// https://overreacted.io/a-complete-guide-to-useeffect/
3// https://overreacted.io/a-complete-guide-to-useeffect/
4export default function useLifecycle(fn) {
4export default function useLifecycle(fn) {
5+ // eslint-disable-next-line react-hooks/exhaustive-deps
5 return useEffect(fn, []);
6 return useEffect(fn, []);
6}
7}
src/lib/useMailer.js+1−1
@@ -1,7 +1,7 @@
1import { useCallback, useRef } from 'react';
1import { useCallback, useRef } from 'react';
2
2
3import { hasReceived, sendMail } from './inviteMail';
3import { hasReceived, sendMail } from './inviteMail';
4−import timeout from './timeout';
4+import { timeout } from './timeout';
5
5
6const STUB_MAILER = process.env.REACT_APP_STUB_MAILER === 'true';
6const STUB_MAILER = process.env.REACT_APP_STUB_MAILER === 'true';
7
7
src/lib/validators.js+1−1
@@ -4,7 +4,7 @@ import ob from 'urbit-ob';
4import { includes } from 'lodash';
4import { includes } from 'lodash';
5
5
6import { isValidAddress } from './utils/address';
6import { isValidAddress } from './utils/address';
7−import patp2dec from './patp2dec';
7+import { patp2dec } from './patp2dec';
8import { patpStringLength } from './lib';
8import { patpStringLength } from './lib';
9import {
9import {
10 ETH_ZERO_ADDR,
10 ETH_ZERO_ADDR,
src/lib/walletgen.js+1−1
@@ -2,7 +2,7 @@ import ob from 'urbit-ob';
2import kg from 'urbit-key-generation';
2import kg from 'urbit-key-generation';
3import * as more from 'more-entropy';
3import * as more from 'more-entropy';
4import { chunk, flatMap, zipWith } from 'lodash';
4import { chunk, flatMap, zipWith } from 'lodash';
5−import { shax, shas } from 'lib/networkCode';
5+import { shas } from 'lib/networkCode';
6
6
7import {
7import {
8 MIN_STAR,
8 MIN_STAR,
src/store/Provider.js+1−1
@@ -1,4 +1,4 @@
1−import nest from 'lib/nest';
1+import { nest } from 'lib/nest';
2
2
3import { HistoryProvider } from './history';
3import { HistoryProvider } from './history';
4import { OnlineProvider } from './online';
4import { OnlineProvider } from './online';
src/store/network.js−3
@@ -2,19 +2,16 @@ import React, {
2 createContext,
2 createContext,
3 forwardRef,
3 forwardRef,
4 useContext,
4 useContext,
5− useMemo,
6 useState,
5 useState,
7 useEffect,
6 useEffect,
8} from 'react';
7} from 'react';
9import { Just, Nothing } from 'folktale/maybe';
8import { Just, Nothing } from 'folktale/maybe';
10import * as azimuth from 'azimuth-js';
9import * as azimuth from 'azimuth-js';
11import Web3 from 'web3';
10import Web3 from 'web3';
12−import { includes } from 'lodash';
13
11
14import { CONTRACT_ADDRESSES } from '../lib/contracts';
12import { CONTRACT_ADDRESSES } from '../lib/contracts';
15import { NETWORK_TYPES, chainIdToNetworkType } from '../lib/network';
13import { NETWORK_TYPES, chainIdToNetworkType } from '../lib/network';
16import { isDevelopment } from '../lib/flags';
14import { isDevelopment } from '../lib/flags';
17−import { BRIDGE_ERROR } from '../lib/error';
18
15
19import { Grid } from 'indigo-react';
16import { Grid } from 'indigo-react';
20import View from 'components/View';
17import View from 'components/View';
src/views/AcceptTransfer.js−1
@@ -12,7 +12,6 @@ import * as need from 'lib/need';
12import useCurrentPointName from 'lib/useCurrentPointName';
12import useCurrentPointName from 'lib/useCurrentPointName';
13import useEthereumTransaction from 'lib/useEthereumTransaction';
13import useEthereumTransaction from 'lib/useEthereumTransaction';
14import { GAS_LIMITS } from 'lib/constants';
14import { GAS_LIMITS } from 'lib/constants';
15−import useLifecycle from 'lib/useLifecycle';
16import { useLocalRouter } from 'lib/LocalRouter';
15import { useLocalRouter } from 'lib/LocalRouter';
17
16
18import ViewHeader from 'components/ViewHeader';
17import ViewHeader from 'components/ViewHeader';
src/views/Activate/ActivateCode.js+2−2
@@ -21,7 +21,7 @@ import { generateWallet } from 'lib/invite';
21import { generateTemporaryOwnershipWallet } from 'lib/walletgen';
21import { generateTemporaryOwnershipWallet } from 'lib/walletgen';
22import { useLocalRouter } from 'lib/LocalRouter';
22import { useLocalRouter } from 'lib/LocalRouter';
23import useImpliedTicket from 'lib/useImpliedTicket';
23import useImpliedTicket from 'lib/useImpliedTicket';
24−import timeout from 'lib/timeout';
24+import { timeout } from 'lib/timeout';
25import useHasDisclaimed from 'lib/useHasDisclaimed';
25import useHasDisclaimed from 'lib/useHasDisclaimed';
26import useBreakpoints from 'lib/useBreakpoints';
26import useBreakpoints from 'lib/useBreakpoints';
27
27
@@ -38,7 +38,7 @@ import FormError from 'form/FormError';
38
38
39import { useActivateFlow } from './ActivateFlow';
39import { useActivateFlow } from './ActivateFlow';
40import { WARNING } from 'form/helpers';
40import { WARNING } from 'form/helpers';
41−import convertToInt from 'lib/convertToInt';
41+import { convertToInt } from 'lib/convertToInt';
42
42
43export default function ActivateCode() {
43export default function ActivateCode() {
44 const history = useHistory();
44 const history = useHistory();
src/views/Activate/PassportTransfer.js+1−1
@@ -13,7 +13,7 @@ import {
13 reticketPointBetweenWallets,
13 reticketPointBetweenWallets,
14 TRANSACTION_PROGRESS,
14 TRANSACTION_PROGRESS,
15} from 'lib/reticket';
15} from 'lib/reticket';
16−import timeout from 'lib/timeout';
16+import { timeout } from 'lib/timeout';
17
17
18import WarningBox from 'components/WarningBox';
18import WarningBox from 'components/WarningBox';
19import LoadingBar from 'components/LoadingBar';
19import LoadingBar from 'components/LoadingBar';
src/views/CreateGalaxy.js+1−1
@@ -9,7 +9,7 @@ import { usePointCache } from 'store/pointCache';
9import * as need from 'lib/need';
9import * as need from 'lib/need';
10import useEthereumTransaction from 'lib/useEthereumTransaction';
10import useEthereumTransaction from 'lib/useEthereumTransaction';
11import { GAS_LIMITS } from 'lib/constants';
11import { GAS_LIMITS } from 'lib/constants';
12−import patp2dec from 'lib/patp2dec';
12+import { patp2dec } from 'lib/patp2dec';
13import { isZeroAddress } from 'lib/utils/address';
13import { isZeroAddress } from 'lib/utils/address';
14import { useLocalRouter } from 'lib/LocalRouter';
14import { useLocalRouter } from 'lib/LocalRouter';
15
15
src/views/Invite/Cohort.js−3
@@ -3,7 +3,6 @@ import { Grid, Flex, Button } from 'indigo-react';
3import * as ob from 'urbit-ob';
3import * as ob from 'urbit-ob';
4import { Just, Nothing } from 'folktale/maybe';
4import { Just, Nothing } from 'folktale/maybe';
5import cn from 'classnames';
5import cn from 'classnames';
6−import { delegatedSending } from 'azimuth-js';
7
6
8import { usePointCursor } from 'store/pointCursor';
7import { usePointCursor } from 'store/pointCursor';
9import { usePointCache } from 'store/pointCache';
8import { usePointCache } from 'store/pointCache';
@@ -282,8 +281,6 @@ export default function InviteCohort() {
282 const { pointCursor } = usePointCursor();
281 const { pointCursor } = usePointCursor();
283 const point = need.point(pointCursor);
282 const point = need.point(pointCursor);
284
283
285− const { syncDetails } = usePointCache();
286−
287 const {
284 const {
288 acceptedInvites,
285 acceptedInvites,
289 acceptedPoints,
286 acceptedPoints,
src/views/Invite/Email.js+1−1
@@ -8,7 +8,7 @@ import { usePointCursor } from 'store/pointCursor';
8
8
9import * as need from 'lib/need';
9import * as need from 'lib/need';
10import useMailer from 'lib/useMailer';
10import useMailer from 'lib/useMailer';
11−import pluralize from 'lib/pluralize';
11+import { pluralize } from 'lib/pluralize';
12import useInviter from 'lib/useInviter';
12import useInviter from 'lib/useInviter';
13
13
14import {
14import {
src/views/IssueChild.js+2−2
@@ -11,7 +11,7 @@ import { usePointCursor } from 'store/pointCursor';
11import * as need from 'lib/need';
11import * as need from 'lib/need';
12import useEthereumTransaction from 'lib/useEthereumTransaction';
12import useEthereumTransaction from 'lib/useEthereumTransaction';
13import { GAS_LIMITS } from 'lib/constants';
13import { GAS_LIMITS } from 'lib/constants';
14−import patp2dec from 'lib/patp2dec';
14+import { patp2dec } from 'lib/patp2dec';
15import { getSpawnCandidate } from 'lib/child';
15import { getSpawnCandidate } from 'lib/child';
16import { useLocalRouter } from 'lib/LocalRouter';
16import { useLocalRouter } from 'lib/LocalRouter';
17import useConstant from 'lib/useConstant';
17import useConstant from 'lib/useConstant';
@@ -30,7 +30,7 @@ import {
30import BridgeForm from 'form/BridgeForm';
30import BridgeForm from 'form/BridgeForm';
31import FormError from 'form/FormError';
31import FormError from 'form/FormError';
32import CopiableAddress from 'components/CopiableAddress';
32import CopiableAddress from 'components/CopiableAddress';
33−import convertToInt from 'lib/convertToInt';
33+import { convertToInt } from 'lib/convertToInt';
34
34
35function useIssueChild() {
35function useIssueChild() {
36 const { contracts } = useNetwork();
36 const { contracts } = useNetwork();
src/views/Login/Other.js−1
@@ -3,7 +3,6 @@ import { Grid } from 'indigo-react';
3
3
4import useBreakpoints from 'lib/useBreakpoints';
4import useBreakpoints from 'lib/useBreakpoints';
5
5
6−import View from 'components/View';
7import Accordion from 'components/Accordion';
6import Accordion from 'components/Accordion';
8
7
9import PrivateKey from './PrivateKey';
8import PrivateKey from './PrivateKey';
src/views/Login/Ticket.js+3−4
@@ -1,6 +1,5 @@
1import React, { useCallback, useMemo, useRef } from 'react';
1import React, { useCallback, useMemo, useRef } from 'react';
2import { Just } from 'folktale/maybe';
2import { Just } from 'folktale/maybe';
3−import cn from 'classnames';
4import * as azimuth from 'azimuth-js';
3import * as azimuth from 'azimuth-js';
5import * as kg from 'urbit-key-generation';
4import * as kg from 'urbit-key-generation';
6import {
5import {
@@ -21,8 +20,8 @@ import { urbitWalletFromTicket } from 'lib/wallet';
21import { WALLET_TYPES } from 'lib/constants';
20import { WALLET_TYPES } from 'lib/constants';
22import useImpliedPoint from 'lib/useImpliedPoint';
21import useImpliedPoint from 'lib/useImpliedPoint';
23import useLoginView from 'lib/useLoginView';
22import useLoginView from 'lib/useLoginView';
24−import patp2dec from 'lib/patp2dec';
23+import { patp2dec } from 'lib/patp2dec';
25−import timeout from 'lib/timeout';
24+import { timeout } from 'lib/timeout';
26
25
27import BridgeForm from 'form/BridgeForm';
26import BridgeForm from 'form/BridgeForm';
28import Condition from 'form/Condition';
27import Condition from 'form/Condition';
@@ -112,7 +111,7 @@ export default function Ticket({ className, goHome }) {
112 const empty = ['shard1', 'shard2', 'shard3'].filter(s => !values[s]);
111 const empty = ['shard1', 'shard2', 'shard3'].filter(s => !values[s]);
113 if (empty.length > 1) {
112 if (empty.length > 1) {
114 let errors = {};
113 let errors = {};
115− empty.map(s => {
114+ empty.forEach(s => {
116 errors[s] = 'Please provide at least two out of three shards.';
115 errors[s] = 'Please provide at least two out of three shards.';
117 });
116 });
118 return errors;
117 return errors;
src/views/Login/Trezor.tsx+1−1
@@ -4,7 +4,7 @@ import { bip32 } from 'bitcoinjs-lib';
4import { publicKeyConvert } from 'secp256k1';
4import { publicKeyConvert } from 'secp256k1';
5import { times } from 'lodash';
5import { times } from 'lodash';
6import TrezorConnect, { HDNodeResponse } from 'trezor-connect';
6import TrezorConnect, { HDNodeResponse } from 'trezor-connect';
7−import { Text, Grid, H5, CheckboxInput, SelectInput } from 'indigo-react';
7+import { Text, Grid, CheckboxInput, SelectInput } from 'indigo-react';
8
8
9import { useWallet } from 'store/wallet';
9import { useWallet } from 'store/wallet';
10
10
src/views/Party/PartySetPoolSize.js+2−2
@@ -12,8 +12,8 @@ import useEthereumTransaction from 'lib/useEthereumTransaction';
12import { GAS_LIMITS } from 'lib/constants';
12import { GAS_LIMITS } from 'lib/constants';
13import { useLocalRouter } from 'lib/LocalRouter';
13import { useLocalRouter } from 'lib/LocalRouter';
14import useCurrentPermissions from 'lib/useCurrentPermissions';
14import useCurrentPermissions from 'lib/useCurrentPermissions';
15−import patp2dec from 'lib/patp2dec';
15+import { patp2dec } from 'lib/patp2dec';
16−import convertToInt from 'lib/convertToInt';
16+import { convertToInt } from 'lib/convertToInt';
17
17
18import ViewHeader from 'components/ViewHeader';
18import ViewHeader from 'components/ViewHeader';
19import InlineEthereumTransaction from 'components/InlineEthereumTransaction';
19import InlineEthereumTransaction from 'components/InlineEthereumTransaction';
src/views/Point.js−1
@@ -127,7 +127,6 @@ export default function Point() {
127 canManage,
127 canManage,
128 canSpawn,
128 canSpawn,
129 canVote,
129 canVote,
130− isOwner,
131 } = useCurrentPermissions();
130 } = useCurrentPermissions();
132
131
133 const canBitcoin = Just.hasInstance(urbitWallet);
132 const canBitcoin = Just.hasInstance(urbitWallet);
src/views/Points.js+2−2
@@ -1,5 +1,5 @@
1import React, { useCallback, useEffect, useMemo } from 'react';
1import React, { useCallback, useEffect, useMemo } from 'react';
2−import { Just, Nothing, Result } from 'folktale/maybe';
2+import { Just, Nothing } from 'folktale/maybe';
3import { Grid, H5, HelpText, LinkButton, Flex } from 'indigo-react';
3import { Grid, H5, HelpText, LinkButton, Flex } from 'indigo-react';
4import { get } from 'lodash';
4import { get } from 'lodash';
5
5
@@ -14,7 +14,7 @@ import { isZeroAddress, abbreviateAddress } from 'lib/utils/address';
14import useIsEclipticOwner from 'lib/useIsEclipticOwner';
14import useIsEclipticOwner from 'lib/useIsEclipticOwner';
15import { useSyncDetails } from 'lib/useSyncPoints';
15import { useSyncDetails } from 'lib/useSyncPoints';
16import useRejectedIncomingPointTransfers from 'lib/useRejectedIncomingPointTransfers';
16import useRejectedIncomingPointTransfers from 'lib/useRejectedIncomingPointTransfers';
17−import pluralize from 'lib/pluralize';
17+import { pluralize } from 'lib/pluralize';
18import newGithubIssueUrl from 'new-github-issue-url';
18import newGithubIssueUrl from 'new-github-issue-url';
19
19
20import View from 'components/View';
20import View from 'components/View';
src/views/Release.js−1
@@ -10,7 +10,6 @@ import { usePointCursor } from 'store/pointCursor';
10
10
11import View from 'components/View';
11import View from 'components/View';
12import Tabs from 'components/Tabs';
12import Tabs from 'components/Tabs';
13−import Crumbs from 'components/Crumbs';
14import CopiableAddress from 'components/CopiableAddress';
13import CopiableAddress from 'components/CopiableAddress';
15
14
16import Active from 'views/Release/Active';
15import Active from 'views/Release/Active';
src/views/Release/Locked.js+1−1
@@ -5,7 +5,7 @@ import { Just } from 'folktale/maybe';
5
5
6import * as need from 'lib/need';
6import * as need from 'lib/need';
7import useEthereumTransaction from 'lib/useEthereumTransaction';
7import useEthereumTransaction from 'lib/useEthereumTransaction';
8−import pluralize from 'lib/pluralize';
8+import { pluralize } from 'lib/pluralize';
9
9
10import { useWallet } from 'store/wallet';
10import { useWallet } from 'store/wallet';
11import { usePointCache } from 'store/pointCache';
11import { usePointCache } from 'store/pointCache';
src/views/Release/Transfer.js+1−2
@@ -14,14 +14,13 @@ import { useHistory } from 'store/history';
14import { useStarReleaseCache } from 'store/starRelease';
14import { useStarReleaseCache } from 'store/starRelease';
15
15
16import InlineEthereumTransaction from 'components/InlineEthereumTransaction';
16import InlineEthereumTransaction from 'components/InlineEthereumTransaction';
17−import CopiableWithTooltip from 'components/CopiableWithTooltip';
18import CopiableAddress from 'components/CopiableAddress';
17import CopiableAddress from 'components/CopiableAddress';
19import NoticeBox from 'components/NoticeBox';
18import NoticeBox from 'components/NoticeBox';
20
19
21import { AddressInput } from 'form/Inputs';
20import { AddressInput } from 'form/Inputs';
22import BridgeForm from 'form/BridgeForm';
21import BridgeForm from 'form/BridgeForm';
23import FormError from 'form/FormError';
22import FormError from 'form/FormError';
24−import { composeValidator, buildAddressValidator } from 'form/validators';
23+import { composeValidator } from 'form/validators';
25import { isValidAddress } from 'ethereumjs-util';
24import { isValidAddress } from 'ethereumjs-util';
26
25
27function useTransferLockup(kind) {
26function useTransferLockup(kind) {
src/views/Residents.js+1−1
@@ -1,6 +1,6 @@
1import React, { useState, useEffect, useCallback, useMemo } from 'react';
1import React, { useState, useEffect, useCallback, useMemo } from 'react';
2import cn from 'classnames';
2import cn from 'classnames';
3−import { Grid, H4, HelpText, Flex } from 'indigo-react';
3+import { Grid, H4, HelpText } from 'indigo-react';
4import { Just, Nothing } from 'folktale/maybe';
4import { Just, Nothing } from 'folktale/maybe';
5import * as ob from 'urbit-ob';
5import * as ob from 'urbit-ob';
6
6
src/views/Senate.js+1−2
@@ -1,6 +1,5 @@
1−import React, { useCallback, useState } from 'react';
1+import React, { useCallback } from 'react';
2import { Grid } from 'indigo-react';
2import { Grid } from 'indigo-react';
3−import { azimuth } from 'azimuth-js';
4
3
5import View from 'components/View';
4import View from 'components/View';
6import ViewHeader from 'components/ViewHeader';
5import ViewHeader from 'components/ViewHeader';
src/views/Senate/Documents.js+1−1
@@ -14,7 +14,7 @@ import ViewHeader from 'components/ViewHeader';
14import InlineEthereumTransaction from 'components/InlineEthereumTransaction';
14import InlineEthereumTransaction from 'components/InlineEthereumTransaction';
15import View from 'components/View';
15import View from 'components/View';
16import BridgeForm from 'form/BridgeForm';
16import BridgeForm from 'form/BridgeForm';
17−import convertToInt from 'lib/convertToInt';
17+import { convertToInt } from 'lib/convertToInt';
18
18
19function useCastDocumentVote() {
19function useCastDocumentVote() {
20 const { contracts } = useNetwork();
20 const { contracts } = useNetwork();
src/views/Senate/Upgrades.js+1−1
@@ -14,7 +14,7 @@ import ViewHeader from 'components/ViewHeader';
14import InlineEthereumTransaction from 'components/InlineEthereumTransaction';
14import InlineEthereumTransaction from 'components/InlineEthereumTransaction';
15import View from 'components/View';
15import View from 'components/View';
16import BridgeForm from 'form/BridgeForm';
16import BridgeForm from 'form/BridgeForm';
17−import convertToInt from 'lib/convertToInt';
17+import { convertToInt } from 'lib/convertToInt';
18
18
19function useCastUpgradeVote() {
19function useCastUpgradeVote() {
20 const { contracts } = useNetwork();
20 const { contracts } = useNetwork();
src/views/UrbitID.js+5−1
@@ -68,7 +68,11 @@ export default function UrbitID() {
68 const lastCrumb = homeAction ? [{ text: humanizeName(last) }] : [];
68 const lastCrumb = homeAction ? [{ text: humanizeName(last) }] : [];
69
69
70 return (
70 return (
71+ <View
72+ pop={() =>
71− <View pop={() => router.peek().key === NAMES.HOME ? history.pop() : router.pop()} inset>
73+ router.peek().key === NAMES.HOME ? history.pop() : router.pop()
74+ }
75+ inset>
72 <NavHeader>
76 <NavHeader>
73 <Crumbs
77 <Crumbs
74 routes={[
78 routes={[
src/views/UrbitID/Home.js+2−2
@@ -9,9 +9,9 @@ import CopyButton from 'components/CopyButton';
9import { useLocalRouter } from 'lib/LocalRouter';
9import { useLocalRouter } from 'lib/LocalRouter';
10import { PROXY_TYPE, proxyTypeToHuman } from 'lib/proxy';
10import { PROXY_TYPE, proxyTypeToHuman } from 'lib/proxy';
11import * as need from 'lib/need';
11import * as need from 'lib/need';
12−import capitalize from 'lib/capitalize';
12+import { capitalize } from 'lib/capitalize';
13import useCurrentPermissions from 'lib/useCurrentPermissions';
13import useCurrentPermissions from 'lib/useCurrentPermissions';
14−import convertToInt from 'lib/convertToInt';
14+import { convertToInt } from 'lib/convertToInt';
15
15
16import { usePointCursor } from 'store/pointCursor';
16import { usePointCursor } from 'store/pointCursor';
17import { usePointCache } from 'store/pointCache';
17import { usePointCache } from 'store/pointCache';
src/views/UrbitID/ResetKeys/ResetExecute.js+1−1
@@ -9,7 +9,7 @@ import {
9import * as need from 'lib/need';
9import * as need from 'lib/need';
10import useLifecycle from 'lib/useLifecycle';
10import useLifecycle from 'lib/useLifecycle';
11import { WALLET_TYPES } from 'lib/constants';
11import { WALLET_TYPES } from 'lib/constants';
12−import convertToInt from 'lib/convertToInt';
12+import { convertToInt } from 'lib/convertToInt';
13import useBlockWindowClose from 'lib/useBlockWindowClose';
13import useBlockWindowClose from 'lib/useBlockWindowClose';
14
14
15import { useNetwork } from 'store/network';
15import { useNetwork } from 'store/network';
src/views/UrbitID/SetProxy.js+1−1
@@ -15,7 +15,7 @@ import {
15import * as need from 'lib/need';
15import * as need from 'lib/need';
16import { useLocalRouter } from 'lib/LocalRouter';
16import { useLocalRouter } from 'lib/LocalRouter';
17import { eqAddr, isZeroAddress } from 'lib/utils/address';
17import { eqAddr, isZeroAddress } from 'lib/utils/address';
18−import capitalize from 'lib/capitalize';
18+import { capitalize } from 'lib/capitalize';
19import useEthereumTransaction from 'lib/useEthereumTransaction';
19import useEthereumTransaction from 'lib/useEthereumTransaction';
20
20
21import InlineEthereumTransaction from 'components/InlineEthereumTransaction';
21import InlineEthereumTransaction from 'components/InlineEthereumTransaction';
src/views/UrbitOS.js+5−1
@@ -40,7 +40,11 @@ export default function UrbitOS() {
40 const [manualNetworkSeed, setManualNetworkSeed] = useState();
40 const [manualNetworkSeed, setManualNetworkSeed] = useState();
41
41
42 return (
42 return (
43+ <View
44+ pop={() =>
43− <View pop={() => router.peek().key === NAMES.HOME ? history.pop() : router.pop()} inset>
45+ router.peek().key === NAMES.HOME ? history.pop() : router.pop()
46+ }
47+ inset>
44 <NavHeader>
48 <NavHeader>
45 <Crumbs
49 <Crumbs
46 routes={[
50 routes={[
src/views/UrbitOS/NetworkingKeys.js+1−1
@@ -36,7 +36,7 @@ import {
36import BridgeForm from 'form/BridgeForm';
36import BridgeForm from 'form/BridgeForm';
37import Condition from 'form/Condition';
37import Condition from 'form/Condition';
38import FormError from 'form/FormError';
38import FormError from 'form/FormError';
39−import convertToInt from 'lib/convertToInt';
39+import { convertToInt } from 'lib/convertToInt';
40
40
41function useSetKeys(manualNetworkSeed, setManualNetworkSeed) {
41function useSetKeys(manualNetworkSeed, setManualNetworkSeed) {
42 const { urbitWallet, wallet, authMnemonic, authToken } = useWallet();
42 const { urbitWallet, wallet, authMnemonic, authToken } = useWallet();