mirror of
https://gitee.com/nocobase/nocobase.git
synced 2025-07-02 03:02:19 +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 { Schema, useField, useFieldSchema } from '@formily/react';
|
||||||
import { omit } from 'lodash';
|
import { omit } from 'lodash';
|
||||||
import React, { createContext, useCallback, useContext, useEffect, useMemo } from 'react';
|
import React, { createContext, useCallback, useContext, useEffect, useMemo } from 'react';
|
||||||
import { Navigate } from 'react-router-dom';
|
|
||||||
import { useAPIClient, useRequest } from '../api-client';
|
import { useAPIClient, useRequest } from '../api-client';
|
||||||
import { useAppSpin } from '../application/hooks/useAppSpin';
|
import { useAppSpin } from '../application/hooks/useAppSpin';
|
||||||
import { useResourceActionContext } from '../collection-manager/ResourceActionProvider';
|
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 { SchemaComponentOptions, useDesignable } from '../schema-component';
|
||||||
|
|
||||||
import { useApp } from '../application';
|
import { useApp } from '../application';
|
||||||
|
import { NavigateToSigninWithRedirect } from '../user/CurrentUserProvider';
|
||||||
|
|
||||||
// 注意: 必须要对 useBlockRequestContext 进行引用,否则会导致 Data sources 页面报错,原因未知
|
// 注意: 必须要对 useBlockRequestContext 进行引用,否则会导致 Data sources 页面报错,原因未知
|
||||||
useBlockRequestContext;
|
useBlockRequestContext;
|
||||||
@ -89,7 +89,7 @@ export const ACLRolesCheckProvider = (props) => {
|
|||||||
return render();
|
return render();
|
||||||
}
|
}
|
||||||
if (result.error) {
|
if (result.error) {
|
||||||
return <Navigate replace to={'/signin'} />;
|
return <NavigateToSigninWithRedirect />;
|
||||||
}
|
}
|
||||||
return <ACLContext.Provider value={result}>{props.children}</ACLContext.Provider>;
|
return <ACLContext.Provider value={result}>{props.children}</ACLContext.Provider>;
|
||||||
};
|
};
|
||||||
|
@ -523,19 +523,19 @@ export const AdminProvider = (props) => {
|
|||||||
<CurrentPageUidProvider>
|
<CurrentPageUidProvider>
|
||||||
<CurrentTabUidProvider>
|
<CurrentTabUidProvider>
|
||||||
<IsSubPageClosedByPageMenuProvider>
|
<IsSubPageClosedByPageMenuProvider>
|
||||||
<ACLRolesCheckProvider>
|
<NavigateIfNotSignIn>
|
||||||
<MenuSchemaRequestProvider>
|
<ACLRolesCheckProvider>
|
||||||
<RemoteCollectionManagerProvider>
|
<MenuSchemaRequestProvider>
|
||||||
<CurrentAppInfoProvider>
|
<RemoteCollectionManagerProvider>
|
||||||
<NavigateIfNotSignIn>
|
<CurrentAppInfoProvider>
|
||||||
<RemoteSchemaTemplateManagerProvider>
|
<RemoteSchemaTemplateManagerProvider>
|
||||||
<VariablesProvider>{props.children}</VariablesProvider>
|
<VariablesProvider>{props.children}</VariablesProvider>
|
||||||
</RemoteSchemaTemplateManagerProvider>
|
</RemoteSchemaTemplateManagerProvider>
|
||||||
</NavigateIfNotSignIn>
|
</CurrentAppInfoProvider>
|
||||||
</CurrentAppInfoProvider>
|
</RemoteCollectionManagerProvider>
|
||||||
</RemoteCollectionManagerProvider>
|
</MenuSchemaRequestProvider>
|
||||||
</MenuSchemaRequestProvider>
|
</ACLRolesCheckProvider>
|
||||||
</ACLRolesCheckProvider>
|
</NavigateIfNotSignIn>
|
||||||
</IsSubPageClosedByPageMenuProvider>
|
</IsSubPageClosedByPageMenuProvider>
|
||||||
</CurrentTabUidProvider>
|
</CurrentTabUidProvider>
|
||||||
</CurrentPageUidProvider>
|
</CurrentPageUidProvider>
|
||||||
|
@ -46,13 +46,17 @@ export const CurrentUserProvider = (props) => {
|
|||||||
return <CurrentUserContext.Provider value={result}>{props.children}</CurrentUserContext.Provider>;
|
return <CurrentUserContext.Provider value={result}>{props.children}</CurrentUserContext.Provider>;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const NavigateIfNotSignIn = ({ children }) => {
|
export const NavigateToSigninWithRedirect = () => {
|
||||||
const result = useCurrentUserContext();
|
|
||||||
const { pathname, search } = useLocationNoUpdate();
|
const { pathname, search } = useLocationNoUpdate();
|
||||||
const redirect = `?redirect=${pathname}${search}`;
|
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) {
|
if (result.loading === false && !result.data?.data?.id) {
|
||||||
return <Navigate replace to={`/signin${redirect}`} />;
|
return <NavigateToSigninWithRedirect />;
|
||||||
}
|
}
|
||||||
return <>{children}</>;
|
return <>{children}</>;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user