import { useState } from "react"; import { api } from "./utils/trpc"; import usePluginSettings from "./utils/settings"; import { useNavigate } from "react-router-dom"; import Logo from "./Logo"; export default function SignInPage() { const navigate = useNavigate(); const { setSettings } = usePluginSettings(); const { mutate: login, error, isPending, } = api.apiKeys.exchange.useMutation({ onSuccess: (resp) => { setSettings((s) => ({ ...s, apiKey: resp.key })); navigate("/options"); }, }); const [formData, setFormData] = useState<{ email: string; password: string; }>({ email: "", password: "", }); const onSubmit = (e: React.FormEvent) => { e.preventDefault(); const randStr = (Math.random() + 1).toString(36).substring(5); login({ ...formData, keyName: `Browser extension: (${randStr})` }); }; let errorMessage = ""; if (error) { if (error.data?.code == "UNAUTHORIZED") { errorMessage = "Wrong username or password"; } else { errorMessage = error.message; } } return (

Login

{errorMessage}

setFormData((f) => ({ ...f, email: e.target.value })) } type="text" name="email" className="h-8 flex-1 rounded-lg border border-gray-300 p-2" />
setFormData((f) => ({ ...f, password: e.target.value, })) } type="password" name="password" className="h-8 flex-1 rounded-lg border border-gray-300 p-2" />
); }