import { useState } from "react"; import * as React from "react"; import { useNavigate } from "react-router-dom"; import { userService } from "@/services/user"; import OperationDialog from "@/views/common/dialog/OperationDialog"; export interface ChangePasswordDialogProps { open: boolean; close: () => void; } const ChangePasswordDialog: React.FC = (props) => { const navigate = useNavigate(); const [redirect, setRedirect] = useState(false); return ( { const result: Record = {}; if (oldPassword === "") { result[0] = "settings.dialogChangePassword.errorEmptyOldPassword"; } if (newPassword === "") { result[1] = "settings.dialogChangePassword.errorEmptyNewPassword"; } if (retypedNewPassword !== newPassword) { result[2] = "settings.dialogChangePassword.errorRetypeNotMatch"; } return result; }} onProcess={async ([oldPassword, newPassword]) => { await userService.changePassword(oldPassword, newPassword); setRedirect(true); }} onClose={() => { props.close(); if (redirect) { navigate("/login"); } }} /> ); }; export default ChangePasswordDialog;