diff --git a/src/components/login-form.tsx b/src/components/login-form.tsx index dbf1471..007c70f 100644 --- a/src/components/login-form.tsx +++ b/src/components/login-form.tsx @@ -8,6 +8,8 @@ import { Label } from '@/components/ui/label' import { useRouter, useSearchParams } from 'next/navigation' import { useState } from 'react' import { useGlobal } from '@/providers/GlobalProvider' +import { Loader2 } from 'lucide-react' +import { toast } from 'sonner' export function LoginForm({ className, ...props }: React.ComponentProps<'div'>) { const router = useRouter() @@ -39,14 +41,19 @@ export function LoginForm({ className, ...props }: React.ComponentProps<'div'>) password, }), }) - const user = await loginReq.json() + const loginResponse = await loginReq.json() - setUser(user.user) + if (loginResponse.errors?.length) { + loginResponse.errors.forEach((e: Error) => { + toast(e.message) + }) + } - if (user.token) router.push(searchParams.get('redirectUrl') || '/') + if (loginResponse.user) setUser(loginResponse.user) + + if (loginResponse.token) router.push(searchParams.get('redirectUrl') || '/') } catch (error) { - console.error('Login failed:', error) - } finally { + toast('Unknown issue while authenticating. Try again') setIsLoading(false) } } @@ -85,16 +92,11 @@ export function LoginForm({ className, ...props }: React.ComponentProps<'div'>) - -
- Don't have an account?{' '} - - Request Access - -
diff --git a/src/providers/GlobalProvider.tsx b/src/providers/GlobalProvider.tsx index 4f6c328..74061c3 100644 --- a/src/providers/GlobalProvider.tsx +++ b/src/providers/GlobalProvider.tsx @@ -8,7 +8,7 @@ type GlobalProps = { } type GlobalState = { - setUser: (users?: User) => void + setUser: (user?: User) => void } & GlobalProps const defaultState = {