import { ErrorBoundary } from "./error"; import Locale, { AllLangs, changeLang, getLang } from "../locales"; import ChatIcon from "../icons/chatgpt.svg"; import styles from "./login.module.scss"; import { IconButton } from "./button"; import { useUserStore } from "../store"; import { Component, useCallback, useEffect, useState } from "react"; import Image from "next/image"; import { encrypt } from "../rsaEncrypt"; export function Login() { const userStore = useUserStore(); const [user, setUser] = useState(""); const [status, setStatus] = useState(""); const [password, setPassword] = useState(""); const [code, setCode] = useState(""); const [img, setImg] = useState(""); const onUser = (text: string) => { setUser(text); }; const onPassword = (text: string) => { setPassword(text); }; const onCode = (text: string) => { setCode(text); }; const loginTo = async () => { setStatus("false"); await userStore.login(user, String(encrypt(password)), code); setTimeout(() => { setStatus(""); }, 4000); getCode(); }; async function getCode() { let img = await userStore.getCode(); setImg(img); } useEffect(() => { getCode() }, []); return (
{Locale.User.Login}
{Locale.User.LoginTitle}
onUser(e.currentTarget.value)} value={user} >
onPassword(e.currentTarget.value)} value={password} >
onCode(e.currentTarget.value)} value={code} > 验证码
{Locale.User.Findpwd} {Locale.User.Register}
{ loginTo(); }} >
); }