import { msg } from '@lingui/core/macro'; import { useLingui } from '@lingui/react'; import { Trans } from '@lingui/react/macro'; import { Edit, Loader, Mail, MoreHorizontal, X } from 'lucide-react'; import type { getTeamByUrl } from '@documenso/lib/server-only/team/get-team'; import { trpc } from '@documenso/trpc/react'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '@documenso/ui/primitives/dropdown-menu'; import { useToast } from '@documenso/ui/primitives/use-toast'; import { TeamEmailDeleteDialog } from '~/components/dialogs/team-email-delete-dialog'; import { TeamEmailUpdateDialog } from '~/components/dialogs/team-email-update-dialog'; export type TeamEmailDropdownProps = { team: Awaited>; }; export const TeamEmailDropdown = ({ team }: TeamEmailDropdownProps) => { const { _ } = useLingui(); const { toast } = useToast(); const { mutateAsync: resendEmailVerification, isPending: isResendingEmailVerification } = trpc.team.email.verification.resend.useMutation({ onSuccess: () => { toast({ title: _(msg`Success`), description: _(msg`Email verification has been resent`), duration: 5000, }); }, onError: () => { toast({ title: _(msg`Something went wrong`), description: _(msg`Unable to resend verification at this time. Please try again.`), variant: 'destructive', duration: 10000, }); }, }); return ( {!team.teamEmail && team.emailVerification && ( { e.preventDefault(); void resendEmailVerification({ teamId: team.id }); }} > {isResendingEmailVerification ? ( ) : ( )} Resend verification )} {team.teamEmail && ( e.preventDefault()}> Edit } /> )} e.preventDefault()}> Remove } /> ); };