shoc-frontend-new/src/app/(protected)/team-members/_components/resend-invite-button.tsx

26 lines
887 B
TypeScript

import { Mail } from "lucide-react";
import { Button } from "@/components/ui/button";
import type { TeamMemberDetail } from "@/domain/team-members/types/team-member";
import { useResendTeamMemberInvite } from "@/domain/team-members/use-cases/use-resend-team-member-invite";
/** Re-sends the registration invite to an active member who has not registered yet. */
export function ResendInviteButton({ member }: { member: TeamMemberDetail }) {
const resendInvite = useResendTeamMemberInvite();
if (!member.pendingRegistration || member.status !== "Active") {
return null;
}
return (
<Button
variant="outline"
onClick={() => resendInvite.mutate({ id: member.id, email: member.email })}
loading={resendInvite.isPending}
loadingText="Sending…"
startIcon={<Mail size={15} aria-hidden="true" />}
>
Resend invite
</Button>
);
}