client/app/pages/users/components/PasswordForm/index.jsx (32 lines of code) (raw):

import React, { useCallback } from "react"; import Button from "antd/lib/button"; import DynamicComponent from "@/components/DynamicComponent"; import { UserProfile } from "@/components/proptypes"; import { currentUser } from "@/services/auth"; import ChangePasswordDialog from "./ChangePasswordDialog"; import PasswordResetForm from "./PasswordResetForm"; import ResendInvitationForm from "./ResendInvitationForm"; export default function PasswordForm(props) { const { user } = props; const changePassword = useCallback(() => { ChangePasswordDialog.showModal({ user }); }, [user]); return ( <DynamicComponent name="UserProfile.PasswordForm" {...props}> <h5>Password</h5> {user.id === currentUser.id && ( <Button className="w-100 m-t-10" onClick={changePassword} data-test="ChangePassword"> Change Password </Button> )} {user.id !== currentUser.id && currentUser.isAdmin && ( <React.Fragment> {user.isInvitationPending ? <ResendInvitationForm user={user} /> : <PasswordResetForm user={user} />} </React.Fragment> )} </DynamicComponent> ); } PasswordForm.propTypes = { user: UserProfile.isRequired, };