refactor(ui): optimize initial loading
This commit is contained in:
+9
-2
@@ -28,8 +28,9 @@ import './i18n/init';
|
||||
|
||||
import { subscribe, unsubscribe } from '@/utils/pluginKit';
|
||||
import resolveRoutes from '@/router';
|
||||
import InitialLoadingPlaceholder from '@/components/InitialLoadingPlaceholder';
|
||||
|
||||
function App() {
|
||||
function useResolvedRoutes() {
|
||||
const [routes, setRoutes] = useState<RouteObject[]>([]);
|
||||
|
||||
useEffect(() => {
|
||||
@@ -44,8 +45,14 @@ function App() {
|
||||
};
|
||||
}, []);
|
||||
|
||||
return routes;
|
||||
}
|
||||
|
||||
function App() {
|
||||
const routes = useResolvedRoutes();
|
||||
|
||||
if (routes.length === 0) {
|
||||
return <div>initializing</div>;
|
||||
return <InitialLoadingPlaceholder />;
|
||||
}
|
||||
|
||||
const router = createBrowserRouter(routes, {
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
import { Spinner } from 'react-bootstrap';
|
||||
|
||||
function InitialLoadingPlaceholder() {
|
||||
return (
|
||||
<div
|
||||
style={{
|
||||
flexGrow: 1,
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
}}>
|
||||
<Spinner />
|
||||
<span style={{ marginLeft: 8 }}>Initializing</span>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default InitialLoadingPlaceholder;
|
||||
Reference in New Issue
Block a user