import { PencilSquare, Trash } from "@medusajs/icons" import { HttpTypes } from "@medusajs/types" import { Container, Heading, Text, toast, usePrompt } from "@medusajs/ui" import { useTranslation } from "react-i18next" import { useNavigate } from "react-router-dom" import { ActionMenu } from "../../../../../components/common/action-menu" import { useDeleteUser } from "../../../../../hooks/api/users" type UserGeneralSectionProps = { user: HttpTypes.AdminUser } export const UserGeneralSection = ({ user }: UserGeneralSectionProps) => { const { t } = useTranslation() const navigate = useNavigate() const prompt = usePrompt() const { mutateAsync } = useDeleteUser(user.id) const name = [user.first_name, user.last_name].filter(Boolean).join(" ") const handleDeleteUser = async () => { const res = await prompt({ title: t("general.areYouSure"), description: t("users.deleteUserWarning", { name: name ?? user.email, }), verificationText: name ?? user.email, verificationInstruction: t("general.typeToConfirm"), confirmText: t("actions.delete"), cancelText: t("actions.cancel"), }) if (!res) { return } await mutateAsync(undefined, { onSuccess: () => { toast.success(t("users.deleteUserSuccess", { name: user.email })) navigate("..") }, onError: (error) => { toast.error(error.message) }, }) } return (
{user.email} , }, ], }, { actions: [ { label: t("actions.delete"), onClick: handleDeleteUser, icon: , }, ], }, ]} />
{t("fields.name")} {name ?? "-"}
) }