// @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 (
); }