"use client"; import { MailIcon } from "lucide-react"; import { useTranslations } from "next-intl"; import { useState } from "react"; import { showToast } from "../../../../utils/toast"; import { errorToast } from "../../../../components"; import { Modules } from "../../../../core"; import { Action } from "../../../../permissions"; import { Button, Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger, Tooltip, TooltipContent, TooltipTrigger, } from "../../../../shadcnui"; import { useCurrentUserContext } from "../../contexts"; import { UserInterface } from "../../data"; import { UserService } from "../../data/user.service"; type UserResentInvitationEmailProps = { user: UserInterface; }; function UserResentInvitationEmailInternal({ user }: UserResentInvitationEmailProps) { const [open, setOpen] = useState(false); const t = useTranslations(); const sendInvitationEmail = async () => { try { await UserService.sendInvitation({ userId: user.id, companyId: user.company!.id }); setOpen(false); showToast(t(`user.resend_activation.email_sent`), { description: t(`user.resend_activation.email_sent_description`, { email: user.email }), }); } catch (error) { errorToast({ title: t(`common.errors.error`), error: error }); } }; return ( {t(`user.buttons.resend_activation`)} {t(`user.resend_activation.title`)} {t(`user.resend_activation.subtitle`)} {t(`user.resend_activation.description`, { email: user.email })}
); } export function UserResentInvitationEmail(props: UserResentInvitationEmailProps) { const { hasPermissionToModule } = useCurrentUserContext(); if (!hasPermissionToModule({ module: Modules.User, action: Action.Update, data: props.user })) return null; return ; }