import React from 'react'; import { useTranslation } from 'next-i18next'; import PropTypes from 'prop-types'; import AdminUsersContainer from '~/client/services/AdminUsersContainer'; import { apiv3Put } from '~/client/util/apiv3-client'; import { toastError, toastSuccess } from '~/client/util/toastr'; import { withUnstatedContainers } from '../../UnstatedUtils'; const SendInvitationEmailButton = (props) => { const { user, isInvitationEmailSended, onSuccessfullySentInvitationEmail } = props; const { t } = useTranslation(); const textColor = !isInvitationEmailSended ? 'text-danger' : ''; const onClickSendInvitationEmailButton = async () => { try { const res = await apiv3Put('/users/send-invitation-email', { id: user._id, }); const { failedToSendEmail } = res.data; if (failedToSendEmail == null) { const msg = `Email has been sent
・${user.email}`; toastSuccess(msg); onSuccessfullySentInvitationEmail(); } else { const msg = { message: `email: ${failedToSendEmail.email}
reason: ${failedToSendEmail.reason}`, }; toastError(msg); } } catch (err) { toastError(err); } }; return ( ); }; const SendInvitationEmailButtonWrapper = withUnstatedContainers( SendInvitationEmailButton, [AdminUsersContainer], ); SendInvitationEmailButton.propTypes = { user: PropTypes.object.isRequired, isInvitationEmailSended: PropTypes.bool.isRequired, onSuccessfullySentInvitationEmail: PropTypes.func.isRequired, }; export default SendInvitationEmailButtonWrapper;