@@ -17,7 +17,6 @@ import { timeout } from 'lib/timeout';
17import useRoller from 'lib/useRoller';
17import useRoller from 'lib/useRoller';
19import BridgeForm from 'form/BridgeForm';
19import BridgeForm from 'form/BridgeForm';
20−import Condition from 'form/Condition';
21import { TicketInput, PassphraseInput, PointInput } from 'form/Inputs';
20import { TicketInput, PassphraseInput, PointInput } from 'form/Inputs';
23 composeValidator,
22 composeValidator,
@@ -53,39 +52,38 @@ export default function Ticket({ className, goHome }: TicketProps) {
53 const [usePassphrase, setUsePassphrase] = useState(false);
52 const [usePassphrase, setUsePassphrase] = useState(false);
54 const [useShards, setUseShards] = useState(false);
53 const [useShards, setUseShards] = useState(false);
56− const validateForm = useCallback((values, errors) => {
55+ const validateForm = useCallback(
56+ (values, errors) => {
57− didWarn.current = false;
57+ didWarn.current = false;
59− if (errors.point) {
59+ if (errors.point) {
63− if (values.useShards) {
64− errors.ticket = undefined;
66− if (errors.shard1 || errors.shard2 || errors.shard3) {
70− const empty = ['shard1', 'shard2', 'shard3'].filter(s => !values[s]);
71− if (empty.length > 1) {
72− let errors: Record<string, string> = {};
74− errors[s] = 'Please provide at least two out of three shards.';
77 return errors;
60 return errors;
64+ if (errors.shard1 || errors.shard2 || errors.shard3) {
67+ const empty = ['shard1', 'shard2', 'shard3'].filter(s => !values[s]);
68+ if (empty.length > 1) {
69+ let errors: Record<string, string> = {};
71+ errors[s] = 'Please provide at least two out of three shards.';
80− if (errors.ticket) {
76+ if (errors.ticket) {
81− return errors;
77+ return errors;
86 const onSubmit = useCallback(
84 const onSubmit = useCallback(
87 async values => {
85 async values => {
88− const ticket = values.useShards
86+ const ticket = useShards
89 ? kg.combine(
87 ? kg.combine(
90 [values.shard1, values.shard2, values.shard3].map(v =>
88 [values.shard1, values.shard2, values.shard3].map(v =>
91 v === '' ? undefined : v
89 v === '' ? undefined : v
@@ -126,41 +124,37 @@ export default function Ticket({ className, goHome }: TicketProps) {
126 console.error(error);
124 console.error(error);
128 [FORM_ERROR]: `Unable to derive wallet from ${
126 [FORM_ERROR]: `Unable to derive wallet from ${
129− values.useShards ? 'shards' : 'ticket'
127+ useShards ? 'shards' : 'ticket'
134− [setPointCursor, setUrbitWallet, getPoints]
132+ [setPointCursor, setUrbitWallet, getPoints, useShards]
135+ const emptyValidator = () => undefined;
137 const validate = useMemo(
137 const validate = useMemo(
139 composeValidator(
139 composeValidator(
141− useAdvanced: buildCheckboxValidator(),
142− usePassphrase: buildCheckboxValidator(),
143− useShards: buildCheckboxValidator(),
144 point: buildPointValidator(4),
141 point: buildPointValidator(4),
145− ticket: buildPatqValidator(),
142+ ticket: useShards ? emptyValidator : buildPatqValidator(),
146− shard1: buildShardValidator(),
143+ shard1: useShards ? buildShardValidator() : emptyValidator,
147− shard2: buildShardValidator(),
144+ shard2: useShards ? buildShardValidator() : emptyValidator,
148− shard3: buildShardValidator(),
145+ shard3: useShards ? buildShardValidator() : emptyValidator,
149 ticketHidden: buildCheckboxValidator(),
146 ticketHidden: buildCheckboxValidator(),
150 passphrase: buildPassphraseValidator(),
147 passphrase: buildPassphraseValidator(),
152 validateForm
149 validateForm
154− [validateForm]
151+ [validateForm, useShards]
157 const initialValues = useMemo(
154 const initialValues = useMemo(
159 point: impliedPoint || '',
156 point: impliedPoint || '',
160− usePassphrase: false,
162 ticketHidden: true,
157 ticketHidden: true,
165 [impliedPoint]
159 [impliedPoint]