This repository has been archived on 2025-07-20. You can view files and clone it, but cannot push or open issues or pull requests.
fediswald/apps/frontend/src/components/pages/LoginPage.tsx

52 lines
1.5 KiB
TypeScript
Raw Normal View History

import { useState } from 'react';
import { useAuthStore } from '../../auth/authStore';
/* Components */
import TextField from '../inputs/TextField';
import Button from '../inputs/Button';
export default function LoginPage() {
const setAccessToken = useAuthStore((s) => s.setAccessToken);
const [email, _email] = useState('');
const [password, _password] = useState('');
const login = async () => {
const res = await fetch(`${import.meta.env.VITE_SERVER}/login`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
credentials: 'include',
body: JSON.stringify({
email,
password,
}),
});
const data = await res.json();
setAccessToken(data.accessToken);
};
return (<div className="flex flex-col grow max-h-screen overflow-hidden p-10">
<main className="flex flex-col grow h-full w-1/3">
<TextField
label='E-mail'
name="email"
value={email}
onChange={_email}
/>
<TextField
label='Password'
inputType="password"
name="password"
value={password}
onChange={_password}
/>
<div>
<Button onClick={login} label="Login" />
</div>
</main>
</div>
);
}