import type { Settings as LayoutSettings } from '@ant-design/pro-layout';
import { PageLoading } from '@ant-design/pro-layout';
import { history } from 'umi';
import { currentUser as queryCurrentUser } from './services/ant-design-pro/api';
import defaultSettings from '../config/defaultSettings';
const loginPath = '/user/login';
/** 获取用户信息比较慢的时候会展示一个 loading */
export const initialStateConfig = {
loading: ,
};
/**
* @see https://umijs.org/zh-CN/plugins/plugin-initial-state
* */
export async function getInitialState(): Promise<{
settings?: Partial;
currentUser?: API.CurrentUser;
loading?: boolean;
fetchUserInfo?: () => Promise;
}> {
const fetchUserInfo = async () => {
try {
const msg = await queryCurrentUser();
return msg.data;
} catch (error) {
// history.push(loginPath);
}
return undefined;
};
// 如果是登录页面,不执行
if (history.location.pathname !== loginPath) {
// const currentUser = await fetchUserInfo();
return {
fetchUserInfo,
//currentUser,
settings: defaultSettings,
};
}
return {
fetchUserInfo,
settings: defaultSettings,
};
}
// ProLayout 支持的api https://procomponents.ant.design/components/layout
// export const layout: RunTimeLayoutConfig = ({ initialState, setInitialState }) => {
// return {
// rightContentRender: () => ,
// disableContentMargin: false,
// waterMarkProps: {
// content: initialState?.currentUser?.name,
// },
// footerRender: () => ,
// onPageChange: () => {
// const { location } = history;
// // 如果没有登录,重定向到 login
// if (!initialState?.currentUser && location.pathname !== loginPath) {
// history.push(loginPath);
// }
// },
// links: isDev
// ? [
//
//
// OpenAPI 文档
// ,
//
//
// 业务组件文档
// ,
// ]
// : [],
// menuHeaderRender: undefined,
// // 自定义 403 页面
// // unAccessible: unAccessible
,
// // 增加一个 loading 的状态
// childrenRender: (children, props) => {
// // if (initialState?.loading) return ;
// return (
// <>
// {children}
// {!props.location?.pathname?.includes('/login') && (
// {
// setInitialState((preInitialState) => ({
// ...preInitialState,
// settings,
// }));
// }}
// />
// )}
// >
// );
// },
// ...initialState?.settings,
// };
// };