client/app/pages/users/components/PasswordForm/ResendInvitationForm.jsx (32 lines of code) (raw):
import React, { useState, useCallback } from "react";
import Button from "antd/lib/button";
import DynamicComponent from "@/components/DynamicComponent";
import { UserProfile } from "@/components/proptypes";
import User from "@/services/user";
import PasswordLinkAlert from "./PasswordLinkAlert";
export default function ResendInvitationForm(props) {
const { user } = props;
const [loading, setLoading] = useState(false);
const [passwordLink, setPasswordLink] = useState(null);
const resendInvitation = useCallback(() => {
setLoading(true);
User.resendInvitation(user)
.then(passwordLink => {
setPasswordLink(passwordLink);
})
.finally(() => {
setLoading(false);
});
}, [user]);
return (
<DynamicComponent name="UserProfile.ResendInvitationForm" {...props}>
<Button className="w-100 m-t-10" onClick={resendInvitation} loading={loading}>
Resend Invitation
</Button>
<PasswordLinkAlert user={user} passwordLink={passwordLink} afterClose={() => setPasswordLink(null)} />
</DynamicComponent>
);
}
ResendInvitationForm.propTypes = {
user: UserProfile.isRequired,
};