// @ts-nocheck import avatarImg from '@/assets/images/avatar.png'; import externalLinks from '@/constants/external-links'; import { DiscordOutlined, GithubOutlined, HomeOutlined, InfoCircleOutlined, LogoutOutlined, MoreOutlined, ReadOutlined, SettingOutlined } from '@ant-design/icons'; import { IconFont } from '@gpustack/core-ui'; import { getAllLocales, history } from '@umijs/max'; import { Avatar, Menu, Spin } from 'antd'; import _ from 'lodash'; import React from 'react'; const getMenuStyle = ( collapsed: boolean, siderWidth: number, extraStyle: React.CSSProperties = {} ) => ({ width: collapsed ? 40 : `calc(${siderWidth}px - 16px)`, ...extraStyle }); export const getRightRenderContent = (opts: { runtimeConfig: any; loading: boolean; initialState: any; collapsed: boolean; setInitialState: any; siderWidth: number; intl: any; }) => { const { intl, collapsed, siderWidth, showUpgrade, isDarkTheme } = 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: 'ZStack AIOS', url: externalLinks.site }, { key: 'github', icon: , label: intl.formatMessage({ id: 'common.issue.report' }), url: externalLinks.reportIssue }, { key: 'faq', icon: , label: intl.formatMessage({ id: 'common.button.faq' }), url: externalLinks.faq }, { 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' }) } ]; const helpMenu = { selectedKeys: [], className: collapsed ? 'user-menu-container user-menu-collapsed' : 'user-menu-container', mode: 'vertical', expandIcon: false, triggerSubMenuAction: 'hover', items: [ { key: 'help', icon: , label: ( {intl?.formatMessage?.({ id: 'common.button.help' })} {showUpgrade && ( )} ), children: helpList.map((item) => ({ key: item.key, label: ( {item.icon} {item.key === 'version' ? ( <> {item.label} {showUpgrade && ( {intl.formatMessage({ id: 'common.text.new' })} )} ) : ( {item.label} )} ), onClick() { if (item.key === 'version') { opts.runtimeConfig.showVersion(); } if (item.key === 'shortcuts') { opts.runtimeConfig.showShortcuts(); } } })) } ] }; const userMenu = { selectedKeys: [], className: collapsed ? 'user-menu-container user-menu-collapsed' : 'user-menu-container', mode: 'vertical', expandIcon: collapsed ? 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: 'apikeys', label: ( {intl?.formatMessage?.({ id: 'menu.apikeys' })} ), onClick: () => { history.push('/api-keys'); } }, { key: 'settings', label: ( {intl?.formatMessage?.({ id: 'common.button.settings' })} ), onClick: () => { history.push('/preferences'); } }, { key: 'logout', label: ( {intl?.formatMessage?.({ id: 'common.button.logout' })} ), onClick: () => { opts?.runtimeConfig?.logout?.(opts.initialState.currentUser); } } ] } ] }; return ( <> ); };