import { useState } from "react"; import { Redirect, useLocation } from "wouter"; import { trpc } from "@/lib/trpc"; import { useAuth } from "@/_core/hooks/useAuth"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; export default function Login() { const { user, loading } = useAuth(); const [, setLocation] = useLocation(); const utils = trpc.useUtils(); const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const login = trpc.auth.login.useMutation({ onSuccess: async (signedInUser) => { utils.auth.me.setData(undefined, signedInUser); await utils.auth.me.invalidate(); setLocation(signedInUser.mustChangePassword === 1 ? "/change-password" : "/"); }, }); if (!loading && user) return ; return (
{ event.preventDefault(); login.mutate({ username, password }); }} >

宏量点云处理系统

使用本地账号登录

setUsername(e.target.value)} required />
setPassword(e.target.value)} required />
{login.error &&

{login.error.message}

}
); }