chore: resend invite

chore/team-member
Arik Chakma 2 years ago
parent 23dfdd37e5
commit a92880879e
  1. 31
      src/components/TeamMembers/MemberActionDropdown.tsx
  2. 4
      src/components/TeamMembers/TeamMemberItem.tsx
  3. 32
      src/components/TeamMembers/TeamMembersPage.tsx

@ -9,10 +9,12 @@ export function MemberActionDropdown({
member, member,
onUpdateMember, onUpdateMember,
onDeleteMember, onDeleteMember,
onResendInvite,
isDisabled = false, isDisabled = false,
}: { }: {
onDeleteMember: () => void; onDeleteMember: () => void;
onUpdateMember: () => void; onUpdateMember: () => void;
onResendInvite: () => void;
isDisabled: boolean; isDisabled: boolean;
member: TeamMemberDocument; member: TeamMemberDocument;
}) { }) {
@ -25,22 +27,6 @@ export function MemberActionDropdown({
setIsOpen(false); setIsOpen(false);
}); });
async function resendInvite() {
const { response, error } = await httpPatch(
`${import.meta.env.PUBLIC_API_URL}/v1-resend-invite/${member.teamId}/${member._id
}`,
{}
);
if (error || !response) {
setIsLoading(false);
toast.error(error?.message || 'Something went wrong');
return;
}
window.location.reload();
}
const actions = [ const actions = [
{ {
name: 'Delete', name: 'Delete',
@ -58,11 +44,14 @@ export function MemberActionDropdown({
}, },
...(['invited'].includes(member.status) ...(['invited'].includes(member.status)
? [ ? [
{ {
name: 'Resend Invite', name: 'Resend Invite',
handleClick: resendInvite, handleClick: () => {
}, onResendInvite();
] setIsOpen(false);
},
},
]
: []), : []),
]; ];
return ( return (

@ -12,13 +12,14 @@ type TeamMemberProps = {
handleDeleteMember: () => void; handleDeleteMember: () => void;
onUpdateMember: () => void; onUpdateMember: () => void;
handleSendReminder: () => void; handleSendReminder: () => void;
onResendInvite: () => void;
}; };
export function TeamMemberItem(props: TeamMemberProps) { export function TeamMemberItem(props: TeamMemberProps) {
const { const {
member, member,
index, index,
teamId, onResendInvite,
onUpdateMember, onUpdateMember,
canManageCurrentTeam, canManageCurrentTeam,
userId, userId,
@ -100,6 +101,7 @@ export function TeamMemberItem(props: TeamMemberProps) {
</span> </span>
{canManageCurrentTeam && ( {canManageCurrentTeam && (
<MemberActionDropdown <MemberActionDropdown
onResendInvite={onResendInvite}
onDeleteMember={handleDeleteMember} onDeleteMember={handleDeleteMember}
isDisabled={member.userId === userId} isDisabled={member.userId === userId}
onUpdateMember={onUpdateMember} onUpdateMember={onUpdateMember}

@ -112,6 +112,23 @@ export function TeamMembersPage() {
await getTeamMemberList(); await getTeamMemberList();
} }
async function resendInvite(teamId: string, memberId: string) {
pageProgressMessage.set('Resending Invite');
const { response, error } = await httpPatch(
`${
import.meta.env.PUBLIC_API_URL
}/v1-resend-invite/${teamId}/${memberId}`,
{}
);
if (error || !response) {
toast.error(error?.message || 'Something went wrong');
return;
}
toast.success('Invite has been sent');
}
async function handleSendReminder(teamId: string, memberId: string) { async function handleSendReminder(teamId: string, memberId: string) {
pageProgressMessage.set('Sending Reminder'); pageProgressMessage.set('Sending Reminder');
const { response, error } = await httpPatch( const { response, error } = await httpPatch(
@ -188,6 +205,11 @@ export function TeamMembersPage() {
index={index} index={index}
teamId={teamId} teamId={teamId}
userId={user?.id!} userId={user?.id!}
onResendInvite={() => {
resendInvite(teamId, member._id!).finally(() => {
pageProgressMessage.set('');
});
}}
canManageCurrentTeam={canManageCurrentTeam} canManageCurrentTeam={canManageCurrentTeam}
handleDeleteMember={() => { handleDeleteMember={() => {
deleteMember(teamId, member._id!).finally(() => { deleteMember(teamId, member._id!).finally(() => {
@ -219,6 +241,11 @@ export function TeamMembersPage() {
index={index} index={index}
teamId={teamId} teamId={teamId}
userId={user?.id!} userId={user?.id!}
onResendInvite={() => {
resendInvite(teamId, member._id!).finally(() => {
pageProgressMessage.set('');
});
}}
canManageCurrentTeam={canManageCurrentTeam} canManageCurrentTeam={canManageCurrentTeam}
handleDeleteMember={() => { handleDeleteMember={() => {
deleteMember(teamId, member._id!).finally(() => { deleteMember(teamId, member._id!).finally(() => {
@ -252,6 +279,11 @@ export function TeamMembersPage() {
index={index} index={index}
teamId={teamId} teamId={teamId}
userId={user?.id!} userId={user?.id!}
onResendInvite={() => {
resendInvite(teamId, member._id!).finally(() => {
pageProgressMessage.set('');
});
}}
canManageCurrentTeam={canManageCurrentTeam} canManageCurrentTeam={canManageCurrentTeam}
handleDeleteMember={() => { handleDeleteMember={() => {
deleteMember(teamId, member._id!).finally(() => { deleteMember(teamId, member._id!).finally(() => {

Loading…
Cancel
Save