mirror of
https://gitee.com/nocobase/nocobase.git
synced 2025-07-01 18:52:20 +08:00
fix(Navigate): fix the issue where mobile login redirects to desktop page (#5805)
This commit is contained in:
parent
db7c9bac42
commit
de19124fa1
@ -14,7 +14,6 @@ import { Field } from '@formily/core';
|
||||
import { Schema, useField, useFieldSchema } from '@formily/react';
|
||||
import { omit } from 'lodash';
|
||||
import React, { createContext, useCallback, useContext, useEffect, useMemo } from 'react';
|
||||
import { Navigate } from 'react-router-dom';
|
||||
import { useAPIClient, useRequest } from '../api-client';
|
||||
import { useAppSpin } from '../application/hooks/useAppSpin';
|
||||
import { useResourceActionContext } from '../collection-manager/ResourceActionProvider';
|
||||
@ -29,6 +28,7 @@ import { useDataSourceKey } from '../data-source/data-source/DataSourceProvider'
|
||||
import { SchemaComponentOptions, useDesignable } from '../schema-component';
|
||||
|
||||
import { useApp } from '../application';
|
||||
import { NavigateToSigninWithRedirect } from '../user/CurrentUserProvider';
|
||||
|
||||
// 注意: 必须要对 useBlockRequestContext 进行引用,否则会导致 Data sources 页面报错,原因未知
|
||||
useBlockRequestContext;
|
||||
@ -89,7 +89,7 @@ export const ACLRolesCheckProvider = (props) => {
|
||||
return render();
|
||||
}
|
||||
if (result.error) {
|
||||
return <Navigate replace to={'/signin'} />;
|
||||
return <NavigateToSigninWithRedirect />;
|
||||
}
|
||||
return <ACLContext.Provider value={result}>{props.children}</ACLContext.Provider>;
|
||||
};
|
||||
|
@ -523,19 +523,19 @@ export const AdminProvider = (props) => {
|
||||
<CurrentPageUidProvider>
|
||||
<CurrentTabUidProvider>
|
||||
<IsSubPageClosedByPageMenuProvider>
|
||||
<ACLRolesCheckProvider>
|
||||
<MenuSchemaRequestProvider>
|
||||
<RemoteCollectionManagerProvider>
|
||||
<CurrentAppInfoProvider>
|
||||
<NavigateIfNotSignIn>
|
||||
<NavigateIfNotSignIn>
|
||||
<ACLRolesCheckProvider>
|
||||
<MenuSchemaRequestProvider>
|
||||
<RemoteCollectionManagerProvider>
|
||||
<CurrentAppInfoProvider>
|
||||
<RemoteSchemaTemplateManagerProvider>
|
||||
<VariablesProvider>{props.children}</VariablesProvider>
|
||||
</RemoteSchemaTemplateManagerProvider>
|
||||
</NavigateIfNotSignIn>
|
||||
</CurrentAppInfoProvider>
|
||||
</RemoteCollectionManagerProvider>
|
||||
</MenuSchemaRequestProvider>
|
||||
</ACLRolesCheckProvider>
|
||||
</CurrentAppInfoProvider>
|
||||
</RemoteCollectionManagerProvider>
|
||||
</MenuSchemaRequestProvider>
|
||||
</ACLRolesCheckProvider>
|
||||
</NavigateIfNotSignIn>
|
||||
</IsSubPageClosedByPageMenuProvider>
|
||||
</CurrentTabUidProvider>
|
||||
</CurrentPageUidProvider>
|
||||
|
@ -46,13 +46,17 @@ export const CurrentUserProvider = (props) => {
|
||||
return <CurrentUserContext.Provider value={result}>{props.children}</CurrentUserContext.Provider>;
|
||||
};
|
||||
|
||||
export const NavigateIfNotSignIn = ({ children }) => {
|
||||
const result = useCurrentUserContext();
|
||||
export const NavigateToSigninWithRedirect = () => {
|
||||
const { pathname, search } = useLocationNoUpdate();
|
||||
const redirect = `?redirect=${pathname}${search}`;
|
||||
return <Navigate replace to={`/signin${redirect}`} />;
|
||||
};
|
||||
|
||||
export const NavigateIfNotSignIn = ({ children }) => {
|
||||
const result = useCurrentUserContext();
|
||||
|
||||
if (result.loading === false && !result.data?.data?.id) {
|
||||
return <Navigate replace to={`/signin${redirect}`} />;
|
||||
return <NavigateToSigninWithRedirect />;
|
||||
}
|
||||
return <>{children}</>;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user