This commit is contained in:
parent
6c8125beb2
commit
7b60a3b7c4
|
|
@ -1,30 +1,32 @@
|
||||||
import React, { useState } from 'react';
|
import React from 'react';
|
||||||
import { Routes, Route } from 'react-router-dom';
|
import { Routes, Route } from 'react-router-dom';
|
||||||
import { Button, Drawer } from 'tdesign-react';
|
|
||||||
import { ChevronUpIcon } from 'tdesign-icons-react'
|
|
||||||
|
|
||||||
import './App.less';
|
import './App.less';
|
||||||
import LazyLoad from './utils/lazyLoad';
|
import Loading from './template/Loading';
|
||||||
const Console = LazyLoad(() => import('./template/console'));
|
const Console = React.lazy(() => import('./template/console'));
|
||||||
const Frontend = LazyLoad(() => import('./template/frontend'));
|
const Frontend = React.lazy(() => import('./template/frontend'));
|
||||||
const NotFound = LazyLoad(() => import('./template/notFound'));
|
const NotFound = React.lazy(() => import('./template/notFound'));
|
||||||
const Message = LazyLoad(() => import('@oak-general-business/components/message'));
|
const Message = React.lazy(() => import('@oak-general-business/components/message'));
|
||||||
const DebugPanel = LazyLoad(() => import('@oak-general-business/components/Func/debugPanel'));
|
const DebugPanel = React.lazy(() => import('@oak-general-business/components/func/debugPanel'));
|
||||||
|
|
||||||
type Router = {
|
type Router = {
|
||||||
path: string;
|
path: string;
|
||||||
element: ReturnType<typeof LazyLoad>;
|
element: React.LazyExoticComponent<React.ComponentType<any>>;
|
||||||
title: string;
|
title: string;
|
||||||
}
|
};
|
||||||
|
|
||||||
function getRoutes(routers2: Router[], namespace?: string) {
|
function getRoutes(routers2: Router[], namespace?: string) {
|
||||||
return routers2.map((router, index) => {
|
return routers2.map((router, index) => {
|
||||||
const { path, element } = router;
|
const { path, element: Component } = router;
|
||||||
return (
|
return (
|
||||||
<Route
|
<Route
|
||||||
key={`route_${namespace ? `${namespace}_` : ''}${index}`}
|
key={`route_${namespace ? `${namespace}_` : ''}${index}`}
|
||||||
path={path}
|
path={path}
|
||||||
element={element}
|
element={
|
||||||
|
<React.Suspense fallback={<Loading />}>
|
||||||
|
<Component />
|
||||||
|
</React.Suspense>
|
||||||
|
}
|
||||||
></Route>
|
></Route>
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
@ -33,54 +35,46 @@ function getRoutes(routers2: Router[], namespace?: string) {
|
||||||
let routers: Router[] = [];
|
let routers: Router[] = [];
|
||||||
|
|
||||||
function App() {
|
function App() {
|
||||||
const [visible, setVisible] = useState(false);
|
|
||||||
|
|
||||||
const handleClick = () => {
|
|
||||||
setVisible(true);
|
|
||||||
};
|
|
||||||
const handleClose = () => {
|
|
||||||
setVisible(false);
|
|
||||||
};
|
|
||||||
return (
|
return (
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
{Message}
|
<React.Suspense>
|
||||||
|
<Message />
|
||||||
|
</React.Suspense>
|
||||||
<Routes>
|
<Routes>
|
||||||
<Route path="/console" element={Console}>
|
<Route
|
||||||
|
path="/console"
|
||||||
|
element={
|
||||||
|
<React.Suspense fallback={<Loading />}>
|
||||||
|
<Console />
|
||||||
|
</React.Suspense>
|
||||||
|
}
|
||||||
|
>
|
||||||
{getRoutes(routers, 'console')}
|
{getRoutes(routers, 'console')}
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="/" element={Frontend}>
|
<Route
|
||||||
|
path="/"
|
||||||
|
element={
|
||||||
|
<React.Suspense fallback={<Loading />}>
|
||||||
|
<Frontend />
|
||||||
|
</React.Suspense>
|
||||||
|
}
|
||||||
|
>
|
||||||
{getRoutes(routers)}
|
{getRoutes(routers)}
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="*" element={NotFound} />
|
<Route
|
||||||
</Routes>
|
path="*"
|
||||||
{
|
element={
|
||||||
process.env.NODE_ENV === "development" && (
|
<React.Suspense fallback={<Loading />}>
|
||||||
<React.Fragment>
|
<NotFound />
|
||||||
<Button
|
</React.Suspense>
|
||||||
variant="text"
|
|
||||||
shape="circle"
|
|
||||||
theme="primary"
|
|
||||||
icon={<ChevronUpIcon />}
|
|
||||||
style={{
|
|
||||||
position: 'absolute',
|
|
||||||
bottom: 0,
|
|
||||||
right: '45vw',
|
|
||||||
}}
|
|
||||||
onClick={handleClick}
|
|
||||||
/>
|
|
||||||
|
|
||||||
<Drawer
|
|
||||||
placement="bottom"
|
|
||||||
visible={visible}
|
|
||||||
onClose={handleClose}
|
|
||||||
header={<text>debug控制台</text>}
|
|
||||||
footer={<div/>}
|
|
||||||
>
|
|
||||||
{DebugPanel}
|
|
||||||
</Drawer>
|
|
||||||
</React.Fragment>
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
/>
|
||||||
|
</Routes>
|
||||||
|
{process.env.NODE_ENV === 'development' && (
|
||||||
|
<React.Suspense>
|
||||||
|
<DebugPanel />
|
||||||
|
</React.Suspense>
|
||||||
|
)}
|
||||||
</React.Fragment>
|
</React.Fragment>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,21 +4,6 @@ import { useNavigate, useParams, useSearchParams, useLocation } from 'react-rout
|
||||||
import { Routes, Route, Outlet } from 'react-router-dom';
|
import { Routes, Route, Outlet } from 'react-router-dom';
|
||||||
|
|
||||||
|
|
||||||
// function Console() {
|
|
||||||
// const n = useNavigate();
|
|
||||||
// const d = useParams();
|
|
||||||
// const [search, setSearch] = useSearchParams();
|
|
||||||
// const id = search.get('id');
|
|
||||||
// const l = useLocation();
|
|
||||||
// console.log(d, id, l);
|
|
||||||
// return <div onClick={() => {
|
|
||||||
// n('', { state: { name: '212' } })
|
|
||||||
// }}>console</div>;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// export default Console;
|
|
||||||
|
|
||||||
|
|
||||||
function Console() {
|
function Console() {
|
||||||
return (
|
return (
|
||||||
<Outlet />
|
<Outlet />
|
||||||
|
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
import React from "react";
|
|
||||||
import Loading from './Loading';
|
|
||||||
|
|
||||||
const LazyLoad = (factory: () => Promise<{ default: any }>) => {
|
|
||||||
const Component = React.lazy(factory);
|
|
||||||
return (
|
|
||||||
<React.Suspense fallback={<Loading />}>
|
|
||||||
<Component />
|
|
||||||
</React.Suspense>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default LazyLoad;
|
|
||||||
Loading…
Reference in New Issue