1import React, { useMemo } from 'react';
2import { Input, AccessoryIcon } from 'indigo-react';
3import { useField } from 'react-final-form';
10} from 'lib/validators';
11import { compose } from 'lib/lib';
12import { prependSig } from 'lib/transformers';
13import { DEFAULT_HD_PATH } from 'lib/wallet';
15// TODO: why is `validate` called when routing away? new props?
16// active not true: https://github.com/final-form/react-final-form/issues/558
18const kEmptyValidators = []; // necessary for referential stability
19const kEmptyTransformers = []; // also for referential stability
21const PLACEHOLDER_POINT = '~sampel-ponnym';
22const PLACEHOLDER_HD_PATH = DEFAULT_HD_PATH;
23const PLACEHOLDER_MNEMONIC =
24 'example crew supreme gesture quantum web media hazard theory mercy wing kitten';
25const PLACEHOLDER_TICKET = '~sampel-ticlyt-migfun-falmel';
26const PLACEHOLDER_ADDRESS = '0x12345abcdeDB11D175F123F6891AA64F01c24F7d';
27const PLACEHOLDER_PRIVATE_KEY =
28 '0x12345abcdee6beb2f323fab48b432925c9785808d33a6ca6d7ba00b45e9370c3';
30const buildValidator = (
34 // console.log('validating:', value);
39 )(value).error || (await fn(value))
43const kTicketValidators = [validateTicket, validateNotEmpty];
44export function TicketInput({
46 validators = kEmptyValidators,
47 transformers = kEmptyTransformers,
51 const { valid, error, validating } = useField(name, {
52 subscription: { error: true, validating: true },
55 const _validate = useMemo(
56 () => buildValidator([...validators, ...kTicketValidators], validate),
57 [validate, validators]
60 const _format = (value, name) => prependSig(value);
66 placeholder={PLACEHOLDER_TICKET}
69 <AccessoryIcon.Failure />
71 <AccessoryIcon.Pending />
73 <AccessoryIcon.Success />
76 config={{ validate: _validate, format: _format }}
83const kMnemonicValidators = [validateMnemonic, validateNotEmpty];
84export function MnemonicInput({
86 validators = kEmptyValidators,
87 transformers = kEmptyTransformers,
91 const _validate = useMemo(
92 () => buildValidator([...validators, ...kMnemonicValidators], validate),
93 [validate, validators]
100 placeholder={PLACEHOLDER_MNEMONIC}
101 config={{ validate: _validate }}
109const kHdPathValidators = [validateNotEmpty];
110export function HdPathInput({
112 validators = kEmptyValidators,
113 transformers = kEmptyTransformers,
117 const _validate = useMemo(
118 () => buildValidator([...validators, ...kHdPathValidators], validate),
119 [validate, validators]
126 placeholder={PLACEHOLDER_HD_PATH}
127 config={{ validate: _validate }}
134export function PassphraseInput({ ...rest }) {
138 placeholder="Passphrase"
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list