import { useState } from "react"; import { useNavigate } from "react-router-dom"; import Logo from "./Logo"; import usePluginSettings from "./utils/settings"; import { api } from "./utils/trpc"; 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, apiKeyId: resp.id })); 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}