fix: build file warnings

This commit is contained in:
jialin
2024-07-15 19:04:03 +08:00
parent 0270320579
commit 7e06a56c12
16 changed files with 1161 additions and 1091 deletions
+3
View File
@@ -25,6 +25,9 @@ export default {
Select: { Select: {
itemSelectedBg: 'rgba(0,0,0,0.06)' itemSelectedBg: 'rgba(0,0,0,0.06)'
}, },
Message: {
contentPadding: '12px 16px'
},
Slider: { Slider: {
handleSize: 8, handleSize: 8,
handleSizeHover: 8, handleSizeHover: 8,
+2
View File
@@ -31,6 +31,8 @@
"lodash": "^4.17.21", "lodash": "^4.17.21",
"numeral": "^2.0.6", "numeral": "^2.0.6",
"query-string": "^9.0.0", "query-string": "^9.0.0",
"react": "~18.2.0",
"react-dom": "~18.2.0",
"react-hotkeys-hook": "^4.5.0", "react-hotkeys-hook": "^4.5.0",
"umi-presets-pro": "^2.0.3" "umi-presets-pro": "^2.0.3"
}, },
+967 -937
View File
File diff suppressed because it is too large Load Diff
-2
View File
@@ -1,6 +1,4 @@
export default (initialState: { currentUser?: Global.UserInfo }) => { export default (initialState: { currentUser?: Global.UserInfo }) => {
// 在这里按照初始化数据定义项目中的权限,统一管理
// 参考文档 https://umijs.org/docs/max/access
const canSeeAdmin = !!( const canSeeAdmin = !!(
initialState && initialState &&
initialState.currentUser && initialState.currentUser &&
-5
View File
@@ -11,14 +11,10 @@ const loginPath = '/login';
let currentUserInfo: any = {}; let currentUserInfo: any = {};
// 运行时配置 // 运行时配置
// 全局初始化数据配置,用于 Layout 用户信息和权限初始化
// 更多信息见文档:https://umijs.org/docs/api/runtime-config#getinitialstate
export async function getInitialState(): Promise<{ export async function getInitialState(): Promise<{
fetchUserInfo: () => Promise<Global.UserInfo>; fetchUserInfo: () => Promise<Global.UserInfo>;
currentUser?: Global.UserInfo; currentUser?: Global.UserInfo;
}> { }> {
// 如果不是登录页面,执行
const { location } = history; const { location } = history;
const fetchUserInfo = async (): Promise<Global.UserInfo> => { const fetchUserInfo = async (): Promise<Global.UserInfo> => {
@@ -36,7 +32,6 @@ export async function getInitialState(): Promise<{
const getAppVersionInfo = async () => { const getAppVersionInfo = async () => {
try { try {
const data = await queryVersionInfo(); const data = await queryVersionInfo();
console.log('versioninfo=========', data);
setAtomStorage(GPUStackVersionAtom, data); setAtomStorage(GPUStackVersionAtom, data);
} catch (error) { } catch (error) {
console.error('queryVersionInfo error', error); console.error('queryVersionInfo error', error);
+1 -1
View File
@@ -25,7 +25,7 @@ const DropdownButtons: React.FC<DropdownButtonsProps> = ({
}; };
if (!items?.length) { if (!items?.length) {
return null; return <span></span>;
} }
return ( return (
+35
View File
@@ -430,6 +430,41 @@ body {
border-radius: 16px; border-radius: 16px;
} }
.ant-message-notice-wrapper {
.ant-message-notice-error {
.ant-message-notice-content {
background-color: var(--ant-color-error-bg);
color: var(--ant-color-error);
}
}
.ant-message-notice-success {
.ant-message-notice-content {
background-color: var(--ant-color-success-bg);
color: var(--ant-color-success);
}
}
.ant-message-notice-content {
border-radius: var(--border-radius-base) !important;
line-height: 2;
max-width: 300px;
text-align: left;
word-break: break-word;
box-shadow: var(--ant-box-shadow-secondary) !important;
max-height: 140px;
overflow-y: auto;
.anticon {
padding-top: 5px;
}
}
.ant-message-custom-content {
align-items: flex-start !important;
}
}
.background { .background {
position: fixed; position: fixed;
top: 0; top: 0;
-2
View File
@@ -1,5 +1,3 @@
// 全局共享数据示例
// import { DEFAULT_NAME } from '@/constants';
import { useState } from 'react'; import { useState } from 'react';
const useGlobalState = () => { const useGlobalState = () => {
+7 -1
View File
@@ -184,7 +184,13 @@ const AddModal: React.FC<AddModalProps> = ({
<SealInput.Input <SealInput.Input
label={intl.formatMessage({ id: 'apikeys.form.apikey' })} label={intl.formatMessage({ id: 'apikeys.form.apikey' })}
value={apikeyValue} value={apikeyValue}
addAfter={<CopyButton text={apikeyValue}></CopyButton>} addAfter={
<CopyButton
text={apikeyValue}
shape="default"
size="small"
></CopyButton>
}
></SealInput.Input> ></SealInput.Input>
</Form.Item> </Form.Item>
)} )}
+3 -3
View File
@@ -20,7 +20,7 @@ import {
} from 'antd'; } from 'antd';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import _ from 'lodash'; import _ from 'lodash';
import { useEffect, useState } from 'react'; import { StrictMode, useEffect, useState } from 'react';
import { deleteApisKey, queryApisKeysList } from './apis'; import { deleteApisKey, queryApisKeysList } from './apis';
import AddAPIKeyModal from './components/add-apikey'; import AddAPIKeyModal from './components/add-apikey';
import { ListItem } from './config/types'; import { ListItem } from './config/types';
@@ -179,7 +179,7 @@ const Models: React.FC = () => {
}, [queryParams]); }, [queryParams]);
return ( return (
<> <StrictMode>
<PageContainer <PageContainer
ghost ghost
header={{ header={{
@@ -308,7 +308,7 @@ const Models: React.FC = () => {
onCancel={handleModalCancel} onCancel={handleModalCancel}
onOk={handleModalOk} onOk={handleModalOk}
></AddAPIKeyModal> ></AddAPIKeyModal>
</> </StrictMode>
); );
}; };
+8 -6
View File
@@ -1,17 +1,19 @@
import { PageContainer } from '@ant-design/pro-components'; import { PageContainer } from '@ant-design/pro-components';
import { Spin } from 'antd'; import { Spin } from 'antd';
import { memo, useState } from 'react'; import { StrictMode, memo, useState } from 'react';
import DashboardInner from './components/dahboard-inner'; import DashboardInner from './components/dahboard-inner';
const Dashboard: React.FC = () => { const Dashboard: React.FC = () => {
const [loading, setLoading] = useState(false); const [loading, setLoading] = useState(false);
return ( return (
<PageContainer ghost extra={[]}> <StrictMode>
<Spin spinning={loading}> <PageContainer ghost extra={[]}>
<DashboardInner setLoading={setLoading} /> <Spin spinning={loading}>
</Spin> <DashboardInner setLoading={setLoading} />
</PageContainer> </Spin>
</PageContainer>
</StrictMode>
); );
}; };
+21 -19
View File
@@ -4,7 +4,7 @@ import useSetChunkRequest, {
} from '@/hooks/use-chunk-request'; } from '@/hooks/use-chunk-request';
import useUpdateChunkedList from '@/hooks/use-update-chunk-list'; import useUpdateChunkedList from '@/hooks/use-update-chunk-list';
import _ from 'lodash'; import _ from 'lodash';
import { useCallback, useEffect, useRef, useState } from 'react'; import { StrictMode, useCallback, useEffect, useRef, useState } from 'react';
import { MODELS_API, MODEL_INSTANCE_API, queryModelsList } from './apis'; import { MODELS_API, MODEL_INSTANCE_API, queryModelsList } from './apis';
import TableList from './components/table-list'; import TableList from './components/table-list';
import { ListItem } from './config/types'; import { ListItem } from './config/types';
@@ -168,24 +168,26 @@ const Models: React.FC = () => {
}, [queryParams]); }, [queryParams]);
return ( return (
<TableContext.Provider <StrictMode>
value={{ <TableContext.Provider
allChildren: modelInstances value={{
}} allChildren: modelInstances
> }}
<TableList >
dataSource={dataSource} <TableList
handleNameChange={handleNameChange} dataSource={dataSource}
handleSearch={handleSearch} handleNameChange={handleNameChange}
handleShowSizeChange={handleShowSizeChange} handleSearch={handleSearch}
handlePageChange={handlePageChange} handleShowSizeChange={handleShowSizeChange}
createModelsChunkRequest={createModelsChunkRequest} handlePageChange={handlePageChange}
queryParams={queryParams} createModelsChunkRequest={createModelsChunkRequest}
loading={loading} queryParams={queryParams}
total={total} loading={loading}
fetchData={fetchData} total={total}
></TableList> fetchData={fetchData}
</TableContext.Provider> ></TableList>
</TableContext.Provider>
</StrictMode>
); );
}; };
+3 -3
View File
@@ -1,7 +1,7 @@
import { PageContainer } from '@ant-design/pro-components'; import { PageContainer } from '@ant-design/pro-components';
import { useSearchParams } from '@umijs/max'; import { useSearchParams } from '@umijs/max';
import { Divider } from 'antd'; import { Divider } from 'antd';
import { useState } from 'react'; import { StrictMode, useState } from 'react';
import GroundLeft from './components/ground-left'; import GroundLeft from './components/ground-left';
import ParamsSettings from './components/params-settings'; import ParamsSettings from './components/params-settings';
import './style/play-ground.less'; import './style/play-ground.less';
@@ -12,7 +12,7 @@ const Playground: React.FC = () => {
const [params, setParams] = useState({}); const [params, setParams] = useState({});
return ( return (
<div> <StrictMode>
<PageContainer ghost extra={[]}> <PageContainer ghost extra={[]}>
<div className="play-ground"> <div className="play-ground">
<div className="chat"> <div className="chat">
@@ -27,7 +27,7 @@ const Playground: React.FC = () => {
</div> </div>
</div> </div>
</PageContainer> </PageContainer>
</div> </StrictMode>
); );
}; };
+88 -91
View File
@@ -6,7 +6,6 @@ import { updatePassword } from '@/pages/login/apis';
import { PageContainer } from '@ant-design/pro-components'; import { PageContainer } from '@ant-design/pro-components';
import { useIntl } from '@umijs/max'; import { useIntl } from '@umijs/max';
import { Form, message } from 'antd'; import { Form, message } from 'antd';
import { StrictMode } from 'react';
interface ProfileProps { interface ProfileProps {
username?: string; username?: string;
@@ -35,99 +34,97 @@ const Profile: React.FC = () => {
}; };
return ( return (
<StrictMode> <PageContainer
<PageContainer ghost
ghost header={{
header={{ title: intl.formatMessage({ id: 'users.form.updatepassword' })
title: intl.formatMessage({ id: 'users.form.updatepassword' }) }}
}} extra={[]}
extra={[]} >
<Form
style={{ width: '524px' }}
name="profileForm"
form={form}
onFinish={handleOnFinish}
onFinishFailed={handleOnFinishFailed}
> >
<Form <Form.Item<ProfileProps>
style={{ width: '524px' }} name="current_password"
name="profileForm" rules={[
form={form} {
onFinish={handleOnFinish} required: true,
onFinishFailed={handleOnFinishFailed} message: intl.formatMessage(
> { id: 'common.form.rule.input' },
<Form.Item<ProfileProps> {
name="current_password" name: intl.formatMessage({
rules={[ id: 'users.form.currentpassword'
{ })
required: true,
message: intl.formatMessage(
{ id: 'common.form.rule.input' },
{
name: intl.formatMessage({
id: 'users.form.currentpassword'
})
}
)
}
]}
>
<SealInput.Password
label={intl.formatMessage({ id: 'users.form.currentpassword' })}
required
style={{ width: INPUT_WIDTH.default }}
></SealInput.Password>
</Form.Item>
<Form.Item<ProfileProps>
name="new_password"
rules={[
{
required: true,
pattern: PasswordReg,
message: intl.formatMessage({
id: 'users.form.rule.password'
})
}
]}
>
<SealInput.Password
label={intl.formatMessage({ id: 'users.form.newpassword' })}
required
style={{ width: INPUT_WIDTH.default }}
></SealInput.Password>
</Form.Item>
<Form.Item
name="confirm_password"
dependencies={['new_password']}
rules={[
{
required: true,
message: intl.formatMessage({
id: 'users.password.confirm.empty'
})
},
({ getFieldValue }) => ({
validator(_, value) {
if (!value || getFieldValue('new_password') === value) {
return Promise.resolve();
}
return Promise.reject(
new Error(
intl.formatMessage({ id: 'users.password.confirm.error' })
)
);
} }
)
}
]}
>
<SealInput.Password
label={intl.formatMessage({ id: 'users.form.currentpassword' })}
required
style={{ width: INPUT_WIDTH.default }}
></SealInput.Password>
</Form.Item>
<Form.Item<ProfileProps>
name="new_password"
rules={[
{
required: true,
pattern: PasswordReg,
message: intl.formatMessage({
id: 'users.form.rule.password'
}) })
]} }
> ]}
<SealInput.Password >
required={true} <SealInput.Password
style={{ width: INPUT_WIDTH.default }} label={intl.formatMessage({ id: 'users.form.newpassword' })}
label={intl.formatMessage({ id: 'users.password.confirm' })} required
/> style={{ width: INPUT_WIDTH.default }}
</Form.Item> ></SealInput.Password>
<FormButtons </Form.Item>
htmlType="submit" <Form.Item
onCancel={handleCancel} name="confirm_password"
showCancel={false} dependencies={['new_password']}
></FormButtons> rules={[
</Form> {
</PageContainer> required: true,
</StrictMode> message: intl.formatMessage({
id: 'users.password.confirm.empty'
})
},
({ getFieldValue }) => ({
validator(_, value) {
if (!value || getFieldValue('new_password') === value) {
return Promise.resolve();
}
return Promise.reject(
new Error(
intl.formatMessage({ id: 'users.password.confirm.error' })
)
);
}
})
]}
>
<SealInput.Password
required={true}
style={{ width: INPUT_WIDTH.default }}
label={intl.formatMessage({ id: 'users.password.confirm' })}
/>
</Form.Item>
<FormButtons
htmlType="submit"
onCancel={handleCancel}
showCancel={false}
></FormButtons>
</Form>
</PageContainer>
); );
}; };
+20 -18
View File
@@ -2,7 +2,7 @@ import { PageContainer } from '@ant-design/pro-components';
import { useIntl } from '@umijs/max'; import { useIntl } from '@umijs/max';
import type { TabsProps } from 'antd'; import type { TabsProps } from 'antd';
import { Tabs } from 'antd'; import { Tabs } from 'antd';
import { useState } from 'react'; import { StrictMode, useState } from 'react';
import GPUs from './components/gpus'; import GPUs from './components/gpus';
import Workers from './components/workers'; import Workers from './components/workers';
@@ -29,23 +29,25 @@ const Resources = () => {
}; };
return ( return (
<PageContainer <StrictMode>
ghost <PageContainer
header={{ ghost
title: intl.formatMessage({ id: 'resources.title' }) header={{
}} title: intl.formatMessage({ id: 'resources.title' })
extra={[]} }}
> extra={[]}
<div style={{ marginTop: 60 }}> >
<Tabs <div style={{ marginTop: 60 }}>
type="card" <Tabs
defaultActiveKey="workers" type="card"
items={items} defaultActiveKey="workers"
accessKey={activeKey} items={items}
onChange={handleChangeTab} accessKey={activeKey}
></Tabs> onChange={handleChangeTab}
</div> ></Tabs>
</PageContainer> </div>
</PageContainer>
</StrictMode>
); );
}; };
+3 -3
View File
@@ -18,7 +18,7 @@ import { useIntl } from '@umijs/max';
import { Button, Input, Modal, Space, Table, message } from 'antd'; import { Button, Input, Modal, Space, Table, message } from 'antd';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import _ from 'lodash'; import _ from 'lodash';
import { useEffect, useState } from 'react'; import { StrictMode, useEffect, useState } from 'react';
import { createUser, deleteUser, queryUsersList, updateUser } from './apis'; import { createUser, deleteUser, queryUsersList, updateUser } from './apis';
import AddModal from './components/add-modal'; import AddModal from './components/add-modal';
import { FormData, ListItem } from './config/types'; import { FormData, ListItem } from './config/types';
@@ -201,7 +201,7 @@ const Users: React.FC = () => {
}, [queryParams]); }, [queryParams]);
return ( return (
<> <StrictMode>
<PageContainer <PageContainer
ghost ghost
header={{ header={{
@@ -330,7 +330,7 @@ const Users: React.FC = () => {
onCancel={handleModalCancel} onCancel={handleModalCancel}
onOk={handleModalOk} onOk={handleModalOk}
></AddModal> ></AddModal>
</> </StrictMode>
); );
}; };