From 7e9609fa79df744651dc6b3368f91cef3f1dbed7 Mon Sep 17 00:00:00 2001 From: Michael Fatemi Date: Thu, 24 Jun 2021 11:35:31 -0400 Subject: [PATCH] add button for joining group --- src/components/NewUI/GroupJoinerLink.tsx | 51 ++++++++++++++++++++++++ src/components/NewUI/Groups.tsx | 13 +++++- 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 src/components/NewUI/GroupJoinerLink.tsx diff --git a/src/components/NewUI/GroupJoinerLink.tsx b/src/components/NewUI/GroupJoinerLink.tsx new file mode 100644 index 0000000..099734f --- /dev/null +++ b/src/components/NewUI/GroupJoinerLink.tsx @@ -0,0 +1,51 @@ +import { useCallback, useState } from 'react'; +import UIButton from './UIButton'; +import UIPressable from './UIPressable'; +import UISecondaryBox from './UISecondaryBox'; +import UITextInput from './UITextInput'; + +function GroupJoiner() { + const [code, setCode] = useState(''); + const [joining, setJoining] = useState(false); + const join = useCallback(() => { + if (code) { + console.log('Joining a group with the code', code); + setJoining(true); + setTimeout(() => { + setJoining(false); + }, 500); + } + }, [code]); + + const buttonEnabled = code.length > 0 && !joining; + + return ( + +

Join Group

+ Code + + + {joining ? 'Joining' : 'Join'} + +
+ ); +} + +export default function GroupJoinerLink() { + const [open, setOpen] = useState(false); + const toggle = useCallback(() => { + setOpen((open) => !open); + }, []); + + return ( + <> + Join Group + {open && ( + <> +
+ + + )} + + ); +} diff --git a/src/components/NewUI/Groups.tsx b/src/components/NewUI/Groups.tsx index edb37dc..149e172 100644 --- a/src/components/NewUI/Groups.tsx +++ b/src/components/NewUI/Groups.tsx @@ -1,6 +1,7 @@ import { useState, useEffect } from 'react'; import { IGroup } from './Group'; import GroupCreatorLink from './GroupCreatorLink'; +import GroupJoinerLink from './GroupJoinerLink'; import GroupList from './GroupList'; export default function Groups() { @@ -15,9 +16,19 @@ export default function Groups() { return ( <>

Groups

+ +

- + {groups.length > 0 ? ( + + ) : ( + + You aren't in any groups. You can create your own by clicking 'create + group' above, or join one by asking an admin of the group to send you + an invite link. + + )} ); }