/
useFinancialConnectionsSheet.tsx
40 lines (36 loc) · 1.25 KB
/
useFinancialConnectionsSheet.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import { useState, useCallback } from 'react';
import { useStripe } from './useStripe';
/**
* React hook for accessing functions on the Financial Connections sheet.
*
* Retuns the `collectBankAccountToken` and `collectFinancialConnectionsAccounts` functions, and a `loading` boolean that you can use
* to display loading state (like showing a spinner).
*/
export function useFinancialConnectionsSheet() {
const [loading, setLoading] = useState(false);
const { collectBankAccountToken, collectFinancialConnectionsAccounts } =
useStripe();
const _collectBankAccountToken = useCallback(
async (clientSecret: string) => {
setLoading(true);
const result = await collectBankAccountToken(clientSecret);
setLoading(false);
return result;
},
[collectBankAccountToken]
);
const _collectFinancialConnectionsAccounts = useCallback(
async (clientSecret: string) => {
setLoading(true);
const result = await collectFinancialConnectionsAccounts(clientSecret);
setLoading(false);
return result;
},
[collectFinancialConnectionsAccounts]
);
return {
collectBankAccountToken: _collectBankAccountToken,
collectFinancialConnectionsAccounts: _collectFinancialConnectionsAccounts,
loading,
};
}