chore: add setting

This commit is contained in:
river 2024-09-19 12:38:46 +08:00
parent 065f015f7b
commit 775794e0e4
4 changed files with 54 additions and 8 deletions

View File

@ -9,6 +9,7 @@ import CopyIcon from "../icons/copy.svg";
import ClearIcon from "../icons/clear.svg";
import LoadingIcon from "../icons/three-dots.svg";
import EditIcon from "../icons/edit.svg";
import FireIcon from "../icons/fire.svg";
import EyeIcon from "../icons/eye.svg";
import DownloadIcon from "../icons/download.svg";
import UploadIcon from "../icons/upload.svg";
@ -69,6 +70,7 @@ import {
UPDATE_URL,
Stability,
Iflytek,
SAAS_CHAT_URL,
} from "../constant";
import { Prompt, SearchService, usePromptStore } from "../store/prompt";
import { ErrorBoundary } from "./error";
@ -686,6 +688,28 @@ export function Settings() {
</ListItem>
);
const saasStartComponent = (
<ListItem
title={
Locale.Settings.Access.SaasStart.Title +
`${Locale.Settings.Access.SaasStart.Label}`
}
subTitle={Locale.Settings.Access.SaasStart.SubTitle}
>
<IconButton
aria={
Locale.Settings.Access.SaasStart.Title +
Locale.Settings.Access.SaasStart.ChatNow
}
icon={<FireIcon />}
text={Locale.Settings.Access.SaasStart.ChatNow}
onClick={() => {
window.location.href = SAAS_CHAT_URL;
}}
/>
</ListItem>
);
const useCustomConfigComponent = // Conditionally render the following ListItem based on clientConfig.isApp
!clientConfig?.isApp && ( // only show if isApp is false
<ListItem
@ -1541,6 +1565,7 @@ export function Settings() {
</List>
<List id={SlotID.CustomModel}>
{saasStartComponent}
{accessCodeComponent}
{!accessStore.hideUserApiKey && (

1
app/icons/fire.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="M12.832 21.801c3.126-.626 7.168-2.875 7.168-8.69c0-5.291-3.873-8.815-6.658-10.434c-.619-.36-1.342.113-1.342.828v1.828c0 1.442-.606 4.074-2.29 5.169c-.86.559-1.79-.278-1.894-1.298l-.086-.838c-.1-.974-1.092-1.565-1.87-.971C4.461 8.46 3 10.33 3 13.11C3 20.221 8.289 22 10.933 22q.232 0 .484-.015C10.111 21.874 8 21.064 8 18.444c0-2.05 1.495-3.435 2.631-4.11c.306-.18.663.055.663.41v.59c0 .45.175 1.155.59 1.637c.47.546 1.159-.026 1.214-.744c.018-.226.246-.37.442-.256c.641.375 1.46 1.175 1.46 2.473c0 2.048-1.129 2.99-2.168 3.357"/></svg>

After

Width:  |  Height:  |  Size: 648 B

View File

@ -8,12 +8,12 @@ const cn = {
WIP: "该功能仍在开发中……",
Error: {
Unauthorized: isApp
? `😆 对话遇到了一些问题,不用慌,立刻带你排查:
\\ 1 [ 🚀](${SAAS_CHAT_URL})
? `😆 对话遇到了一些问题,不用慌:
\\ 1 [ 🚀](${SAAS_CHAT_URL})
\\ 2 OpenAI [](/#/settings) `
: `😆 对话遇到了一些问题,不用慌,立刻带你排查:
\ 1 [ 🚀](${SAAS_CHAT_URL})
\ 2 使[](/#/auth)访 🔑
\ 1 [ 🚀](${SAAS_CHAT_URL})
\ 2 使[](/#/auth)访 🔑
\ 3 OpenAI [](/#/settings)
`,
},
@ -306,6 +306,13 @@ const cn = {
},
Access: {
SaasStart: {
Title: "使用 NextChat AI",
Label: "(性价比最高的方案)",
SubTitle:
"由 NextChat 官方维护, 零配置开箱即用,支持最新 GPT-4o、Gemini、Claude3 等最新大模型",
ChatNow: "立刻对话",
},
AccessCode: {
Title: "访问密码",
SubTitle: "管理员已开启加密访问",

View File

@ -1,7 +1,7 @@
import { getClientConfig } from "../config/client";
import { SubmitKey } from "../store/config";
import { LocaleType } from "./index";
import { SAAS_CHAT_URL } from "@/app/constant";
// if you are adding a new translation, please use PartialLocaleType instead of LocaleType
const isApp = !!getClientConfig()?.isApp;
@ -9,8 +9,14 @@ const en: LocaleType = {
WIP: "Coming Soon...",
Error: {
Unauthorized: isApp
? "Invalid API Key, please check it in [Settings](/#/settings) page."
: "Unauthorized access, please enter access code in [auth](/#/auth) page, or enter your OpenAI API Key.",
? `😆 Oops, there's an issue. No worries:
\\ 1 New here? [Click to start chatting now 🚀](${SAAS_CHAT_URL})
\\ 2 Want to use your own OpenAI resources? [Click here](/#/settings) to change settings `
: `😆 Oops, there's an issue. Let's fix it:
\ 1 New here? [Click to start chatting now 🚀](${SAAS_CHAT_URL})
\ 2 Using a private setup? [Click here](/#/auth) to enter your key 🔑
\ 3 Want to use your own OpenAI resources? [Click here](/#/settings) to change settings
`,
},
Auth: {
Return: "Return",
@ -303,6 +309,13 @@ const en: LocaleType = {
NoAccess: "Enter API Key to check balance",
},
Access: {
SaasStart: {
Title: "Use NextChat AI",
Label: " (Most Cost-Effective Option)",
SubTitle:
"Maintained by NextChat, zero setup needed, supports the latest models like GPT-4o, Gemini, Claude3, and more.",
ChatNow: "Start Now",
},
AccessCode: {
Title: "Access Code",
SubTitle: "Access control Enabled",
@ -463,7 +476,7 @@ const en: LocaleType = {
ApiKey: {
Title: "API Key",
SubTitle: "Obtain your API Key from Google AI",
Placeholder: "Enter your Google AI Studio API Key",
Placeholder: "Google AI API Key",
},
Endpoint: {