"use client"; import { UserCheckIcon } from "lucide-react"; import { useTranslations } from "next-intl"; import { useState } from "react"; import { errorToast } from "../../../../components"; import { Modules } from "../../../../core"; import { Action } from "../../../../permissions"; import { Button, Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger, } from "../../../../shadcnui"; import { useCurrentUserContext } from "../../contexts"; import { UserInterface } from "../../data"; import { UserService } from "../../data/user.service"; type UserReactivatorProps = { user: UserInterface; propagateChanges: (user: UserInterface) => void; }; function UserReactivatorInterface({ user, propagateChanges }: UserReactivatorProps) { const [open, setOpen] = useState(false); const t = useTranslations(); const reactivateUser = async () => { try { const updatedUser = (await UserService.reactivate({ userId: user.id })) as UserInterface; setOpen(false); propagateChanges(updatedUser); } catch (error) { errorToast({ title: t(`common.errors.error`), error: error }); } }; return ( {t(`user.reactivate.title`)} {t(`user.reactivate.subtitle`)} {t(`user.reactivate.description`, { name: user.name })}
); } export function UserReactivator(props: UserReactivatorProps) { const { hasPermissionToModule } = useCurrentUserContext(); if (!hasPermissionToModule({ module: Modules.User, action: Action.Update, data: props.user })) return null; return ; }