import { Route, Routes } from 'react-router-dom';
import BasicLayout from './components/BasicLayout';
import {
  ChildProtectionWrapper,
  LogOutComponent,
} from './components/common';
import { SignUpForm } from './components';
import { StudentDataRequestById, UsersService } from '@schemax-academy/shared-models-and-services';
import { useEffect, useState } from 'react';
import NewLoginComponent from './components/common/new-login-component/new-login-component';
import StudentIdCreationComponent from './components/student-id-creation/student-id-creation-comp';
import StudentIdCreationGridComponent from './components/student-id-creation/student-id-creation-grid';

interface IAppRoutesProps {
  themeValue: string;
  setThemeValue: React.Dispatch<React.SetStateAction<string>>;
}

const AppRoutes = (props: IAppRoutesProps) => {
  const { themeValue, setThemeValue } = props;

  const userInfo: any = JSON.parse(localStorage.getItem('currentUser'));
  const userId = userInfo?.user?.userId;
  const studentId = userInfo?.user?.userId;
  const service = new UsersService();
  const [gridData, setGridData] = useState<any>();

  const { user }: any = localStorage.getItem('currentUser')
    ? JSON.parse(localStorage.getItem('currentUser'))
    : { user: { loginType: '' } };

  useEffect(() => {
    getStudentsData();
  }, []);

  const getStudentsData = () => {
    const studentDataReqObj = new StudentDataRequestById();
    studentDataReqObj.studentDataId = studentId;
    service.getAllUsersById(studentDataReqObj)
      .then((res) => {
        if (res.status) {
          setGridData(res.data);
        }
      })
      .catch((err) => {
        console.log(err.message);
      });
  };

  return (
    <Routes>

      <Route
        path="/"
        element={
          <ChildProtectionWrapper>
            <BasicLayout themeValue={themeValue} setThemeValue={setThemeValue} />
          </ChildProtectionWrapper>
        }
      >
        <Route path="/users" element={<div>Users</div>} />
        <Route path="/logout" element={<LogOutComponent />} />
        <Route path='/student-id-creation-grid' element={<StudentIdCreationGridComponent />} />
        <Route path='/student-id-creation' element={<StudentIdCreationComponent />} />

      </Route>
      <Route path="/login" element={<NewLoginComponent />} />
      <Route path="/signup" element={<SignUpForm />} />
    </Routes>
  );
};

export default AppRoutes;
