mirror of
https://gitee.com/nocobase/nocobase.git
synced 2025-05-05 05:29:26 +08:00
perf: useIsLoggedIn (#6462)
This commit is contained in:
parent
6541fad14b
commit
645cef5825
@ -74,6 +74,7 @@ export const ACLRolesCheckProvider = (props) => {
|
||||
url: 'roles:check',
|
||||
},
|
||||
{
|
||||
manual: !api.auth.token,
|
||||
onSuccess(data) {
|
||||
if (!data?.data?.snippets.includes('ui.*')) {
|
||||
setDesignable(false);
|
||||
|
@ -20,6 +20,11 @@ export const useCurrentUserContext = () => {
|
||||
return useContext(CurrentUserContext);
|
||||
};
|
||||
|
||||
export const useIsLoggedIn = () => {
|
||||
const ctx = useContext(CurrentUserContext);
|
||||
return !!ctx?.data?.data;
|
||||
};
|
||||
|
||||
export const useCurrentRoles = () => {
|
||||
const { allowAnonymous } = useACLRoleContext();
|
||||
const { data } = useCurrentUserContext();
|
||||
@ -39,7 +44,8 @@ export const useCurrentRoles = () => {
|
||||
|
||||
export const CurrentUserProvider = (props) => {
|
||||
const api = useAPIClient();
|
||||
const result = useRequest<any>(() =>
|
||||
const result = useRequest<any>(
|
||||
() =>
|
||||
api
|
||||
.request({
|
||||
url: '/auth:check',
|
||||
@ -47,6 +53,9 @@ export const CurrentUserProvider = (props) => {
|
||||
skipAuth: true,
|
||||
})
|
||||
.then((res) => res?.data),
|
||||
{
|
||||
manual: !api.auth.token,
|
||||
},
|
||||
);
|
||||
const { render } = useAppSpin();
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
*/
|
||||
|
||||
import { observer } from '@formily/react';
|
||||
import { useIsAdminPage, useRequest } from '@nocobase/client';
|
||||
import { useIsLoggedIn, useRequest } from '@nocobase/client';
|
||||
import React, { createContext } from 'react';
|
||||
|
||||
const EnvAndSecretsContext = createContext<any>({});
|
||||
@ -22,8 +22,8 @@ const InternalProvider = (props) => {
|
||||
|
||||
const EnvironmentVariablesAndSecretsProvider = observer(
|
||||
(props) => {
|
||||
const isAdminPage = useIsAdminPage();
|
||||
if (!isAdminPage) {
|
||||
const isLoggedIn = useIsLoggedIn();
|
||||
if (!isLoggedIn) {
|
||||
return <>{props.children}</>;
|
||||
}
|
||||
return <InternalProvider {...props} />;
|
||||
|
@ -6,12 +6,12 @@
|
||||
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
||||
* For more information, please refer to: https://www.nocobase.com/agreement.
|
||||
*/
|
||||
import { CheckCircleOutlined } from '@ant-design/icons';
|
||||
import { PageHeader } from '@ant-design/pro-layout';
|
||||
import { Badge, Button, Layout, Menu, Tabs, Tooltip } from 'antd';
|
||||
import classnames from 'classnames';
|
||||
import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
|
||||
import { Link, Outlet, useNavigate, useParams } from 'react-router-dom';
|
||||
import { Button, Layout, Menu, Badge, Tooltip, Tabs } from 'antd';
|
||||
import { PageHeader } from '@ant-design/pro-layout';
|
||||
import { CheckCircleOutlined } from '@ant-design/icons';
|
||||
import classnames from 'classnames';
|
||||
|
||||
import {
|
||||
css,
|
||||
@ -22,7 +22,7 @@ import {
|
||||
useApp,
|
||||
useCompile,
|
||||
useDocumentTitle,
|
||||
useIsAdminPage,
|
||||
useIsLoggedIn,
|
||||
usePlugin,
|
||||
useRequest,
|
||||
useToken,
|
||||
@ -371,7 +371,7 @@ function TasksCountsProvider(props: any) {
|
||||
}
|
||||
|
||||
export const TasksProvider = (props: any) => {
|
||||
const isAdminPage = useIsAdminPage();
|
||||
const isLoggedIn = useIsLoggedIn();
|
||||
|
||||
const content = (
|
||||
<PinnedPluginListProvider
|
||||
@ -389,5 +389,5 @@ export const TasksProvider = (props: any) => {
|
||||
</PinnedPluginListProvider>
|
||||
);
|
||||
|
||||
return isAdminPage ? <TasksCountsProvider>{content}</TasksCountsProvider> : content;
|
||||
return isLoggedIn ? <TasksCountsProvider>{content}</TasksCountsProvider> : content;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user