mirror of
https://gitee.com/nocobase/nocobase.git
synced 2025-05-05 13:39:24 +08:00
fix: update legacy route compatibility to use useNavigate for navigation
This commit is contained in:
parent
9243a1199b
commit
f6f5e828d7
@ -14,7 +14,7 @@ import { css } from '@emotion/css';
|
|||||||
import { Popover, Tooltip } from 'antd';
|
import { Popover, Tooltip } from 'antd';
|
||||||
import React, { createContext, FC, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
|
import React, { createContext, FC, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
|
||||||
import ReactDOM from 'react-dom';
|
import ReactDOM from 'react-dom';
|
||||||
import { Link, Navigate, Outlet, useLocation } from 'react-router-dom';
|
import { Link, Navigate, Outlet, useLocation, useNavigate } from 'react-router-dom';
|
||||||
import {
|
import {
|
||||||
ACLRolesCheckProvider,
|
ACLRolesCheckProvider,
|
||||||
AppNotFound,
|
AppNotFound,
|
||||||
@ -34,7 +34,7 @@ import {
|
|||||||
useRequest,
|
useRequest,
|
||||||
useSchemaInitializerRender,
|
useSchemaInitializerRender,
|
||||||
useSystemSettings,
|
useSystemSettings,
|
||||||
useToken
|
useToken,
|
||||||
} from '../../../';
|
} from '../../../';
|
||||||
import {
|
import {
|
||||||
CurrentPageUidProvider,
|
CurrentPageUidProvider,
|
||||||
@ -42,6 +42,7 @@ import {
|
|||||||
IsSubPageClosedByPageMenuProvider,
|
IsSubPageClosedByPageMenuProvider,
|
||||||
useCurrentPageUid,
|
useCurrentPageUid,
|
||||||
useLocationNoUpdate,
|
useLocationNoUpdate,
|
||||||
|
useNavigateNoUpdate,
|
||||||
} from '../../../application/CustomRouterContextProvider';
|
} from '../../../application/CustomRouterContextProvider';
|
||||||
import { Plugin } from '../../../application/Plugin';
|
import { Plugin } from '../../../application/Plugin';
|
||||||
import { menuItemInitializer } from '../../../modules/menu/menuItemInitializer';
|
import { menuItemInitializer } from '../../../modules/menu/menuItemInitializer';
|
||||||
@ -71,7 +72,7 @@ const AllAccessDesktopRoutesContext = createContext<{
|
|||||||
refresh: () => void;
|
refresh: () => void;
|
||||||
}>({
|
}>({
|
||||||
allAccessRoutes: emptyArray,
|
allAccessRoutes: emptyArray,
|
||||||
refresh: () => { },
|
refresh: () => {},
|
||||||
});
|
});
|
||||||
AllAccessDesktopRoutesContext.displayName = 'AllAccessDesktopRoutesContext';
|
AllAccessDesktopRoutesContext.displayName = 'AllAccessDesktopRoutesContext';
|
||||||
|
|
||||||
@ -631,12 +632,15 @@ const findRouteByMenuSchemaUid = (schemaUid: string, routes: NocoBaseDesktopRout
|
|||||||
const LegacyRouteCompat: FC = (props) => {
|
const LegacyRouteCompat: FC = (props) => {
|
||||||
const currentPageUid = useCurrentPageUid();
|
const currentPageUid = useCurrentPageUid();
|
||||||
const { allAccessRoutes } = useAllAccessDesktopRoutes();
|
const { allAccessRoutes } = useAllAccessDesktopRoutes();
|
||||||
const route = findRouteByMenuSchemaUid(currentPageUid, allAccessRoutes);
|
const location = useLocation();
|
||||||
const location = useLocationNoUpdate();
|
const navigate = useNavigate();
|
||||||
|
|
||||||
if (route) {
|
useEffect(() => {
|
||||||
return <Navigate to={location.pathname.replace(currentPageUid, route.schemaUid) + location.search} />;
|
const route = findRouteByMenuSchemaUid(currentPageUid, allAccessRoutes);
|
||||||
}
|
if (route) {
|
||||||
|
navigate(location.pathname.replace(currentPageUid, route.schemaUid) + location.search);
|
||||||
|
}
|
||||||
|
}, [allAccessRoutes, currentPageUid, location.pathname, location.search, navigate]);
|
||||||
|
|
||||||
return <>{props.children}</>;
|
return <>{props.children}</>;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user