From ca0a6b2950a73d158654b9b7cc83a97faf428d5f Mon Sep 17 00:00:00 2001 From: john Date: Sun, 18 May 2025 19:11:32 +0200 Subject: [PATCH] fix signup code usage --- src/app/auth/authService.ts | 4 +++- src/app/auth/pages/SignupPage.tsx | 12 +++++++++++- src/types.d.ts | 7 +++++++ 3 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 src/types.d.ts diff --git a/src/app/auth/authService.ts b/src/app/auth/authService.ts index 3668822..0cb3c36 100644 --- a/src/app/auth/authService.ts +++ b/src/app/auth/authService.ts @@ -1,6 +1,7 @@ import { User } from '../user/userStore.ts' import { dispatchMessage } from '../messageBus/messageBus.ts' import client from '../api/client.ts' +import { ProblemDetails } from '../../types' export class AuthService { constructor(private readonly user: User | null) {} @@ -33,7 +34,8 @@ export class AuthService { }) if (!res.data) { - throw new Error('invalid credentials') + console.error(res.error) + throw new Error((res.error as ProblemDetails)?.detail ?? 'invalid credentials') } dispatchMessage('auth:registered', { ...res.data }) diff --git a/src/app/auth/pages/SignupPage.tsx b/src/app/auth/pages/SignupPage.tsx index dbfc481..ba3b994 100644 --- a/src/app/auth/pages/SignupPage.tsx +++ b/src/app/auth/pages/SignupPage.tsx @@ -20,7 +20,7 @@ export default function SignupPage({ authService }: SignupPageProps) { const { code } = useParams() const [signupCode, setSignupCode] = useState(null) const [isSubmitting, setIsSubmitting] = useState(false) - + const [error, setError] = useState('') const [username, setUsername, usernameError, validateUsername] = useValidatedInput(isValidUsername) @@ -44,6 +44,7 @@ export default function SignupPage({ authService }: SignupPageProps) { localStorage.setItem(SignupCodeKey, theSignupCode) } else { theSignupCode = localStorage.getItem(SignupCodeKey) + setSignupCode(theSignupCode) } if (!theSignupCode) { @@ -51,6 +52,10 @@ export default function SignupPage({ authService }: SignupPageProps) { } }, [code, signupCode]) + useEffect(() => { + console.debug('signup code', signupCode) + }, [signupCode]) + const onSubmit = async (e: FormEvent) => { e.preventDefault() @@ -78,6 +83,9 @@ export default function SignupPage({ authService }: SignupPageProps) { try { await authService.signup(username, password, signupCode) navigate('/') + } catch (e: unknown) { + const err = e as Error + setError(err.message) } finally { setIsSubmitting(false) } @@ -120,6 +128,8 @@ export default function SignupPage({ authService }: SignupPageProps) { login instead? + + {error} diff --git a/src/types.d.ts b/src/types.d.ts new file mode 100644 index 0000000..ad3865e --- /dev/null +++ b/src/types.d.ts @@ -0,0 +1,7 @@ +export interface ProblemDetails { + detail: string + title: string + status: number + type: string + traceId: string +}