on master help sign in
bridge/src/views/Activate/useActivateFlowState.js
73 lines 2.4 kB history raw
1import { useCallback, useState } from 'react';
2import { Nothing } from 'folktale/maybe';
4export default function useActivateFlowState() {
5 const [derivedPatp, setDerivedPatp] = useState(Nothing());
6 const [derivedPoint, setDerivedPoint] = useState(Nothing());
7 const [generated, setGenerated] = useState(false);
8 const [incomingPoints, setIncomingPoints] = useState(Nothing());
9 const [derivedPointDominion, setDerivedPointDominion] = useState(Nothing());
10 const [isIn, setIsIn] = useState(false);
12 // A new wallet generated after confirming that the invite ticket is valid
13 // and the point is available for activation.
14 // At the end of the Activate flow, the point will be transferred
15 // from the invite wallet to this wallet. When the user confirms
16 // the Master Key (ticket) and downloads the passport / mnemonic,
17 // it is for this wallet
18 // type UrbitWallet
19 const [inviteMasterTicketWallet, setInviteMasterTicketWallet] = useState(
20 Nothing()
21 );
22 // The wallet generated deterministically during the invite creation flow;
23 // it is re-generated when the user starts the Activate flow. It is used
24 // to derive and confirm a shareable ticket that a user can activate a point with.
25 // type UrbitWallet
26 const [inviteWallet, setInviteWallet] = useState(Nothing());
27 // This wallet is generated from the invite wallet's seed phrase.
28 // It is used during the transfer phase of the invite flow to send transactions.
29 // type bip32.BIP32Interface
30 const [sendWallet, setSendWallet] = useState(Nothing());
32 const reset = useCallback(() => {
33 setDerivedPatp(Nothing());
34 setDerivedPoint(Nothing());
35 setDerivedPointDominion(Nothing());
36 setInviteMasterTicketWallet(Nothing());
37 setGenerated(false);
38 setIncomingPoints(Nothing());
39 setInviteWallet(Nothing());
40 setSendWallet(Nothing());
41 }, [
42 setDerivedPatp,
43 setDerivedPoint,
44 setDerivedPointDominion,
45 setInviteMasterTicketWallet,
46 setGenerated,
47 setIncomingPoints,
48 setInviteWallet,
49 setSendWallet,
50 ]);
52 return {
53 derivedPatp,
54 derivedPoint,
55 derivedPointDominion,
56 inviteMasterTicketWallet,
57 generated,
58 incomingPoints,
59 inviteWallet,
60 isIn,
61 reset,
62 sendWallet,
63 setDerivedPatp,
64 setDerivedPoint,
65 setDerivedPointDominion,
66 setInviteMasterTicketWallet,
67 setGenerated,
68 setIncomingPoints,
69 setInviteWallet,
70 setIsIn,
71 setSendWallet,
72 };