import React from 'react'; import { Input, AccessoryIcon } from 'indigo-react'; import { useField } from 'react-final-form'; import { convertToNumber, buildFormatter, downcase, ensurePatFormat, stripHexPrefix, ensureHexPrefix, } from 'form/formatters'; import { DEFAULT_HD_PATH } from 'lib/wallet'; import InputSigil from 'components/InputSigil'; const PLACEHOLDER_POINT = '~sampel-ponnym'; const PLACEHOLDER_HD_PATH = DEFAULT_HD_PATH; const PLACEHOLDER_MNEMONIC = 'example crew supreme gesture quantum web media hazard theory mercy wing kitten'; const PLACEHOLDER_TICKET = '~sampel-ticlyt-migfun-falmel'; const PLACEHOLDER_PASSWORD = '••••••-••••••-••••••-••••••'; const PLACEHOLDER_ADDRESS = '0x'; const PLACEHOLDER_HEX = '0x'; const PLACEHOLDER_PRIVATE_KEY = 'a44de2416ee6beb2f323fab48b432925c9785808d33a6ca6d7ba00b45e9370c3'; const PLACEHOLDER_EMAIL = 'email@example.com'; const formatPat = buildFormatter([downcase, ensurePatFormat]); export function TicketInput({ name, hidden, ...rest }) { const { meta: { valid, error, validating, touched, active }, } = useField(name, { subscription: { valid: true, error: true, validating: true, touched: true, active: true, }, }); return ( value.replace(/[^~-]+/g, '••••••')} placeholder={hidden ? PLACEHOLDER_PASSWORD : PLACEHOLDER_TICKET} autoCapitalize="none" autoCorrect="off" accessory={ touched && !active && error ? ( ) : validating ? ( ) : valid ? ( ) : null } config={{ parse: formatPat }} mono {...rest} /> ); } export function MnemonicInput({ ...rest }) { return ( ); } export function HdPathInput({ ...rest }) { return ( ); } export function PassphraseInput({ ...rest }) { return ( ); } export function PointInput({ name, size = 4, ...rest }) { const { input: { value }, meta: { active, valid, error }, } = useField(name, { subscription: { value: true, active: true, valid: true, error: true }, }); return ( ) : null } config={{ parse: formatPat }} mono {...rest} /> ); } export function HexInput({ ...rest }) { return ( ); } export function PrivateKeyInput({ ...rest }) { return ( ); } export function AddressInput({ ...rest }) { return ( ); } export function NumberInput({ ...rest }) { return ( ); } export function EmailInput({ ...rest }) { return ( ); }