diff --git a/frontend/src/pages/Login.tsx b/frontend/src/pages/Login.tsx index ac6ac55a..0a3cab85 100644 --- a/frontend/src/pages/Login.tsx +++ b/frontend/src/pages/Login.tsx @@ -6,18 +6,20 @@ import Button from '../components/Button'; import signIn from '../api/actions/signIn'; const Login = () => { + useColours(); + + const navigate = useNavigate(); + const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const [saveLogin, setSaveLogin] = useState(false); - const navigate = useNavigate(); - - useColours(); - - const form_error = false; + const [errorMessage, setErrorMessage] = useState(null); const handleSubmit = async (event: { preventDefault: () => void }) => { event.preventDefault(); + setErrorMessage(null); + const loginResponse = await signIn(username, password, saveLogin); const signedIn = loginResponse.status === 200; @@ -25,6 +27,8 @@ const Login = () => { if (signedIn) { navigate(Routes.Home); } else { + const data = await loginResponse.json(); + setErrorMessage(data?.message || 'Unknown Error'); navigate(Routes.Login); } }; @@ -37,7 +41,13 @@ const Login = () => {

Tube Archivist

Your Self Hosted YouTube Media Server

- {form_error &&

Failed to login.

} + {errorMessage !== null && ( +

+ Failed to login. +
+ {errorMessage} +

+ )}
{ value={username} onChange={event => setUsername(event.target.value)} /> +
+ { value={password} onChange={event => setPassword(event.target.value)} /> +
+

Remember me:{' '} { }} />

+ +