From 28d0443f4426519a49b2bef68427c3504be1ad69 Mon Sep 17 00:00:00 2001 From: Alexander Zinn Date: Wed, 22 Oct 2025 06:55:28 -0400 Subject: [PATCH] add login feature --- config/development/config.yml | 0 config/production/config.yml | 0 .npmrc => frontend/.npmrc | 0 .nvmrc => frontend/.nvmrc | 0 .prettierrc => frontend/.prettierrc | 0 frontend/src/components/LoginDialog.tsx | 16 +- frontend/src/hooks/useAuth.ts | 41 +- frontend/src/types/index.ts | 2 +- server/.gitignore | 5 + server/.npmrc | 3 + server/.nvmrc | 1 + server/.prettierrc | 12 + server/bun.lock | 87 +- server/package-lock.json | 1108 ----------------- server/package.json | 7 +- server/prisma/migrations/0_init/migration.sql | 29 + server/prisma/migrations/migration_lock.toml | 3 + server/prisma/schema.prisma | 18 + server/src/auth/Authenticator.ts | 17 + server/src/index.ts | 6 +- server/src/routes/Users.ts | 54 + server/src/server.ts | 14 +- 22 files changed, 287 insertions(+), 1136 deletions(-) create mode 100644 config/development/config.yml create mode 100644 config/production/config.yml rename .npmrc => frontend/.npmrc (100%) rename .nvmrc => frontend/.nvmrc (100%) rename .prettierrc => frontend/.prettierrc (100%) create mode 100644 server/.gitignore create mode 100644 server/.npmrc create mode 100644 server/.nvmrc create mode 100644 server/.prettierrc delete mode 100644 server/package-lock.json create mode 100644 server/prisma/migrations/0_init/migration.sql create mode 100644 server/prisma/migrations/migration_lock.toml create mode 100644 server/prisma/schema.prisma create mode 100644 server/src/auth/Authenticator.ts create mode 100644 server/src/routes/Users.ts diff --git a/config/development/config.yml b/config/development/config.yml new file mode 100644 index 0000000..e69de29 diff --git a/config/production/config.yml b/config/production/config.yml new file mode 100644 index 0000000..e69de29 diff --git a/.npmrc b/frontend/.npmrc similarity index 100% rename from .npmrc rename to frontend/.npmrc diff --git a/.nvmrc b/frontend/.nvmrc similarity index 100% rename from .nvmrc rename to frontend/.nvmrc diff --git a/.prettierrc b/frontend/.prettierrc similarity index 100% rename from .prettierrc rename to frontend/.prettierrc diff --git a/frontend/src/components/LoginDialog.tsx b/frontend/src/components/LoginDialog.tsx index e180005..91defff 100644 --- a/frontend/src/components/LoginDialog.tsx +++ b/frontend/src/components/LoginDialog.tsx @@ -6,21 +6,21 @@ import {Button} from '@/components/ui/button'; interface LoginDialogProps { open: boolean; onOpenChange: (open: boolean) => void; - onLogin: (email: string, password: string) => boolean; + onLogin: (username: string, password: string) => Promise; } export const LoginDialog = ({open, onOpenChange, onLogin}: LoginDialogProps) => { - const [email, setEmail] = useState(''); + const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(''); - const handleSubmit = (e: React.FormEvent) => { + const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(''); - const success = onLogin(email, password); + const success = await onLogin(username, password); if (success) { - setEmail(''); + setUsername(''); setPassword(''); onOpenChange(false); } else { @@ -37,10 +37,10 @@ export const LoginDialog = ({open, onOpenChange, onLogin}: LoginDialogProps) =>
-