'use client' import learnhouseIcon from 'public/learnhouse_bigicon_1.png' import FormLayout, { FormField, FormLabelAndMessage, Input, } from '@components/StyledElements/Form/Form' import Image from 'next/image' import * as Form from '@radix-ui/react-form' import { useFormik } from 'formik' import { getOrgLogoMediaDirectory } from '@services/media/media' import React from 'react' import { AlertTriangle } from 'lucide-react' import { useRouter } from 'next/navigation' import Link from 'next/link' import { signIn } from "next-auth/react" import { getUriWithOrg } from '@services/config/config' import { useLHSession } from '@components/Contexts/LHSessionContext' interface LoginClientProps { org: any } const validate = (values: any) => { const errors: any = {} if (!values.email) { errors.email = 'Required' } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i.test(values.email)) { errors.email = 'Invalid email address' } if (!values.password) { errors.password = 'Required' } else if (values.password.length < 8) { errors.password = 'Password must be at least 8 characters' } return errors } const LoginClient = (props: LoginClientProps) => { const [isSubmitting, setIsSubmitting] = React.useState(false) const router = useRouter(); const session = useLHSession() as any; const [error, setError] = React.useState('') const formik = useFormik({ initialValues: { email: '', password: '', }, validate, onSubmit: async (values) => { setIsSubmitting(true) const res = await signIn('credentials', { redirect: false, email: values.email, password: values.password, callbackUrl: '/' }); if (res && res.error) { setError("Wrong Email or password"); setIsSubmitting(false); }else { await signIn('credentials', { email: values.email, password: values.password, callbackUrl: '/' }); } }, }) return (