on 64aee13 help sign in
bridge/src/views/Admin/Reticket/ReticketVerify.js
67 lines 1.8 kB history raw
1import React, { useCallback, useMemo } from 'react';
2import { Text, Grid } from 'indigo-react';
4import { useLocalRouter } from 'lib/LocalRouter';
5import { validateExactly } from 'lib/validators';
6import { isDevelopment } from 'lib/flags';
8import BridgeForm from 'form/BridgeForm';
9import { TicketInput } from 'form/Inputs';
10import { composeValidator, buildPatqValidator } from 'form/validators';
11import SubmitButton from 'form/SubmitButton';
12import FormError from 'form/FormError';
14const STUB_VERIFY_TICKET = isDevelopment;
16export default function ReticketVerify({ newWallet }) {
17 const { push, names } = useLocalRouter();
19 const ticket = newWallet.value.wallet.ticket;
20 const validate = useMemo(
21 () =>
22 composeValidator({
23 ticket: buildPatqValidator([
24 validateExactly(ticket, 'Does not match expected master ticket.'),
25 ]),
26 }),
27 [ticket]
28 );
30 const initialValues = useMemo(
31 () => ({
32 ticket: STUB_VERIFY_TICKET ? ticket : 'undefined',
33 }),
34 [ticket]
35 );
37 const goExecute = useCallback(() => push(names.EXECUTE), [push, names]);
39 return (
40 <Grid gap={4} className="mt4">
41 <Grid.Item full as={Text}>
42 Verify New Master Ticket
43 </Grid.Item>
44 <BridgeForm
45 validate={validate}
46 afterSubmit={goExecute}
47 initialValues={initialValues}>
48 {({ handleSubmit }) => (
49 <>
50 <Grid.Item
51 full
52 as={TicketInput}
53 name="ticket"
54 label="New master ticket"
55 />
57 <Grid.Item full as={FormError} />
59 <Grid.Item full as={SubmitButton} handleSubmit={handleSubmit}>
60 Verify & Reticket
61 </Grid.Item>
62 </>
63 )}
64 </BridgeForm>
65 </Grid>
66 );