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/constants';
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 PsbtInput({ ...rest }) {
return (
);
}
export function AddressInput({ ...rest }) {
return (
);
}
export function NumberInput({ ...rest }) {
return (
);
}
export function EmailInput({ ...rest }) {
return (
);
}