summaryrefslogtreecommitdiff
path: root/src/pages/LogIn.tsx
diff options
context:
space:
mode:
authorSam Nystrom <sam@samnystrom.dev>2024-03-12 14:52:25 +0000
committerSam Nystrom <sam@samnystrom.dev>2024-03-12 17:34:56 -0400
commita9aa246f58dcb2664c4e7a1bd98e69c19e7d7000 (patch)
tree2795ec23ec748024dd863215a9735cb8c3825579 /src/pages/LogIn.tsx
parent367fe51e7e1c55e39299e2e667ca4f399a474019 (diff)
Add rudimentary backend and auth
Diffstat (limited to 'src/pages/LogIn.tsx')
-rw-r--r--src/pages/LogIn.tsx33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/pages/LogIn.tsx b/src/pages/LogIn.tsx
new file mode 100644
index 0000000..c787dce
--- /dev/null
+++ b/src/pages/LogIn.tsx
@@ -0,0 +1,33 @@
+import { useContext } from 'preact/hooks';
+import { useSignal } from '@preact/signals';
+import { route } from 'preact-router';
+import { Pb } from '../pb.ts';
+
+export const LogIn = () => {
+ const pb = useContext(Pb);
+
+ const email = useSignal('');
+ const password = useSignal('');
+
+ const onSubmit = async (event: SubmitEvent) => {
+ event.preventDefault();
+ const user = await pb.collection('users').authWithPassword(email.value, password.value);
+ if (pb.authStore.isValid) {
+ route('/' + user.username);
+ }
+ };
+
+ return (
+ <form onSubmit={onSubmit}>
+ <label>
+ Email:
+ <input type="text" value={email} onInput={e => email.value = e.target.value} />
+ </label>
+ <label>
+ Password:
+ <input type="password" value={password} onInput={e => password.value = e.target.value} />
+ </label>
+ <button>Log In</button>
+ </form>
+ );
+}; \ No newline at end of file