import { useState } from "react"; import { StyledDialog } from "@/core/components/StyledDialog"; import type { DialogProps } from "@/core/types"; import { useUserStore } from "@/state/user"; import api from "@/core/api"; import { MaterialButton, MaterialIconButton, MaterialSwitch, MaterialTextField } from "@/utils/material"; import styles from "@/pages/chat/css/changePasswordDialog.module.scss"; export default function ChangePasswordDialog({ isOpen, onOpenChange }: DialogProps) { const { user } = useUserStore(); const [current, setCurrent] = useState(""); const [next, setNext] = useState(""); const [confirm, setConfirm] = useState(""); const [logoutAll, setLogoutAll] = useState(true); const [busy, setBusy] = useState(false); return (
onOpenChange(false)}>
Изменить пароль
{ e.preventDefault(); if (!user.authToken || !user.currentUser?.username) return; if (!current || !next || next !== confirm) return; setBusy(true); try { await api.user.auth.changePassword(user.authToken, user.currentUser?.username, current, next, logoutAll); setCurrent(""); setNext(""); setConfirm(""); onOpenChange(false); } finally { setBusy(false); } }}> setCurrent(e.target.value)} variant="outlined" toggle-password required /> setNext(e.target.value)} variant="outlined" toggle-password required /> setConfirm(e.target.value)} variant="outlined" toggle-password required />
setLogoutAll(e.target.checked)} />
Сохранить
); }