|
|
@ -16,6 +16,9 @@ import { loginApi } from "@/services/api/loginApi"; |
|
|
|
import { FormControl } from '@mui/material'; |
|
|
|
import CustomTextField from "@/ui/CustomTextField"; |
|
|
|
import { useRouter } from "next/navigation"; |
|
|
|
import { useDispatch, useSelector } from "react-redux"; |
|
|
|
import { RootState } from "@/services/store"; |
|
|
|
import { setAuthTokens, setUserDetails } from "@/services/store/authSlice"; |
|
|
|
|
|
|
|
const loginSchema = z.object({ |
|
|
|
username: z.string(), |
|
|
@ -29,14 +32,15 @@ export default function LoginPage() { |
|
|
|
const { register, handleSubmit, formState: { errors }, control } = useForm<LoginFormValues>({ |
|
|
|
resolver: zodResolver(loginSchema), |
|
|
|
}); |
|
|
|
console.log("errors", errors) |
|
|
|
const [error, setError] = useState(''); |
|
|
|
|
|
|
|
const dispatch = useDispatch(); |
|
|
|
const onSubmit = async (data: LoginFormValues) => { |
|
|
|
try { |
|
|
|
const response = await loginApi(data); |
|
|
|
localStorage.setItem('token', response.token); |
|
|
|
localStorage.setItem('refreshToken', response.refreshToken); |
|
|
|
dispatch(setAuthTokens({ token: response.token, refreshToken: response.refreshToken })); |
|
|
|
dispatch(setUserDetails(response)); |
|
|
|
|
|
|
|
router.push('/home'); |
|
|
|
} catch (err) { |
|
|
|