import { useAdminCreateInvite } from "medusa-react" import React from "react" import { Controller, useForm } from "react-hook-form" import { useTranslation } from "react-i18next" import useNotification from "../../../hooks/use-notification" import { Role } from "../../../types/shared" import { getErrorMessage } from "../../../utils/error-messages" import Button from "../../fundamentals/button" import InputField from "../../molecules/input" import Modal from "../../molecules/modal" import { NextSelect } from "../../molecules/select/next-select" type InviteModalProps = { handleClose: () => void } type InviteModalFormData = { user: string role: Role } const InviteModal: React.FC = ({ handleClose }) => { const notification = useNotification() const { t } = useTranslation() const { mutate, isLoading } = useAdminCreateInvite() const { control, register, handleSubmit } = useForm() const onSubmit = (data: InviteModalFormData) => { mutate( { user: data.user, role: data.role.value, }, { onSuccess: () => { notification( t("invite-modal-success", "Success"), t( "invite-modal-invitation-sent-to", "Invitation sent to {{user}}", { user: data.user, } ), "success" ) handleClose() }, onError: (error) => { notification( t("invite-modal-error", "Error"), getErrorMessage(error), "error" ) }, } ) } const roleOptions: Role[] = [ { value: "member", label: t("invite-modal-member", "Member") }, { value: "admin", label: t("invite-modal-admin", "Admin") }, { value: "developer", label: t("invite-modal-developer", "Developer") }, ] return (
{t("invite-modal-invite-users", "Invite Users")}
{ return ( ) }} />
) } export default InviteModal