import { useState } from "react"; import { useNavigate } from "react-router-dom"; import { userService } from "~src/services/user"; import { OperationDialog } from "~src/components/dialog"; interface ChangePasswordDialogProps { open: boolean; onClose: () => void; } export function ChangePasswordDialog(props: ChangePasswordDialogProps) { const { open, onClose } = props; const navigate = useNavigate(); const [redirect, setRedirect] = useState(false); return ( { if (oldPassword === "") { errors["oldPassword"] = "settings.dialogChangePassword.errorEmptyOldPassword"; } if (newPassword === "") { errors["newPassword"] = "settings.dialogChangePassword.errorEmptyNewPassword"; } if (retypedNewPassword !== newPassword) { errors["retypedNewPassword"] = "settings.dialogChangePassword.errorRetypeNotMatch"; } }, }} onProcess={async ({ oldPassword, newPassword }) => { await userService.changePassword(oldPassword, newPassword); setRedirect(true); }} onSuccessAndClose={() => { if (redirect) { navigate("/login"); } }} /> ); } export default ChangePasswordDialog;