// @ts-nocheck
import avatarImg from '@/assets/images/avatar.png';
import externalLinks from '@/constants/external-links';
import langConfigMap from '@/locales/lang-config-map';
import {
DiscordOutlined,
GithubOutlined,
GlobalOutlined,
HomeOutlined,
InfoCircleOutlined,
LogoutOutlined,
QuestionCircleOutlined,
ReadOutlined,
SettingOutlined
} from '@ant-design/icons';
import { getAllLocales, history, setLocale } from '@umijs/max';
import { Avatar, Menu, Spin } from 'antd';
import _ from 'lodash';
export function getRightRenderContent(opts: {
runtimeConfig: any;
loading: boolean;
initialState: any;
collapsed: boolean;
setInitialState: any;
siderWidth: number;
intl: any;
}) {
const { intl, collapsed, siderWidth } = opts;
const allLocals = getAllLocales();
if (opts.runtimeConfig.rightRender) {
return opts.runtimeConfig.rightRender(
opts.initialState,
opts.setInitialState,
opts.runtimeConfig
);
}
const showAvatar =
opts.initialState?.currentUser?.avatar ||
opts.initialState?.currentUser?.username ||
opts.runtimeConfig.logout;
const disableAvatarImg = opts.initialState?.currentUser?.avatar === false;
const nameClassName = disableAvatarImg
? 'umi-plugin-layout-name umi-plugin-layout-hide-avatar-img'
: 'umi-plugin-layout-name';
const avatar = showAvatar ? (
{!disableAvatarImg ? (
) : null}
{opts.initialState?.currentUser?.username}
) : null;
if (opts.loading) {
return (
);
}
const helpList = [
{
key: 'site',
icon: ,
label: 'GPUStack',
url: externalLinks.site
},
{
key: 'github',
icon: ,
label: 'GitHub',
url: externalLinks.github
},
{
key: 'Discord',
icon: ,
label: 'Discord',
url: externalLinks.discord
},
{
key: 'docs',
icon: ,
label: intl.formatMessage({ id: 'common.button.docs' }),
url: externalLinks.documentation
},
{
key: 'version',
icon: ,
label: intl.formatMessage({ id: 'common.button.version' })
}
// {
// key: 'shortcuts',
// icon: ,
// label: intl.formatMessage({ id: 'common.button.shortcut' })
// }
];
const helpMenu = {
selectedKeys: [],
className: collapsed
? 'user-menu-container user-menu-collapsed'
: 'user-menu-container',
mode: 'vertical',
expandIcon: false,
inlineCollapsed: collapsed,
triggerSubMenuAction: 'hover',
items: [
{
key: 'help',
icon: ,
label: (
{intl?.formatMessage?.({ id: 'common.button.help' })}
),
children: helpList.map((item) => ({
key: item.key,
label: (
{item.icon}
{item.key === 'version' ? (
{item.label}
) : (
{item.label}
)}
),
onClick() {
if (item.key === 'version') {
opts.runtimeConfig.showVersion();
}
if (item.key === 'shortcuts') {
opts.runtimeConfig.showShortcuts();
}
}
}))
}
]
};
const langMenu = {
selectedKeys: [],
className: collapsed
? 'user-menu-container user-menu-collapsed'
: 'user-menu-container',
mode: 'vertical',
expandIcon: false,
inlineCollapsed: collapsed,
triggerSubMenuAction: 'hover',
items: [
{
key: 'lang',
icon: ,
label: (
{intl?.formatMessage?.({ id: 'common.settings.language' })}
),
children: allLocals.map((key) => ({
key,
label: (
{_.get(langConfigMap, [key, 'label'])}
),
onClick: () => {
setLocale(key, false);
}
}))
}
]
};
const userMenu = {
selectedKeys: [],
className: collapsed
? 'user-menu-container user-menu-collapsed'
: 'user-menu-container',
mode: 'vertical',
expandIcon: false,
inlineCollapsed: collapsed,
triggerSubMenuAction: 'hover',
items: [
{
label: '',
key: 'user',
className: 'user-avatar',
icon: (
{_.toUpper(opts.initialState?.currentUser?.username?.charAt(0))}
{!collapsed && (
{opts.initialState?.currentUser?.username}
)}
),
children: [
{
key: 'settings',
label: (
{intl?.formatMessage?.({ id: 'common.button.settings' })}
),
onClick: () => {
history.push('/profile');
}
},
{
key: 'logout',
label: (
{intl?.formatMessage?.({ id: 'common.button.logout' })}
),
onClick: () => {
opts?.runtimeConfig?.logout?.(opts.initialState.currentUser);
}
}
]
}
]
};
return (
);
}