import { Button, Input } from "@usememos/mui"; import { XIcon } from "lucide-react"; import { useEffect, useState } from "react"; import { toast } from "react-hot-toast"; import { userStore } from "@/store/v2"; import { User } from "@/types/proto/api/v1/user_service"; import { useTranslate } from "@/utils/i18n"; import { generateDialog } from "./Dialog"; interface Props extends DialogProps { user: User; } const ChangeMemberPasswordDialog: React.FC = (props: Props) => { const { user, destroy } = props; const t = useTranslate(); const [newPassword, setNewPassword] = useState(""); const [newPasswordAgain, setNewPasswordAgain] = useState(""); useEffect(() => { // do nth }, []); const handleCloseBtnClick = () => { destroy(); }; const handleNewPasswordChanged = (e: React.ChangeEvent) => { const text = e.target.value as string; setNewPassword(text); }; const handleNewPasswordAgainChanged = (e: React.ChangeEvent) => { const text = e.target.value as string; setNewPasswordAgain(text); }; const handleSaveBtnClick = async () => { if (newPassword === "" || newPasswordAgain === "") { toast.error(t("message.fill-all")); return; } if (newPassword !== newPasswordAgain) { toast.error(t("message.new-password-not-match")); setNewPasswordAgain(""); return; } try { await userStore.updateUser( { name: user.name, password: newPassword, }, ["password"], ); toast(t("message.password-changed")); handleCloseBtnClick(); } catch (error: any) { console.error(error); toast.error(error.details); } }; return (

{t("setting.account-section.change-password")} ({user.displayName})

{t("auth.new-password")}

{t("auth.repeat-new-password")}

); }; function showChangeMemberPasswordDialog(user: User) { generateDialog( { className: "change-member-password-dialog", dialogName: "change-member-password-dialog", }, ChangeMemberPasswordDialog, { user }, ); } export default showChangeMemberPasswordDialog;