feat: Add Copilot resume chat and hide current chat model settings

This commit is contained in:
n4ze3m 2024-05-24 23:56:54 +05:30
parent 23435318c5
commit 25cb97d452

View File

@ -14,7 +14,15 @@ import {
saveForRag saveForRag
} from "~/services/ollama" } from "~/services/ollama"
import { Skeleton, Radio, Select, Form, InputNumber, Collapse } from "antd" import {
Skeleton,
Radio,
Select,
Form,
InputNumber,
Collapse,
Switch
} from "antd"
import { useDarkMode } from "~/hooks/useDarkmode" import { useDarkMode } from "~/hooks/useDarkmode"
import { SaveButton } from "~/components/Common/SaveButton" import { SaveButton } from "~/components/Common/SaveButton"
import { SUPPORTED_LANGUAGES } from "~/utils/supporetd-languages" import { SUPPORTED_LANGUAGES } from "~/utils/supporetd-languages"
@ -24,6 +32,8 @@ import { Trans, useTranslation } from "react-i18next"
import { useI18n } from "@/hooks/useI18n" import { useI18n } from "@/hooks/useI18n"
import { TTSModeSettings } from "@/components/Option/Settings/tts-mode" import { TTSModeSettings } from "@/components/Option/Settings/tts-mode"
import { AdvanceOllamaSettings } from "@/components/Common/Settings/AdvanceOllamaSettings" import { AdvanceOllamaSettings } from "@/components/Common/Settings/AdvanceOllamaSettings"
import { useStorage } from "@plasmohq/storage/hook"
import { BetaTag } from "@/components/Common/Beta"
export const SettingsBody = () => { export const SettingsBody = () => {
const { t } = useTranslation("settings") const { t } = useTranslation("settings")
@ -34,6 +44,13 @@ export const SettingsBody = () => {
const [selectedValue, setSelectedValue] = React.useState<"normal" | "rag">( const [selectedValue, setSelectedValue] = React.useState<"normal" | "rag">(
"normal" "normal"
) )
const [copilotResumeLastChat, setCopilotResumeLastChat] = useStorage(
"copilotResumeLastChat",
false
)
const [hideCurrentChatModelSettings, setHideCurrentChatModelSettings] =
useStorage("hideCurrentChatModelSettings", false)
const { speechToTextLanguage, setSpeechToTextLanguage } = useMessage() const { speechToTextLanguage, setSpeechToTextLanguage } = useMessage()
const { mode, toggleDarkMode } = useDarkMode() const { mode, toggleDarkMode } = useDarkMode()
@ -318,34 +335,40 @@ export const SettingsBody = () => {
</div> </div>
</Form> </Form>
</div> </div>
<div className="border border-gray-300 dark:border-gray-700 rounded p-4 bg-white dark:bg-[#171717]">
<TTSModeSettings hideBorder /> <div className="border space-y-3 w-full border-gray-300 dark:border-gray-700 rounded p-4 bg-white dark:bg-[#171717]">
</div> <h2 className="text-base mb-4 font-semibold leading-7 text-gray-900 dark:text-white">
<div className="border border-gray-300 dark:border-gray-700 rounded p-4 bg-white dark:bg-[#171717]"> {t("generalSettings.title")}
<h2 className="text-md mb-4 font-semibold dark:text-white">
{t("generalSettings.settings.language.label")}{" "}
</h2> </h2>
<Select <div className="flex flex-col space-y-4">
placeholder={t("generalSettings.settings.language.placeholder")} <span className="text-gray-500 dark:text-neutral-50">
showSearch {t("generalSettings.settings.copilotResumeLastChat.label")}
options={supportLanguage} </span>
value={locale}
filterOption={(input, option) => <div>
option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 || <Switch
option.value.toLowerCase().indexOf(input.toLowerCase()) >= 0 checked={copilotResumeLastChat}
} onChange={(checked) => setCopilotResumeLastChat(checked)}
onChange={(value) => {
changeLocale(value)
}}
style={{
width: "100%"
}}
/> />
</div> </div>
<div className="border border-gray-300 dark:border-gray-700 rounded p-4 bg-white dark:bg-[#171717]"> </div>
<h2 className="text-md mb-4 font-semibold dark:text-white"> <div className="flex flex-col space-y-4">
<div className="inline-flex items-center gap-2">
<span className="text-gray-500 dark:text-neutral-50">
{t("generalSettings.settings.hideCurrentChatModelSettings.label")}
</span>
</div>
<div>
<Switch
checked={hideCurrentChatModelSettings}
onChange={(checked) => setHideCurrentChatModelSettings(checked)}
/>
</div>
</div>
<div>
<div className="text-xs mb-2 dark:text-white">
{t("generalSettings.settings.speechRecognitionLang.label")}{" "} {t("generalSettings.settings.speechRecognitionLang.label")}{" "}
</h2> </div>
<Select <Select
placeholder={t( placeholder={t(
"generalSettings.settings.speechRecognitionLang.placeholder" "generalSettings.settings.speechRecognitionLang.placeholder"
@ -366,6 +389,33 @@ export const SettingsBody = () => {
}} }}
/> />
</div> </div>
<div>
<div className="text-xs mb-2 dark:text-white">
{t("generalSettings.settings.language.label")}{" "}
</div>
<Select
placeholder={t("generalSettings.settings.language.placeholder")}
showSearch
options={supportLanguage}
value={locale}
filterOption={(input, option) =>
option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 ||
option.value.toLowerCase().indexOf(input.toLowerCase()) >= 0
}
onChange={(value) => {
changeLocale(value)
}}
style={{
width: "100%"
}}
/>
</div>
</div>
<div className="border border-gray-300 dark:border-gray-700 rounded p-4 bg-white dark:bg-[#171717]">
<TTSModeSettings hideBorder />
</div>
<div className="border border-gray-300 dark:border-gray-700 rounded p-4 bg-white dark:bg-[#171717]"> <div className="border border-gray-300 dark:border-gray-700 rounded p-4 bg-white dark:bg-[#171717]">
<h2 className="text-md mb-4 font-semibold dark:text-white"> <h2 className="text-md mb-4 font-semibold dark:text-white">
{t("generalSettings.settings.darkMode.label")}{" "} {t("generalSettings.settings.darkMode.label")}{" "}