import React, { useState } from "react"; import { goTo } from "react-chrome-extension-router"; import { Popup } from "../popup"; import { BACKEND_URL } from "../env"; export const LoginForm = () => { const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(''); const [loading, setLoading] = useState(false); const validateForm = () => { if (!username || !password) { setError('Username and password are required'); return false; } setError(''); return true; }; const handleSubmit = async (event: { preventDefault: () => void; }) => { event.preventDefault(); if (!validateForm()) return; setLoading(true); const formDetails = new URLSearchParams(); formDetails.append('username', username); formDetails.append('password', password); try { const response = await fetch(`${BACKEND_URL}/token`, { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, body: formDetails, }); setLoading(false); if (response.ok) { const data = await response.json(); localStorage.setItem('token', data.access_token); goTo(Popup); } else { const errorData = await response.json(); setError(errorData.detail || 'Authentication failed!'); } } catch (error) { setLoading(false); setError('An error occurred. Please try again later.'); } }; // const goToRegister = async () => { // console.log("Reg") // goTo(RegisterForm) // } return ( <>
{/*
clearMem}>CLEAR MEM
*/}
logo SurfSense

Sign in to your account

setUsername(e.target.value)} name="email" id="email" className="bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" placeholder="name" />
setPassword(e.target.value)} name="password" id="password" placeholder="••••••••" className="bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" />

Don’t have an account yet? Sign up

{error &&

{error}

}
); }