on b4917df help sign in
bridge/src/lib/useInvites.js
40 lines 1.0 kB 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 [availableInvites, _setAvailableInvites] = 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 _setAvailableInvites(Maybe.Just(count));
27 })();
28 }, [_setAvailableInvites, point, contracts]);
30 // fetch invites on first render
31 useLifecycle(fetchInvites);
33 return {
34 availableInvites,
35 fetchInvites,
36 // TODO: look up sent/accepted
37 sentInvites: Maybe.Just(6),
38 acceptedInvites: Maybe.Just(5),
39 };