add button to reset all configs

This commit is contained in:
josc146 2023-05-31 14:19:19 +08:00
parent 26174d4c10
commit 7bc8da2e29
3 changed files with 57 additions and 5 deletions

View File

@ -125,5 +125,9 @@
"Writer, Translator, Role-playing": "写作,翻译,角色扮演", "Writer, Translator, Role-playing": "写作,翻译,角色扮演",
"Chinese Kongfu": "情境冒险", "Chinese Kongfu": "情境冒险",
"Allow external access to the API (service must be restarted)": "允许外部访问API (必须重启服务)", "Allow external access to the API (service must be restarted)": "允许外部访问API (必须重启服务)",
"Custom": "自定义" "Custom": "自定义",
"Reset All Configs": "重置所有配置",
"Cancel": "取消",
"Confirm": "确认",
"Are you sure you want to reset all configs? This will obtain the latest preset configs, but will override your custom configs and cannot be undone.": "你确定要重置所有配置吗?这会获取最新的预设配置,但会覆盖你的自定义配置,并且无法撤销"
} }

View File

@ -1,5 +1,26 @@
import { Dropdown, Input, Label, Option, Select, Switch } from '@fluentui/react-components'; import {
import { AddCircle20Regular, DataUsageSettings20Regular, Delete20Regular, Save20Regular } from '@fluentui/react-icons'; Button,
Dialog,
DialogActions,
DialogBody,
DialogContent,
DialogSurface,
DialogTitle,
DialogTrigger,
Dropdown,
Input,
Label,
Option,
Select,
Switch
} from '@fluentui/react-components';
import {
AddCircle20Regular,
ArrowReset20Regular,
DataUsageSettings20Regular,
Delete20Regular,
Save20Regular
} from '@fluentui/react-icons';
import React, { FC } from 'react'; import React, { FC } from 'react';
import { Section } from '../components/Section'; import { Section } from '../components/Section';
import { Labeled } from '../components/Labeled'; import { Labeled } from '../components/Labeled';
@ -680,6 +701,31 @@ export const Configs: FC = observer(() => {
commonStore.deleteModelConfig(selectedIndex); commonStore.deleteModelConfig(selectedIndex);
updateSelectedIndex(Math.min(selectedIndex, commonStore.modelConfigs.length - 1)); updateSelectedIndex(Math.min(selectedIndex, commonStore.modelConfigs.length - 1));
}} /> }} />
<Dialog>
<DialogTrigger disableButtonEnhancement>
<ToolTipButton desc={t('Reset All Configs')} icon={<ArrowReset20Regular />} />
</DialogTrigger>
<DialogSurface>
<DialogBody>
<DialogTitle>{t('Reset All Configs')}</DialogTitle>
<DialogContent>
{t('Are you sure you want to reset all configs? This will obtain the latest preset configs, but will override your custom configs and cannot be undone.')}
</DialogContent>
<DialogActions>
<DialogTrigger disableButtonEnhancement>
<Button appearance="secondary">{t('Cancel')}</Button>
</DialogTrigger>
<DialogTrigger disableButtonEnhancement>
<Button appearance="primary" onClick={() => {
commonStore.setModelConfigs(defaultModelConfigs, false); // updateSelectedIndex() will save configs
updateSelectedIndex(0);
}}>{t('Confirm')}
</Button>
</DialogTrigger>
</DialogActions>
</DialogBody>
</DialogSurface>
</Dialog>
<ToolTipButton desc={t('Save Config')} icon={<Save20Regular />} onClick={onClickSave} /> <ToolTipButton desc={t('Save Config')} icon={<Save20Regular />} onClick={onClickSave} />
</div> </div>
<div className="flex items-center gap-4"> <div className="flex items-center gap-4">

View File

@ -89,14 +89,16 @@ class CommonStore {
}; };
setModelConfigs = (configs: ModelConfig[], saveConfig: boolean = true) => { setModelConfigs = (configs: ModelConfig[], saveConfig: boolean = true) => {
this.modelConfigs = configs; this.modelConfigs = JSON.parse(JSON.stringify(configs)); // deep copy
if (saveConfig) if (saveConfig)
saveConfigs(); saveConfigs();
}; };
createModelConfig = (config: ModelConfig = defaultModelConfigs[0], saveConfig: boolean = true) => { createModelConfig = (config: ModelConfig = defaultModelConfigs[0], saveConfig: boolean = true) => {
if (config.name === defaultModelConfigs[0].name) if (config.name === defaultModelConfigs[0].name) {
config = JSON.parse(JSON.stringify(config)); // deep copy
config.name = new Date().toLocaleString(); config.name = new Date().toLocaleString();
}
this.modelConfigs.push(config); this.modelConfigs.push(config);
if (saveConfig) if (saveConfig)
saveConfigs(); saveConfigs();