on ded612b help sign in
bridge/src/views/Invite/Inviter.js
54 lines 1.1 kB history raw
1import React, { useState, useCallback } from 'react';
2import { Grid } from 'indigo-react';
4import { useConditionalBlockWindowClose } from 'lib/useBlockWindowClose';
6import Tabs from 'components/Tabs';
8import InviteMail from 'views/Invite/Email';
9import InviteUrl from 'views/Invite/Url';
11const Inviter = () => {
12 const [tab, setTab] = useState(NAMES.MAIL);
13 const [submitting, setSubmitting] = useState(false);
15 useConditionalBlockWindowClose(submitting);
16 const onTabChange = useCallback(
17 newTab => {
18 if (!submitting) {
19 setTab(newTab);
20 }
21 },
22 [submitting, setTab]
23 );
24 return (
25 <Grid.Item
26 full
27 as={Tabs}
28 center
29 className="flex1"
30 views={VIEWS}
31 options={OPTIONS}
32 currentTab={tab}
33 onTabChange={onTabChange}
34 setSubmitting={setSubmitting}
35 />
36 );
37};
39const NAMES = {
40 MAIL: 'MAIL',
41 URL: 'URL',
42};
44const VIEWS = {
45 [NAMES.MAIL]: InviteMail,
46 [NAMES.URL]: InviteUrl,
47};
49const OPTIONS = [
50 { text: 'Email', value: NAMES.MAIL },
51 { text: 'URL', value: NAMES.URL },
52];
54export default Inviter;