diff --git a/src/components/seal-form/seal-textarea.tsx b/src/components/seal-form/seal-textarea.tsx index ceceb866..5f108d1f 100644 --- a/src/components/seal-form/seal-textarea.tsx +++ b/src/components/seal-form/seal-textarea.tsx @@ -13,7 +13,7 @@ import Wrapper from './wrapper'; import InputWrapper from './wrapper/input'; const LabelWrapper = styled.div` - background-color: var(--color-white-1); + background-color: var(--ant-color-bg-container); `; interface InputTextareaProps extends TextAreaProps { diff --git a/src/components/seal-form/wrapper/index.tsx b/src/components/seal-form/wrapper/index.tsx index d746d027..f3ae1bcc 100644 --- a/src/components/seal-form/wrapper/index.tsx +++ b/src/components/seal-form/wrapper/index.tsx @@ -193,7 +193,6 @@ const Wrapper: FC = ({ onClick }) => { const { token } = theme.useToken(); - console.log('token=====', token); const wrapperClass = classNames( status ? `validate-status-${status}` : '', className, diff --git a/src/config/theme/dark.ts b/src/config/theme/dark.ts index 30cf58f2..32c515de 100644 --- a/src/config/theme/dark.ts +++ b/src/config/theme/dark.ts @@ -79,11 +79,6 @@ export default { fontSize: 14, motion: true, colorFill: '#000', - // colorFillTertiary: '#1D1E20', - // colorBgContainer: '#141414', colorBgBase: '#000' - // colorBorder: '#353535' - // colorSplit: '#262626', - // colorBorderSecondary: '#262626' } }; diff --git a/src/locales/en-US/common.ts b/src/locales/en-US/common.ts index 1e881cd8..e277f8f5 100644 --- a/src/locales/en-US/common.ts +++ b/src/locales/en-US/common.ts @@ -239,5 +239,8 @@ export default { 'common.appearance.dark': 'Dark', 'common.appearance.light': 'Light', 'common.appearance.system': 'System Default', - 'common.exception.404': 'Sorry, the page you visited does not exist.' + 'common.exception.404': 'Sorry, the page you visited does not exist.', + 'common.appearance.darkmode': 'Dark Mode', + 'common.appearance.lightmode': 'Light Mode', + 'common.appearance.tips': 'Default follows system preference.' }; diff --git a/src/locales/en-US/menu.ts b/src/locales/en-US/menu.ts index da481597..ffab7995 100644 --- a/src/locales/en-US/menu.ts +++ b/src/locales/en-US/menu.ts @@ -17,5 +17,6 @@ export default { 'menu.users': 'Users', 'menu.profile': 'Profile', 'menu.login': 'Login', - 'menu.usage': 'Usage' + 'menu.usage': 'Usage', + 'menu.404': '404' }; diff --git a/src/locales/ja-JP/common.ts b/src/locales/ja-JP/common.ts index 61a8cfe0..87049b42 100644 --- a/src/locales/ja-JP/common.ts +++ b/src/locales/ja-JP/common.ts @@ -239,7 +239,10 @@ export default { 'common.appearance.dark': 'Dark', 'common.appearance.light': 'Light', 'common.appearance.system': 'System Default', - 'common.exception.404': 'Sorry, the page you visited does not exist.' + 'common.exception.404': 'Sorry, the page you visited does not exist.', + 'common.appearance.darkmode': 'Dark Mode', + 'common.appearance.lightmode': 'Light Mode', + 'common.appearance.tips': 'Default follows system preference.' }; // ========== To-Do: Translate Keys (Remove After Translation) ========== @@ -247,5 +250,8 @@ export default { // 2. 'common.appearance.light': 'Light', // 3. 'common.appearance.system': 'System Default', // 4. 'common.appearance': 'Appearance', -// 5. 'common.exception.404': 'Sorry, the page you visited does not exist.' +// 5. 'common.exception.404': 'Sorry, the page you visited does not exist.', +// 6. 'common.appearance.darkmode': 'Dark Mode', +// 7. 'common.appearance.lightmode': 'Light Mode', +// 8. 'common.appearance.tips': 'Default follows system preference.' // ========== End of To-Do List ========== diff --git a/src/locales/ja-JP/menu.ts b/src/locales/ja-JP/menu.ts index c2ae8600..fcf75f5d 100644 --- a/src/locales/ja-JP/menu.ts +++ b/src/locales/ja-JP/menu.ts @@ -17,5 +17,6 @@ export default { 'menu.users': 'ユーザー', 'menu.profile': 'プロフィール', 'menu.login': 'ログイン', - 'menu.usage': '使用状況' + 'menu.usage': '使用状況', + 'menu.404': '404' }; diff --git a/src/locales/ru-RU/common.ts b/src/locales/ru-RU/common.ts index 755dc7fe..4ecefa20 100644 --- a/src/locales/ru-RU/common.ts +++ b/src/locales/ru-RU/common.ts @@ -237,9 +237,15 @@ export default { 'common.appearance.dark': 'Темная', 'common.appearance.light': 'Светлая', 'common.appearance.system': 'Как в системе', - 'common.exception.404': 'Sorry, the page you visited does not exist.' + 'common.exception.404': 'Sorry, the page you visited does not exist.', + 'common.appearance.darkmode': 'Dark Mode', + 'common.appearance.lightmode': 'Light Mode', + 'common.appearance.tips': 'Default follows system preference.' }; // ========== To-Do: Translate Keys (Remove After Translation) ========== -// 1. 'common.exception.404': 'Sorry, the page you visited does not exist.' +// 1. 'common.exception.404': 'Sorry, the page you visited does not exist.', +// 2. 'common.appearance.darkmode': 'Dark Mode', +// 3. 'common.appearance.lightmode': 'Light Mode', +// 4. 'common.appearance.tips': 'Default follows system preference.' // ========== End of To-Do List ========== diff --git a/src/locales/ru-RU/menu.ts b/src/locales/ru-RU/menu.ts index 0c8deb6d..d8a7229d 100644 --- a/src/locales/ru-RU/menu.ts +++ b/src/locales/ru-RU/menu.ts @@ -17,5 +17,6 @@ export default { 'menu.users': 'Пользователи', 'menu.profile': 'Профиль', 'menu.login': 'Авторизация', - 'menu.usage': 'Использование' + 'menu.usage': 'Использование', + 'menu.404': '404' }; diff --git a/src/locales/zh-CN/common.ts b/src/locales/zh-CN/common.ts index 3a09732c..841f3b04 100644 --- a/src/locales/zh-CN/common.ts +++ b/src/locales/zh-CN/common.ts @@ -234,5 +234,8 @@ export default { 'common.appearance.dark': '深色', 'common.appearance.light': '浅色', 'common.appearance.system': '跟随系统', - 'common.exception.404': '抱歉,你访问的页面不存在' + 'common.exception.404': '抱歉,你访问的页面不存在', + 'common.appearance.darkmode': '深色模式', + 'common.appearance.lightmode': '浅色模式', + 'common.appearance.tips': '默认跟随系统设置' }; diff --git a/src/locales/zh-CN/menu.ts b/src/locales/zh-CN/menu.ts index 57492aae..357705d6 100644 --- a/src/locales/zh-CN/menu.ts +++ b/src/locales/zh-CN/menu.ts @@ -17,5 +17,6 @@ export default { 'menu.users': '用户', 'menu.profile': '个人信息', 'menu.login': '登录', - 'menu.usage': '使用量' + 'menu.usage': '使用量', + 'menu.404': '404' }; diff --git a/src/pages/llmodels/components/advance-config.tsx b/src/pages/llmodels/components/advance-config.tsx index b4f1a1c6..2d465d3e 100644 --- a/src/pages/llmodels/components/advance-config.tsx +++ b/src/pages/llmodels/components/advance-config.tsx @@ -43,6 +43,34 @@ interface AdvanceConfigProps { source: string; } +const placementStrategyTips = [ + { + title: 'Spread', + tips: 'resources.form.spread.tips' + }, + { + title: 'Binpack', + tips: 'resources.form.binpack.tips' + } +]; + +const scheduleTypeTips = [ + { + title: { + text: 'models.form.scheduletype.auto', + locale: true + }, + tips: 'models.form.scheduletype.auto.tips' + }, + { + title: { + text: 'models.form.scheduletype.manual', + locale: true + }, + tips: 'models.form.scheduletype.manual.tips' + } +]; + const CheckboxField: React.FC<{ title: string; label: string; @@ -78,40 +106,6 @@ const AdvanceConfig: React.FC = (props) => { const worker_selector = Form.useWatch('worker_selector', form); const { onValuesChange } = useFormContext(); - const placementStrategyTips = [ - { - title: 'Spread', - tips: intl.formatMessage({ - id: 'resources.form.spread.tips' - }) - }, - { - title: 'Binpack', - tips: intl.formatMessage({ - id: 'resources.form.binpack.tips' - }) - } - ]; - - const scheduleTypeTips = [ - { - title: intl.formatMessage({ - id: 'models.form.scheduletype.auto' - }), - tips: intl.formatMessage({ - id: 'models.form.scheduletype.auto.tips' - }) - }, - { - title: intl.formatMessage({ - id: 'models.form.scheduletype.manual' - }), - tips: intl.formatMessage({ - id: 'models.form.scheduletype.manual.tips' - }) - } - ]; - const paramsConfig = useMemo(() => { if (backend === backendOptionsMap.llamaBox) { return llamaConfig; diff --git a/src/pages/llmodels/components/deploy-modal.tsx b/src/pages/llmodels/components/deploy-modal.tsx index df800ec6..7e25e2df 100644 --- a/src/pages/llmodels/components/deploy-modal.tsx +++ b/src/pages/llmodels/components/deploy-modal.tsx @@ -154,7 +154,6 @@ const AddModal: FC = (props) => { const handleOnSelectModel = (item: any, evaluate?: boolean) => { setSelectedModel(item); - console.log('item.isGGUF=========>', item.isGGUF); if (!item.isGGUF) { setIsGGUF(false); form.current?.form?.resetFields(resetFields); diff --git a/src/pages/llmodels/components/update-modal.tsx b/src/pages/llmodels/components/update-modal.tsx index eeb7fbca..7c59eeb4 100644 --- a/src/pages/llmodels/components/update-modal.tsx +++ b/src/pages/llmodels/components/update-modal.tsx @@ -81,6 +81,13 @@ const UpdateModal: React.FC = (props) => { } }; + const customizer = (val1: any, val2: any) => { + if ((val1 === null && val2 === '') || (val1 === '' && val2 === null)) { + return true; + } + return undefined; + }; + const handleOnValuesChange = (data: any) => { const formdata = form.getFieldsValue?.(); let alldata = {}; @@ -100,7 +107,7 @@ const UpdateModal: React.FC = (props) => { worker_selector: originFormData.current?.worker_selector || null }; } - const isEqual = _.isEqual(alldata, originFormData.current); + const isEqual = _.isEqualWith(alldata, originFormData.current, customizer); if (isEqual) { setWarningStatus({ show: false, diff --git a/src/pages/profile/components/appearance.tsx b/src/pages/profile/components/appearance.tsx index 859c1df0..280f3592 100644 --- a/src/pages/profile/components/appearance.tsx +++ b/src/pages/profile/components/appearance.tsx @@ -1,8 +1,29 @@ import useUserSettings from '@/hooks/use-user-settings'; import { MoonOutlined, SunOutlined } from '@ant-design/icons'; import { useIntl } from '@umijs/max'; -import { Radio } from 'antd'; -import React from 'react'; +import { Switch } from 'antd'; +import React, { useMemo } from 'react'; +import styled from 'styled-components'; + +const Wrapper = styled.div` + display: flex; + flex-direction: column; + gap: 16px; + padding: 16px 0; + .theme { + display: flex; + align-items: center; + justify-content: space-between; + max-width: 220px; + } + .theme-label { + font-size: 16px; + font-weight: var(--font-weight-500); + } + .tips { + color: var(--ant-color-text-secondary); + } +`; const ThemeOptions = [ { @@ -18,23 +39,34 @@ const ThemeOptions = [ ]; const Appearance: React.FC = () => { const { setTheme, userSettings } = useUserSettings(); + const intl = useIntl(); - const handleOnChange = (e: any) => { - setTheme(e.target.value); + const handleOnChange = (checked: boolean) => { + if (checked) { + setTheme('realDark'); + } else { + setTheme('light'); + } }; + + const isDarkMode = useMemo(() => { + const darkMode = userSettings?.theme === 'realDark'; + return darkMode; + }, [userSettings?.theme]); + return ( - - {ThemeOptions.map((item) => ( - - {intl.formatMessage({ id: item.label })} - - ))} - + +
+ + {intl.formatMessage({ id: 'common.appearance.darkmode' })} + + +
+
+ {intl.formatMessage({ id: 'common.appearance.tips' })} +
+
); };