on a8044e9 help sign in
bridge/src/lib/useInvites.js
34 lines 863 B history raw
1import { useCallback, useState } from 'react';
2import Maybe from 'folktale/maybe';
3import * as azimuth from 'azimuth-js';
5import { useNetwork } from 'store/network';
6import useLifecycle from './useLifecycle';
8// fetch the invites available for a point
9export default function useInvites(point) {
10 const { contracts } = useNetwork();
12 const [invites, _setInvites] = useState(Maybe.Nothing());
14 const fetchInvites = useCallback(() => {
15 const _contracts = contracts.getOrElse(null);
17 if (!contracts) {
18 return;
19 }
21 (async () => {
22 const count = await azimuth.delegatedSending.getTotalUsableInvites(
23 _contracts,
24 point
25 );
26 _setInvites(Maybe.Just(count));
27 })();
28 }, [_setInvites, point, contracts]);
30 // fetch invites on first render
31 useLifecycle(fetchInvites);
33 return { invites, fetchInvites };