mirror of
https://github.com/kamranahmedse/developer-roadmap.git
synced 2026-03-12 17:51:53 +08:00
chore: resend invite
This commit is contained in:
@@ -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(() => {
|
||||
|
||||
Reference in New Issue
Block a user