chore: resend invite

chore/team-member
Arik Chakma 1 year 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,
onUpdateMember,
onDeleteMember,
onResendInvite,
isDisabled = false,
}: {
onDeleteMember: () => void;
onUpdateMember: () => void;
onResendInvite: () => void;
isDisabled: boolean;
member: TeamMemberDocument;
}) {
@ -25,22 +27,6 @@ export function MemberActionDropdown({
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 = [
{
name: 'Delete',
@ -58,11 +44,14 @@ export function MemberActionDropdown({
},
...(['invited'].includes(member.status)
? [
{
name: 'Resend Invite',
handleClick: resendInvite,
},
]
{
name: 'Resend Invite',
handleClick: () => {
onResendInvite();
setIsOpen(false);
},
},
]
: []),
];
return (

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

@ -112,6 +112,23 @@ export function TeamMembersPage() {
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) {
pageProgressMessage.set('Sending Reminder');
const { response, error } = await httpPatch(
@ -188,6 +205,11 @@ export function TeamMembersPage() {
index={index}
teamId={teamId}
userId={user?.id!}
onResendInvite={() => {
resendInvite(teamId, member._id!).finally(() => {
pageProgressMessage.set('');
});
}}
canManageCurrentTeam={canManageCurrentTeam}
handleDeleteMember={() => {
deleteMember(teamId, member._id!).finally(() => {
@ -219,6 +241,11 @@ export function TeamMembersPage() {
index={index}
teamId={teamId}
userId={user?.id!}
onResendInvite={() => {
resendInvite(teamId, member._id!).finally(() => {
pageProgressMessage.set('');
});
}}
canManageCurrentTeam={canManageCurrentTeam}
handleDeleteMember={() => {
deleteMember(teamId, member._id!).finally(() => {
@ -252,6 +279,11 @@ export function TeamMembersPage() {
index={index}
teamId={teamId}
userId={user?.id!}
onResendInvite={() => {
resendInvite(teamId, member._id!).finally(() => {
pageProgressMessage.set('');
});
}}
canManageCurrentTeam={canManageCurrentTeam}
handleDeleteMember={() => {
deleteMember(teamId, member._id!).finally(() => {

Loading…
Cancel
Save