import React, { lazy, useEffect } from 'react'
import { useDispatch } from 'react-redux'
import { Navigate, useRoutes } from 'react-router'
import DashboardLayout from '../components/DashboardLayout'
import { Dispatch } from '../models/store'
import LoginPage from './Login/index1'
import Whfabz from "./Sbwh/Whfabz";
import Ssgcjl from "./Sbwh/Ssgcjl";
import Whxmys from "./Sbwh/Whxmys";
import Cgtzgl from "./Sbwh/Cgtzgl";
import Kchsgl from "./Sbwh/Kchsgl";
import BasicSituation from "./Gcyx/InformationSearch/BasicSituation";
import RunSituation from "./Gcyx/InformationSearch/RunSituation";
import StaticTable from "./Gcyx/InformationSearch/StaticTable";
import OperateLog from "./Gcyx/InformationSearch/OperateLog";
import Jcsj from './WatchData/Jcsj';
import PoliceRecord from './WatchData/PoliceMangant/PoliceRecord'
import PoliceRuleConfig from './WatchData/PoliceMangant/PoliceRuleConfig'

import UserInfo from './SystemMangant/UserInfo'
const HomePage = lazy(() => import('./Home'))


const AppRouters: React.FC = () => {
  const dispatch = useDispatch<Dispatch>()

  useEffect(() => {
    ;(window as any).__dispatch__ = dispatch
    return () => {
      delete (window as any).__dispatch__
    }
  }, [dispatch])

  let element = useRoutes([
    { path: '/', element: <LoginPage /> },
    { path: '/home', element: <HomePage /> },
    {
      path: '/mgr',
      element: <DashboardLayout />,
      children: [
        // { path: 'home', element: <HomePage /> },
        // 监测数据
        { path: 'jcsj/jcsj', element: <Jcsj /> },
        { path: 'jcsj/bjgl/bjjl', element: <PoliceRecord /> },
        { path: 'jcsj/bjgl/bjgzpz', element: <PoliceRuleConfig /> },

        // 设备维护
        { path: 'sbwh/wxyhgl/wxfabz', element: <Whfabz /> },
        { path: 'sbwh/wxyhgl/ssgcjl', element: <Ssgcjl /> },
        { path: 'sbwh/wxyhgl/whxmys', element: <Whxmys /> },
        { path: 'sbwh/sbwzgl/cgtzgl', element: <Cgtzgl /> },
        { path: 'sbwh/sbwzgl/kchsgl', element: <Kchsgl /> },
        // 工程运行
        { path: 'gcyx/xxcx/jbqk', element: <BasicSituation /> },
        { path: 'gcyx/xxcx/yxqk', element: <RunSituation /> },
        { path: 'gcyx/xxcx/tjbb', element: <StaticTable /> },
        { path: 'gcyx/xxcx/czrz', element: <OperateLog /> },

        // 系统管理
        { path: 'xtgl/yhxx', element: <UserInfo /> },

      ],
    },
    { path: '/login', element: <LoginPage /> },
  ])

  return element
}

export default AppRouters
