"use client"; import React from "react"; import styles from "./loginPage.module.scss"; import Box from "@mui/material/Box"; import Typography from "@mui/material/Typography"; import Grid from "@mui/material/Grid"; import { UTILITY_CONSTANT } from "@/utilities/utilityConstant"; import Link from "next/link"; import CustomizedInputsStyled from "@/ui/CustomizedInputsStyled"; import CustomizedButtons from "@/ui/customizedButtons"; import { useForm } from "react-hook-form"; import { z } from "zod"; import { zodResolver } from "@hookform/resolvers/zod"; import { useState } from "react"; 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"; import { routes } from "constant/route.constant"; import { grey } from "@mui/material/colors"; const loginSchema = z.object({ username: z.string(), password: z.string(), }); type LoginFormValues = z.infer; export default function LoginPage() { const [loader, setLoader] = useState(false); const router = useRouter(); const { register, handleSubmit, formState: { errors }, control, } = useForm({ resolver: zodResolver(loginSchema), }); const [error, setError] = useState(""); const dispatch = useDispatch(); const onSubmit = async (data: LoginFormValues) => { try { setLoader(true); 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)); setLoader(false); router.push(routes.PRODUCTS); } catch (err) { setLoader(false); setError("Invalid credentials"); } }; return (
logo
Welcome to Convexsol Sign in to your account
© 2024 ConvexSol. Pvt.Ltd. All rights reserved. Privacy Policy {" "} |{" "} Terms of Use
); }