@@ -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,35 +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− 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.';
73 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.';
76− if (errors.ticket) {
76+ if (errors.ticket) {
77− return errors;
77+ return errors;
82 const onSubmit = useCallback(
84 const onSubmit = useCallback(
83 async values => {
85 async values => {
84− const ticket = values.useShards
86+ const ticket = useShards
85 ? kg.combine(
87 ? kg.combine(
86 [values.shard1, values.shard2, values.shard3].map(v =>
88 [values.shard1, values.shard2, values.shard3].map(v =>
87 v === '' ? undefined : v
89 v === '' ? undefined : v
@@ -122,41 +124,37 @@ export default function Ticket({ className, goHome }: TicketProps) {
122 console.error(error);
124 console.error(error);
124 [FORM_ERROR]: `Unable to derive wallet from ${
126 [FORM_ERROR]: `Unable to derive wallet from ${
125− values.useShards ? 'shards' : 'ticket'
127+ useShards ? 'shards' : 'ticket'
130− [setPointCursor, setUrbitWallet, getPoints]
132+ [setPointCursor, setUrbitWallet, getPoints, useShards]
135+ const emptyValidator = () => undefined;
133 const validate = useMemo(
137 const validate = useMemo(
135 composeValidator(
139 composeValidator(
137− useAdvanced: buildCheckboxValidator(),
138− usePassphrase: buildCheckboxValidator(),
139− useShards: buildCheckboxValidator(),
140 point: buildPointValidator(4),
141 point: buildPointValidator(4),
141− ticket: buildPatqValidator(),
142+ ticket: useShards ? emptyValidator : buildPatqValidator(),
142− shard1: buildShardValidator(),
143+ shard1: useShards ? buildShardValidator() : emptyValidator,
143− shard2: buildShardValidator(),
144+ shard2: useShards ? buildShardValidator() : emptyValidator,
144− shard3: buildShardValidator(),
145+ shard3: useShards ? buildShardValidator() : emptyValidator,
145 ticketHidden: buildCheckboxValidator(),
146 ticketHidden: buildCheckboxValidator(),
146 passphrase: buildPassphraseValidator(),
147 passphrase: buildPassphraseValidator(),
148 validateForm
149 validateForm
150− [validateForm]
151+ [validateForm, useShards]
153 const initialValues = useMemo(
154 const initialValues = useMemo(
155 point: impliedPoint || '',
156 point: impliedPoint || '',
156− usePasshrase: false,
158 ticketHidden: true,
157 ticketHidden: true,
161 [impliedPoint]
159 [impliedPoint]