|
|
@@ -54,8 +54,10 @@ import {
|
|
|
Anthropic,
|
|
|
Azure,
|
|
|
Baidu,
|
|
|
+ Tencent,
|
|
|
ByteDance,
|
|
|
Alibaba,
|
|
|
+ Moonshot,
|
|
|
Google,
|
|
|
GoogleSafetySettingsThreshold,
|
|
|
OPENAI_BASE_URL,
|
|
|
@@ -65,6 +67,8 @@ import {
|
|
|
ServiceProvider,
|
|
|
SlotID,
|
|
|
UPDATE_URL,
|
|
|
+ Stability,
|
|
|
+ Iflytek,
|
|
|
} from "../constant";
|
|
|
import { Prompt, SearchService, usePromptStore } from "../store/prompt";
|
|
|
import { ErrorBoundary } from "./error";
|
|
|
@@ -242,6 +246,7 @@ function DangerItems() {
|
|
|
subTitle={Locale.Settings.Danger.Reset.SubTitle}
|
|
|
>
|
|
|
<IconButton
|
|
|
+ aria={Locale.Settings.Danger.Reset.Title}
|
|
|
text={Locale.Settings.Danger.Reset.Action}
|
|
|
onClick={async () => {
|
|
|
if (await showConfirm(Locale.Settings.Danger.Reset.Confirm)) {
|
|
|
@@ -256,6 +261,7 @@ function DangerItems() {
|
|
|
subTitle={Locale.Settings.Danger.Clear.SubTitle}
|
|
|
>
|
|
|
<IconButton
|
|
|
+ aria={Locale.Settings.Danger.Clear.Title}
|
|
|
text={Locale.Settings.Danger.Clear.Action}
|
|
|
onClick={async () => {
|
|
|
if (await showConfirm(Locale.Settings.Danger.Clear.Confirm)) {
|
|
|
@@ -509,6 +515,7 @@ function SyncItems() {
|
|
|
>
|
|
|
<div style={{ display: "flex" }}>
|
|
|
<IconButton
|
|
|
+ aria={Locale.Settings.Sync.CloudState + Locale.UI.Config}
|
|
|
icon={<ConfigIcon />}
|
|
|
text={Locale.UI.Config}
|
|
|
onClick={() => {
|
|
|
@@ -539,6 +546,7 @@ function SyncItems() {
|
|
|
>
|
|
|
<div style={{ display: "flex" }}>
|
|
|
<IconButton
|
|
|
+ aria={Locale.Settings.Sync.LocalState + Locale.UI.Export}
|
|
|
icon={<UploadIcon />}
|
|
|
text={Locale.UI.Export}
|
|
|
onClick={() => {
|
|
|
@@ -546,6 +554,7 @@ function SyncItems() {
|
|
|
}}
|
|
|
/>
|
|
|
<IconButton
|
|
|
+ aria={Locale.Settings.Sync.LocalState + Locale.UI.Import}
|
|
|
icon={<DownloadIcon />}
|
|
|
text={Locale.UI.Import}
|
|
|
onClick={() => {
|
|
|
@@ -683,6 +692,7 @@ export function Settings() {
|
|
|
subTitle={Locale.Settings.Access.CustomEndpoint.SubTitle}
|
|
|
>
|
|
|
<input
|
|
|
+ aria-label={Locale.Settings.Access.CustomEndpoint.Title}
|
|
|
type="checkbox"
|
|
|
checked={accessStore.useCustomConfig}
|
|
|
onChange={(e) =>
|
|
|
@@ -702,6 +712,7 @@ export function Settings() {
|
|
|
subTitle={Locale.Settings.Access.OpenAI.Endpoint.SubTitle}
|
|
|
>
|
|
|
<input
|
|
|
+ aria-label={Locale.Settings.Access.OpenAI.Endpoint.Title}
|
|
|
type="text"
|
|
|
value={accessStore.openaiUrl}
|
|
|
placeholder={OPENAI_BASE_URL}
|
|
|
@@ -717,6 +728,8 @@ export function Settings() {
|
|
|
subTitle={Locale.Settings.Access.OpenAI.ApiKey.SubTitle}
|
|
|
>
|
|
|
<PasswordInput
|
|
|
+ aria={Locale.Settings.ShowPassword}
|
|
|
+ aria-label={Locale.Settings.Access.OpenAI.ApiKey.Title}
|
|
|
value={accessStore.openaiApiKey}
|
|
|
type="text"
|
|
|
placeholder={Locale.Settings.Access.OpenAI.ApiKey.Placeholder}
|
|
|
@@ -740,6 +753,7 @@ export function Settings() {
|
|
|
}
|
|
|
>
|
|
|
<input
|
|
|
+ aria-label={Locale.Settings.Access.Azure.Endpoint.Title}
|
|
|
type="text"
|
|
|
value={accessStore.azureUrl}
|
|
|
placeholder={Azure.ExampleEndpoint}
|
|
|
@@ -755,6 +769,7 @@ export function Settings() {
|
|
|
subTitle={Locale.Settings.Access.Azure.ApiKey.SubTitle}
|
|
|
>
|
|
|
<PasswordInput
|
|
|
+ aria-label={Locale.Settings.Access.Azure.ApiKey.Title}
|
|
|
value={accessStore.azureApiKey}
|
|
|
type="text"
|
|
|
placeholder={Locale.Settings.Access.Azure.ApiKey.Placeholder}
|
|
|
@@ -770,6 +785,7 @@ export function Settings() {
|
|
|
subTitle={Locale.Settings.Access.Azure.ApiVerion.SubTitle}
|
|
|
>
|
|
|
<input
|
|
|
+ aria-label={Locale.Settings.Access.Azure.ApiVerion.Title}
|
|
|
type="text"
|
|
|
value={accessStore.azureApiVersion}
|
|
|
placeholder="2023-08-01-preview"
|
|
|
@@ -794,6 +810,7 @@ export function Settings() {
|
|
|
}
|
|
|
>
|
|
|
<input
|
|
|
+ aria-label={Locale.Settings.Access.Google.Endpoint.Title}
|
|
|
type="text"
|
|
|
value={accessStore.googleUrl}
|
|
|
placeholder={Google.ExampleEndpoint}
|
|
|
@@ -809,6 +826,7 @@ export function Settings() {
|
|
|
subTitle={Locale.Settings.Access.Google.ApiKey.SubTitle}
|
|
|
>
|
|
|
<PasswordInput
|
|
|
+ aria-label={Locale.Settings.Access.Google.ApiKey.Title}
|
|
|
value={accessStore.googleApiKey}
|
|
|
type="text"
|
|
|
placeholder={Locale.Settings.Access.Google.ApiKey.Placeholder}
|
|
|
@@ -824,6 +842,7 @@ export function Settings() {
|
|
|
subTitle={Locale.Settings.Access.Google.ApiVersion.SubTitle}
|
|
|
>
|
|
|
<input
|
|
|
+ aria-label={Locale.Settings.Access.Google.ApiVersion.Title}
|
|
|
type="text"
|
|
|
value={accessStore.googleApiVersion}
|
|
|
placeholder="2023-08-01-preview"
|
|
|
@@ -839,6 +858,7 @@ export function Settings() {
|
|
|
subTitle={Locale.Settings.Access.Google.GoogleSafetySettings.SubTitle}
|
|
|
>
|
|
|
<Select
|
|
|
+ aria-label={Locale.Settings.Access.Google.GoogleSafetySettings.Title}
|
|
|
value={accessStore.googleSafetySettings}
|
|
|
onChange={(e) => {
|
|
|
accessStore.update(
|
|
|
@@ -869,6 +889,7 @@ export function Settings() {
|
|
|
}
|
|
|
>
|
|
|
<input
|
|
|
+ aria-label={Locale.Settings.Access.Anthropic.Endpoint.Title}
|
|
|
type="text"
|
|
|
value={accessStore.anthropicUrl}
|
|
|
placeholder={Anthropic.ExampleEndpoint}
|
|
|
@@ -884,6 +905,7 @@ export function Settings() {
|
|
|
subTitle={Locale.Settings.Access.Anthropic.ApiKey.SubTitle}
|
|
|
>
|
|
|
<PasswordInput
|
|
|
+ aria-label={Locale.Settings.Access.Anthropic.ApiKey.Title}
|
|
|
value={accessStore.anthropicApiKey}
|
|
|
type="text"
|
|
|
placeholder={Locale.Settings.Access.Anthropic.ApiKey.Placeholder}
|
|
|
@@ -899,6 +921,7 @@ export function Settings() {
|
|
|
subTitle={Locale.Settings.Access.Anthropic.ApiVerion.SubTitle}
|
|
|
>
|
|
|
<input
|
|
|
+ aria-label={Locale.Settings.Access.Anthropic.ApiVerion.Title}
|
|
|
type="text"
|
|
|
value={accessStore.anthropicApiVersion}
|
|
|
placeholder={Anthropic.Vision}
|
|
|
@@ -920,6 +943,7 @@ export function Settings() {
|
|
|
subTitle={Locale.Settings.Access.Baidu.Endpoint.SubTitle}
|
|
|
>
|
|
|
<input
|
|
|
+ aria-label={Locale.Settings.Access.Baidu.Endpoint.Title}
|
|
|
type="text"
|
|
|
value={accessStore.baiduUrl}
|
|
|
placeholder={Baidu.ExampleEndpoint}
|
|
|
@@ -935,6 +959,7 @@ export function Settings() {
|
|
|
subTitle={Locale.Settings.Access.Baidu.ApiKey.SubTitle}
|
|
|
>
|
|
|
<PasswordInput
|
|
|
+ aria-label={Locale.Settings.Access.Baidu.ApiKey.Title}
|
|
|
value={accessStore.baiduApiKey}
|
|
|
type="text"
|
|
|
placeholder={Locale.Settings.Access.Baidu.ApiKey.Placeholder}
|
|
|
@@ -950,6 +975,7 @@ export function Settings() {
|
|
|
subTitle={Locale.Settings.Access.Baidu.SecretKey.SubTitle}
|
|
|
>
|
|
|
<PasswordInput
|
|
|
+ aria-label={Locale.Settings.Access.Baidu.SecretKey.Title}
|
|
|
value={accessStore.baiduSecretKey}
|
|
|
type="text"
|
|
|
placeholder={Locale.Settings.Access.Baidu.SecretKey.Placeholder}
|
|
|
@@ -963,6 +989,60 @@ export function Settings() {
|
|
|
</>
|
|
|
);
|
|
|
|
|
|
+ const tencentConfigComponent = accessStore.provider ===
|
|
|
+ ServiceProvider.Tencent && (
|
|
|
+ <>
|
|
|
+ <ListItem
|
|
|
+ title={Locale.Settings.Access.Tencent.Endpoint.Title}
|
|
|
+ subTitle={Locale.Settings.Access.Tencent.Endpoint.SubTitle}
|
|
|
+ >
|
|
|
+ <input
|
|
|
+ aria-label={Locale.Settings.Access.Tencent.Endpoint.Title}
|
|
|
+ type="text"
|
|
|
+ value={accessStore.tencentUrl}
|
|
|
+ placeholder={Tencent.ExampleEndpoint}
|
|
|
+ onChange={(e) =>
|
|
|
+ accessStore.update(
|
|
|
+ (access) => (access.tencentUrl = e.currentTarget.value),
|
|
|
+ )
|
|
|
+ }
|
|
|
+ ></input>
|
|
|
+ </ListItem>
|
|
|
+ <ListItem
|
|
|
+ title={Locale.Settings.Access.Tencent.ApiKey.Title}
|
|
|
+ subTitle={Locale.Settings.Access.Tencent.ApiKey.SubTitle}
|
|
|
+ >
|
|
|
+ <PasswordInput
|
|
|
+ aria-label={Locale.Settings.Access.Tencent.ApiKey.Title}
|
|
|
+ value={accessStore.tencentSecretId}
|
|
|
+ type="text"
|
|
|
+ placeholder={Locale.Settings.Access.Tencent.ApiKey.Placeholder}
|
|
|
+ onChange={(e) => {
|
|
|
+ accessStore.update(
|
|
|
+ (access) => (access.tencentSecretId = e.currentTarget.value),
|
|
|
+ );
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </ListItem>
|
|
|
+ <ListItem
|
|
|
+ title={Locale.Settings.Access.Tencent.SecretKey.Title}
|
|
|
+ subTitle={Locale.Settings.Access.Tencent.SecretKey.SubTitle}
|
|
|
+ >
|
|
|
+ <PasswordInput
|
|
|
+ aria-label={Locale.Settings.Access.Tencent.SecretKey.Title}
|
|
|
+ value={accessStore.tencentSecretKey}
|
|
|
+ type="text"
|
|
|
+ placeholder={Locale.Settings.Access.Tencent.SecretKey.Placeholder}
|
|
|
+ onChange={(e) => {
|
|
|
+ accessStore.update(
|
|
|
+ (access) => (access.tencentSecretKey = e.currentTarget.value),
|
|
|
+ );
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </ListItem>
|
|
|
+ </>
|
|
|
+ );
|
|
|
+
|
|
|
const byteDanceConfigComponent = accessStore.provider ===
|
|
|
ServiceProvider.ByteDance && (
|
|
|
<>
|
|
|
@@ -974,6 +1054,7 @@ export function Settings() {
|
|
|
}
|
|
|
>
|
|
|
<input
|
|
|
+ aria-label={Locale.Settings.Access.ByteDance.Endpoint.Title}
|
|
|
type="text"
|
|
|
value={accessStore.bytedanceUrl}
|
|
|
placeholder={ByteDance.ExampleEndpoint}
|
|
|
@@ -989,6 +1070,7 @@ export function Settings() {
|
|
|
subTitle={Locale.Settings.Access.ByteDance.ApiKey.SubTitle}
|
|
|
>
|
|
|
<PasswordInput
|
|
|
+ aria-label={Locale.Settings.Access.ByteDance.ApiKey.Title}
|
|
|
value={accessStore.bytedanceApiKey}
|
|
|
type="text"
|
|
|
placeholder={Locale.Settings.Access.ByteDance.ApiKey.Placeholder}
|
|
|
@@ -1013,6 +1095,7 @@ export function Settings() {
|
|
|
}
|
|
|
>
|
|
|
<input
|
|
|
+ aria-label={Locale.Settings.Access.Alibaba.Endpoint.Title}
|
|
|
type="text"
|
|
|
value={accessStore.alibabaUrl}
|
|
|
placeholder={Alibaba.ExampleEndpoint}
|
|
|
@@ -1028,6 +1111,7 @@ export function Settings() {
|
|
|
subTitle={Locale.Settings.Access.Alibaba.ApiKey.SubTitle}
|
|
|
>
|
|
|
<PasswordInput
|
|
|
+ aria-label={Locale.Settings.Access.Alibaba.ApiKey.Title}
|
|
|
value={accessStore.alibabaApiKey}
|
|
|
type="text"
|
|
|
placeholder={Locale.Settings.Access.Alibaba.ApiKey.Placeholder}
|
|
|
@@ -1041,6 +1125,145 @@ export function Settings() {
|
|
|
</>
|
|
|
);
|
|
|
|
|
|
+ const moonshotConfigComponent = accessStore.provider ===
|
|
|
+ ServiceProvider.Moonshot && (
|
|
|
+ <>
|
|
|
+ <ListItem
|
|
|
+ title={Locale.Settings.Access.Moonshot.Endpoint.Title}
|
|
|
+ subTitle={
|
|
|
+ Locale.Settings.Access.Moonshot.Endpoint.SubTitle +
|
|
|
+ Moonshot.ExampleEndpoint
|
|
|
+ }
|
|
|
+ >
|
|
|
+ <input
|
|
|
+ aria-label={Locale.Settings.Access.Moonshot.Endpoint.Title}
|
|
|
+ type="text"
|
|
|
+ value={accessStore.moonshotUrl}
|
|
|
+ placeholder={Moonshot.ExampleEndpoint}
|
|
|
+ onChange={(e) =>
|
|
|
+ accessStore.update(
|
|
|
+ (access) => (access.moonshotUrl = e.currentTarget.value),
|
|
|
+ )
|
|
|
+ }
|
|
|
+ ></input>
|
|
|
+ </ListItem>
|
|
|
+ <ListItem
|
|
|
+ title={Locale.Settings.Access.Moonshot.ApiKey.Title}
|
|
|
+ subTitle={Locale.Settings.Access.Moonshot.ApiKey.SubTitle}
|
|
|
+ >
|
|
|
+ <PasswordInput
|
|
|
+ aria-label={Locale.Settings.Access.Moonshot.ApiKey.Title}
|
|
|
+ value={accessStore.moonshotApiKey}
|
|
|
+ type="text"
|
|
|
+ placeholder={Locale.Settings.Access.Moonshot.ApiKey.Placeholder}
|
|
|
+ onChange={(e) => {
|
|
|
+ accessStore.update(
|
|
|
+ (access) => (access.moonshotApiKey = e.currentTarget.value),
|
|
|
+ );
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </ListItem>
|
|
|
+ </>
|
|
|
+ );
|
|
|
+
|
|
|
+ const stabilityConfigComponent = accessStore.provider ===
|
|
|
+ ServiceProvider.Stability && (
|
|
|
+ <>
|
|
|
+ <ListItem
|
|
|
+ title={Locale.Settings.Access.Stability.Endpoint.Title}
|
|
|
+ subTitle={
|
|
|
+ Locale.Settings.Access.Stability.Endpoint.SubTitle +
|
|
|
+ Stability.ExampleEndpoint
|
|
|
+ }
|
|
|
+ >
|
|
|
+ <input
|
|
|
+ aria-label={Locale.Settings.Access.Stability.Endpoint.Title}
|
|
|
+ type="text"
|
|
|
+ value={accessStore.stabilityUrl}
|
|
|
+ placeholder={Stability.ExampleEndpoint}
|
|
|
+ onChange={(e) =>
|
|
|
+ accessStore.update(
|
|
|
+ (access) => (access.stabilityUrl = e.currentTarget.value),
|
|
|
+ )
|
|
|
+ }
|
|
|
+ ></input>
|
|
|
+ </ListItem>
|
|
|
+ <ListItem
|
|
|
+ title={Locale.Settings.Access.Stability.ApiKey.Title}
|
|
|
+ subTitle={Locale.Settings.Access.Stability.ApiKey.SubTitle}
|
|
|
+ >
|
|
|
+ <PasswordInput
|
|
|
+ aria-label={Locale.Settings.Access.Stability.ApiKey.Title}
|
|
|
+ value={accessStore.stabilityApiKey}
|
|
|
+ type="text"
|
|
|
+ placeholder={Locale.Settings.Access.Stability.ApiKey.Placeholder}
|
|
|
+ onChange={(e) => {
|
|
|
+ accessStore.update(
|
|
|
+ (access) => (access.stabilityApiKey = e.currentTarget.value),
|
|
|
+ );
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </ListItem>
|
|
|
+ </>
|
|
|
+ );
|
|
|
+ const lflytekConfigComponent = accessStore.provider ===
|
|
|
+ ServiceProvider.Iflytek && (
|
|
|
+ <>
|
|
|
+ <ListItem
|
|
|
+ title={Locale.Settings.Access.Iflytek.Endpoint.Title}
|
|
|
+ subTitle={
|
|
|
+ Locale.Settings.Access.Iflytek.Endpoint.SubTitle +
|
|
|
+ Iflytek.ExampleEndpoint
|
|
|
+ }
|
|
|
+ >
|
|
|
+ <input
|
|
|
+ aria-label={Locale.Settings.Access.Iflytek.Endpoint.Title}
|
|
|
+ type="text"
|
|
|
+ value={accessStore.iflytekUrl}
|
|
|
+ placeholder={Iflytek.ExampleEndpoint}
|
|
|
+ onChange={(e) =>
|
|
|
+ accessStore.update(
|
|
|
+ (access) => (access.iflytekUrl = e.currentTarget.value),
|
|
|
+ )
|
|
|
+ }
|
|
|
+ ></input>
|
|
|
+ </ListItem>
|
|
|
+ <ListItem
|
|
|
+ title={Locale.Settings.Access.Iflytek.ApiKey.Title}
|
|
|
+ subTitle={Locale.Settings.Access.Iflytek.ApiKey.SubTitle}
|
|
|
+ >
|
|
|
+ <PasswordInput
|
|
|
+ aria-label={Locale.Settings.Access.Iflytek.ApiKey.Title}
|
|
|
+ value={accessStore.iflytekApiKey}
|
|
|
+ type="text"
|
|
|
+ placeholder={Locale.Settings.Access.Iflytek.ApiKey.Placeholder}
|
|
|
+ onChange={(e) => {
|
|
|
+ accessStore.update(
|
|
|
+ (access) => (access.iflytekApiKey = e.currentTarget.value),
|
|
|
+ );
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </ListItem>
|
|
|
+
|
|
|
+ <ListItem
|
|
|
+ title={Locale.Settings.Access.Iflytek.ApiSecret.Title}
|
|
|
+ subTitle={Locale.Settings.Access.Iflytek.ApiSecret.SubTitle}
|
|
|
+ >
|
|
|
+ <PasswordInput
|
|
|
+ aria-label={Locale.Settings.Access.Iflytek.ApiSecret.Title}
|
|
|
+ value={accessStore.iflytekApiSecret}
|
|
|
+ type="text"
|
|
|
+ placeholder={Locale.Settings.Access.Iflytek.ApiSecret.Placeholder}
|
|
|
+ onChange={(e) => {
|
|
|
+ accessStore.update(
|
|
|
+ (access) => (access.iflytekApiSecret = e.currentTarget.value),
|
|
|
+ );
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </ListItem>
|
|
|
+ </>
|
|
|
+ );
|
|
|
+
|
|
|
return (
|
|
|
<ErrorBoundary>
|
|
|
<div className="window-header" data-tauri-drag-region>
|
|
|
@@ -1057,6 +1280,7 @@ export function Settings() {
|
|
|
<div className="window-action-button"></div>
|
|
|
<div className="window-action-button">
|
|
|
<IconButton
|
|
|
+ aria={Locale.UI.Close}
|
|
|
icon={<CloseIcon />}
|
|
|
onClick={() => navigate(Path.Home)}
|
|
|
bordered
|
|
|
@@ -1080,6 +1304,8 @@ export function Settings() {
|
|
|
open={showEmojiPicker}
|
|
|
>
|
|
|
<div
|
|
|
+ aria-label={Locale.Settings.Avatar}
|
|
|
+ tabIndex={0}
|
|
|
className={styles.avatar}
|
|
|
onClick={() => {
|
|
|
setShowEmojiPicker(!showEmojiPicker);
|
|
|
@@ -1117,6 +1343,7 @@ export function Settings() {
|
|
|
|
|
|
<ListItem title={Locale.Settings.SendKey}>
|
|
|
<Select
|
|
|
+ aria-label={Locale.Settings.SendKey}
|
|
|
value={config.submitKey}
|
|
|
onChange={(e) => {
|
|
|
updateConfig(
|
|
|
@@ -1135,6 +1362,7 @@ export function Settings() {
|
|
|
|
|
|
<ListItem title={Locale.Settings.Theme}>
|
|
|
<Select
|
|
|
+ aria-label={Locale.Settings.Theme}
|
|
|
value={config.theme}
|
|
|
onChange={(e) => {
|
|
|
updateConfig(
|
|
|
@@ -1152,6 +1380,7 @@ export function Settings() {
|
|
|
|
|
|
<ListItem title={Locale.Settings.Lang.Name}>
|
|
|
<Select
|
|
|
+ aria-label={Locale.Settings.Lang.Name}
|
|
|
value={getLang()}
|
|
|
onChange={(e) => {
|
|
|
changeLang(e.target.value as any);
|
|
|
@@ -1170,6 +1399,7 @@ export function Settings() {
|
|
|
subTitle={Locale.Settings.FontSize.SubTitle}
|
|
|
>
|
|
|
<InputRange
|
|
|
+ aria={Locale.Settings.FontSize.Title}
|
|
|
title={`${config.fontSize ?? 14}px`}
|
|
|
value={config.fontSize}
|
|
|
min="12"
|
|
|
@@ -1184,11 +1414,29 @@ export function Settings() {
|
|
|
></InputRange>
|
|
|
</ListItem>
|
|
|
|
|
|
+ <ListItem
|
|
|
+ title={Locale.Settings.FontFamily.Title}
|
|
|
+ subTitle={Locale.Settings.FontFamily.SubTitle}
|
|
|
+ >
|
|
|
+ <input
|
|
|
+ aria-label={Locale.Settings.FontFamily.Title}
|
|
|
+ type="text"
|
|
|
+ value={config.fontFamily}
|
|
|
+ placeholder={Locale.Settings.FontFamily.Placeholder}
|
|
|
+ onChange={(e) =>
|
|
|
+ updateConfig(
|
|
|
+ (config) => (config.fontFamily = e.currentTarget.value),
|
|
|
+ )
|
|
|
+ }
|
|
|
+ ></input>
|
|
|
+ </ListItem>
|
|
|
+
|
|
|
<ListItem
|
|
|
title={Locale.Settings.AutoGenerateTitle.Title}
|
|
|
subTitle={Locale.Settings.AutoGenerateTitle.SubTitle}
|
|
|
>
|
|
|
<input
|
|
|
+ aria-label={Locale.Settings.AutoGenerateTitle.Title}
|
|
|
type="checkbox"
|
|
|
checked={config.enableAutoGenerateTitle}
|
|
|
onChange={(e) =>
|
|
|
@@ -1205,6 +1453,7 @@ export function Settings() {
|
|
|
subTitle={Locale.Settings.SendPreviewBubble.SubTitle}
|
|
|
>
|
|
|
<input
|
|
|
+ aria-label={Locale.Settings.SendPreviewBubble.Title}
|
|
|
type="checkbox"
|
|
|
checked={config.sendPreviewBubble}
|
|
|
onChange={(e) =>
|
|
|
@@ -1225,6 +1474,7 @@ export function Settings() {
|
|
|
subTitle={Locale.Settings.Mask.Splash.SubTitle}
|
|
|
>
|
|
|
<input
|
|
|
+ aria-label={Locale.Settings.Mask.Splash.Title}
|
|
|
type="checkbox"
|
|
|
checked={!config.dontShowMaskSplashScreen}
|
|
|
onChange={(e) =>
|
|
|
@@ -1242,6 +1492,7 @@ export function Settings() {
|
|
|
subTitle={Locale.Settings.Mask.Builtin.SubTitle}
|
|
|
>
|
|
|
<input
|
|
|
+ aria-label={Locale.Settings.Mask.Builtin.Title}
|
|
|
type="checkbox"
|
|
|
checked={config.hideBuiltinMasks}
|
|
|
onChange={(e) =>
|
|
|
@@ -1260,6 +1511,7 @@ export function Settings() {
|
|
|
subTitle={Locale.Settings.Prompt.Disable.SubTitle}
|
|
|
>
|
|
|
<input
|
|
|
+ aria-label={Locale.Settings.Prompt.Disable.Title}
|
|
|
type="checkbox"
|
|
|
checked={config.disablePromptHint}
|
|
|
onChange={(e) =>
|
|
|
@@ -1279,6 +1531,7 @@ export function Settings() {
|
|
|
)}
|
|
|
>
|
|
|
<IconButton
|
|
|
+ aria={Locale.Settings.Prompt.List + Locale.Settings.Prompt.Edit}
|
|
|
icon={<EditIcon />}
|
|
|
text={Locale.Settings.Prompt.Edit}
|
|
|
onClick={() => setShowPromptModal(true)}
|
|
|
@@ -1300,6 +1553,7 @@ export function Settings() {
|
|
|
subTitle={Locale.Settings.Access.Provider.SubTitle}
|
|
|
>
|
|
|
<Select
|
|
|
+ aria-label={Locale.Settings.Access.Provider.Title}
|
|
|
value={accessStore.provider}
|
|
|
onChange={(e) => {
|
|
|
accessStore.update(
|
|
|
@@ -1324,6 +1578,10 @@ export function Settings() {
|
|
|
{baiduConfigComponent}
|
|
|
{byteDanceConfigComponent}
|
|
|
{alibabaConfigComponent}
|
|
|
+ {tencentConfigComponent}
|
|
|
+ {moonshotConfigComponent}
|
|
|
+ {stabilityConfigComponent}
|
|
|
+ {lflytekConfigComponent}
|
|
|
</>
|
|
|
)}
|
|
|
</>
|
|
|
@@ -1360,6 +1618,7 @@ export function Settings() {
|
|
|
subTitle={Locale.Settings.Access.CustomModel.SubTitle}
|
|
|
>
|
|
|
<input
|
|
|
+ aria-label={Locale.Settings.Access.CustomModel.Title}
|
|
|
type="text"
|
|
|
value={config.customModels}
|
|
|
placeholder="model1,model2,model3"
|