style: body and side menu scrollbar style

This commit is contained in:
jialin
2024-10-21 11:36:54 +08:00
parent 33a21f2aaa
commit 57386eeb55
5 changed files with 66 additions and 14 deletions
+5 -4
View File
@@ -3,12 +3,13 @@ import { IApi } from '@umijs/max';
export default (api: IApi) => {
api.modifyHTML(($) => {
const info = JSON.parse(process.env.VERSION || '{}');
const env = process.env.NODE_ENV;
const env = info.version ? 'production' : 'development';
$('html').attr('data-env', env);
$('html').attr(
'data-version',
env === 'production'
? info.version || info.commitId
: `dev-${info.commitId}`
env === 'production' ? info.version || info.commitId : `${info.commitId}`
);
if (env === 'production') {
$('script[src^="/js/umi"]').first?.().remove?.();
+15
View File
@@ -34,6 +34,21 @@
justify-content: flex-start;
font-size: var(--font-size-middle);
}
.dev.val {
display: flex;
flex-direction: column;
.item {
display: flex;
}
.tl {
display: flex;
justify-content: flex-start;
width: 60px;
}
}
}
.upgrade {
+30 -8
View File
@@ -10,6 +10,11 @@ const VersionInfo: React.FC<{ intl: any }> = ({ intl }) => {
const latestVersion = getAtomStorage(UpdateCheckAtom).latest_version;
const currentVersion = getAtomStorage(GPUStackVersionAtom)?.version;
const isProd =
document.documentElement.getAttribute('data-env') === 'production';
const uiVersion = document.documentElement.getAttribute('data-version');
return (
<div className="version-box">
<div className="img">
@@ -17,14 +22,31 @@ const VersionInfo: React.FC<{ intl: any }> = ({ intl }) => {
</div>
<div className="ver">
<span className="label">
{' '}
{intl.formatMessage({ id: 'common.footer.version' })}
</span>
<span className="val">
{getAtomStorage(GPUStackVersionAtom)?.version ||
getAtomStorage(GPUStackVersionAtom)?.git_commit}
</span>
{isProd && (
<span className="label">
{intl.formatMessage({ id: 'common.footer.version' })}
</span>
)}
{isProd ? (
<span className="val">
{getAtomStorage(GPUStackVersionAtom)?.version ||
getAtomStorage(GPUStackVersionAtom)?.git_commit}
</span>
) : (
<span className="val dev">
<span className="item">
<span className="tl">
{' '}
{intl.formatMessage({ id: 'common.footer.version.server' })}
</span>
{getAtomStorage(GPUStackVersionAtom)?.git_commit}
</span>
<span className="item">
<span className="tl">UI</span>
{uiVersion}
</span>
</span>
)}
</div>
{getAtomStorage(userAtom)?.is_admin && (
<div className="upgrade">
+15 -1
View File
@@ -5,6 +5,7 @@ import ShortCuts, {
modalConfig as ShortCutsConfig
} from '@/components/short-cuts';
import VersionInfo, { modalConfig } from '@/components/version-info';
import useOverlayScroller from '@/hooks/use-overlay-scroller';
import { logout } from '@/pages/login/apis';
import { useAccessMarkedRoutes } from '@@/plugin-access';
import { useModel } from '@@/plugin-model';
@@ -23,12 +24,13 @@ import {
} from '@umijs/max';
import { Button, Modal } from 'antd';
import { useAtom } from 'jotai';
import { useCallback, useMemo, useState } from 'react';
import { useCallback, useEffect, useMemo, useState } from 'react';
import Exception from './Exception';
import './Layout.css';
import { LogoIcon, SLogoIcon } from './Logo';
import { getRightRenderContent } from './rightRender';
import { patchRoutes } from './runtime';
const loginPath = '/login';
type InitialStateType = {
@@ -87,6 +89,8 @@ const mapRoutes = (routes: IRoute[], role: string) => {
};
export default (props: any) => {
const { initialize } = useOverlayScroller();
const { initialize: initializeMenu } = useOverlayScroller();
const [userInfo] = useAtom(userAtom);
const [version] = useAtom(GPUStackVersionAtom);
const [updateCheck] = useAtom(UpdateCheckAtom);
@@ -180,6 +184,16 @@ export default (props: any) => {
);
}, [updateCheck, version, initialState]);
useEffect(() => {
initialize(document.body);
}, [initialize]);
useEffect(() => {
initializeMenu(
document.querySelector('.ant-menu.ant-menu-root')?.parentElement
);
}, [initializeMenu]);
const renderMenuHeader = useCallback(
(logo, title) => {
return (
+1 -1
View File
@@ -27,5 +27,5 @@ export default {
'users.password.confirm.error': 'The two passwords entered do not match.',
'users.login.title': 'Log in to {name}',
'users.version.islatest': '{version} is the latest version',
'users.version.update': 'Version {version} is available for update'
'users.version.update': 'Version {version} is available'
};