1import React, { useState, useMemo } from 'react';
2import * as bip39 from 'bip39';
4import InputSigil from 'components/InputSigil';
6import { DEFAULT_HD_PATH } from 'lib/wallet';
13} from 'lib/validators';
14import { prependSig } from 'lib/transformers';
15import useForm from 'indigo-react/lib/useForm';
16import { AccessoryIcon } from 'indigo-react';
18// const RequiredInput = advancedInput({
19// WrappedComponent: Input,
20// validators: [validateNotEmpty],
23// const NetworkKeyInput = advancedInput({
24// WrappedComponent: Input,
25// validators: [validateNotEmpty, validateNetworkKey],
28// const NetworkSeedInput = advancedInput({
29// WrappedComponent: Input,
30// validators: [validateNotEmpty, validateNetworkSeed],
33// const AddressInput = advancedInput({
34// WrappedComponent: Input,
35// validators: [validateEthereumAddress, validateNotEmpty],
38const firstOf = state => state.inputs[0];
40export function usePassphraseInput(props) {
46 placeholder: 'Passphrase',
53const kExampleMnemonic = bip39.generateMnemonic();
54const kMnemonicValidators = [validateMnemonic, validateNotEmpty];
55export function useMnemonicInput(props) {
61 placeholder: `e.g. ${kExampleMnemonic}`,
62 validators: kMnemonicValidators,
69export function useHdPathInput(props) {
75 placeholder: `e.g. ${DEFAULT_HD_PATH}`,
82// const GalaxyInput = advancedInput({
83// WrappedComponent: Input,
84// validators: [validateGalaxy, validateNotEmpty],
85// transformers: [prependSig],
88const kTicketValidators = [validateTicket, validateNotEmpty];
89const kTicketTransformers = [prependSig];
90//TODO needs to be fancier, displaying sig and dashes instead of •ing all
91export function useTicketInput({ validators = [], ...rest }) {
92 const input = firstOf(
97 placeholder: '~ragtyd-modwen-bostec-hinsep',
98 validators: useMemo(() => [...validators, ...kTicketValidators], [
101 transformers: kTicketTransformers,
108 return { ...input, accessory: input.pass ? <AccessoryIcon.Success /> : null };
111const kPointValidators = [validatePoint, validateNotEmpty];
112const kPointTransformers = [prependSig];
113export function usePointInput(rest) {
114 const [lastValidPoint, setLastValidPoint] = useState('');
115 const input = firstOf(
120 placeholder: 'e.g. ~zod',
121 validators: kPointValidators,
122 transformers: kPointTransformers,
124 onValue: setLastValidPoint,
130 const { pass, focused, error } = input;
134 accessory: lastValidPoint && (
136 patp={lastValidPoint}
147export function useCheckboxInput({ initialValue, ...rest }) {
158const kEmailValidators = [validateEmail, validateNotEmpty];
159export const buildEmailInputConfig = extra => ({
162 validators: kEmailValidators,
167// const TicketInput = advancedInput({
168// WrappedComponent: Input,
169// validators: [validateTicket, validateNotEmpty],
170// transformers: [prependSig],
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