Files
agent/src/app.ts
2026-02-16 12:46:37 +08:00

55 lines
1.6 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 运行时配置
import * as AntdIcons from '@ant-design/icons';
import React from 'react';
type MenuItem = {
icon?: string | React.ReactNode;
[key: string]: unknown;
};
type AntdIconComponent = React.ComponentType;
// 临时屏蔽 React findDOMNode 警告,通常来自第三方库
const originalWarn = console.error;
console.error = (...args: Parameters<typeof console.error>) => {
if (
typeof args[0] === 'string' &&
args[0].includes('findDOMNode is deprecated')
) {
return;
}
originalWarn(...args);
};
// 全局初始化数据配置,用于 Layout 用户信息和权限初始化
// 更多信息见文档https://umijs.org/docs/api/runtime-config#getinitialstate
export async function getInitialState(): Promise<{ name: string }> {
return { name: '@umijs/max' };
}
export const layout = () => {
return {
logo: 'https://img.alicdn.com/tfs/TB1YHEpwUT1gK0jSZFhXXaAtVXa-28-27.svg',
menuDataRender: (menuData: MenuItem[]) => {
return menuData.map((item) => {
const iconName = typeof item.icon === 'string' ? item.icon : undefined;
const isIconName = iconName
? /(Outlined|Filled|TwoTone)$/.test(iconName)
: false;
const IconComponent = isIconName
? (AntdIcons[iconName as keyof typeof AntdIcons] as AntdIconComponent)
: undefined;
return {
...item,
icon: IconComponent ? React.createElement(IconComponent) : item.icon,
};
});
},
token: {
layout: {
bgLayout: 'none', // Remove gradients and glows
},
},
};
};