Add about section to settings.json for multiple locales
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { Book, BrainCircuit, Orbit, Share } from "lucide-react"
|
||||
import { Book, BrainCircuit, Orbit, Share, BlocksIcon , InfoIcon} from "lucide-react"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { Link, useLocation } from "react-router-dom"
|
||||
import { OllamaIcon } from "../Icons/Ollama"
|
||||
@@ -68,6 +68,12 @@ export const SettingsLayout = ({ children }: { children: React.ReactNode }) => {
|
||||
current={location.pathname}
|
||||
icon={BrainCircuit}
|
||||
/>
|
||||
{/* <LinkComponent
|
||||
href="/settings/knowledge"
|
||||
name={t("manageKnowledge.title")}
|
||||
icon={BlocksIcon}
|
||||
current={location.pathname}
|
||||
/> */}
|
||||
<LinkComponent
|
||||
href="/settings/prompt"
|
||||
name={t("managePrompts.title")}
|
||||
@@ -80,6 +86,12 @@ export const SettingsLayout = ({ children }: { children: React.ReactNode }) => {
|
||||
icon={Share}
|
||||
current={location.pathname}
|
||||
/>
|
||||
<LinkComponent
|
||||
href="/settings/about"
|
||||
name={t("about.title")}
|
||||
icon={InfoIcon}
|
||||
current={location.pathname}
|
||||
/>
|
||||
</ul>
|
||||
</nav>
|
||||
</aside>
|
||||
|
||||
102
src/components/Option/Settings/about.tsx
Normal file
102
src/components/Option/Settings/about.tsx
Normal file
@@ -0,0 +1,102 @@
|
||||
import { getOllamaURL } from "~/services/ollama"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { useQuery } from "@tanstack/react-query"
|
||||
import { Skeleton } from "antd"
|
||||
import { cleanUrl } from "@/libs/clean-url"
|
||||
|
||||
export const AboutApp = () => {
|
||||
const { t } = useTranslation("settings")
|
||||
|
||||
const { data, status } = useQuery({
|
||||
queryKey: ["fetchOllamURL"],
|
||||
queryFn: async () => {
|
||||
const chromeVersion = chrome.runtime.getManifest().version
|
||||
try {
|
||||
const url = await getOllamaURL()
|
||||
const req = await fetch(`${cleanUrl(url)}/api/version`)
|
||||
|
||||
if (!req.ok) {
|
||||
return {
|
||||
ollama: "N/A",
|
||||
chromeVersion
|
||||
}
|
||||
}
|
||||
|
||||
const res = (await req.json()) as { version: string }
|
||||
return {
|
||||
ollama: res.version,
|
||||
chromeVersion
|
||||
}
|
||||
} catch {
|
||||
return {
|
||||
ollama: "N/A",
|
||||
chromeVersion
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
return (
|
||||
<div className="flex flex-col space-y-3">
|
||||
{status === "pending" && <Skeleton paragraph={{ rows: 4 }} active />}
|
||||
{status === "success" && (
|
||||
<div className="flex flex-col space-y-4">
|
||||
<div>
|
||||
<div>
|
||||
<h2 className="text-base font-semibold leading-7 text-gray-900 dark:text-white">
|
||||
{t("about.heading")}
|
||||
</h2>
|
||||
<div className="border border-b border-gray-200 dark:border-gray-600 mt-3 mb-6"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div className="flex flex-col space-y-6">
|
||||
<div className="flex gap-6">
|
||||
<span className="text-sm text-gray-500 dark:text-gray-400">
|
||||
{t("about.chromeVersion")}
|
||||
</span>
|
||||
<span className="text-sm text-gray-900 dark:text-white">
|
||||
{data.chromeVersion}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div className="flex gap-6">
|
||||
<span className="text-sm text-gray-500 dark:text-gray-400">
|
||||
{t("about.ollamaVersion")}
|
||||
</span>
|
||||
<span className="text-sm text-gray-900 dark:text-white">
|
||||
{data.ollama}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p className="text-sm text-gray-500 dark:text-gray-400 mb-4">
|
||||
{t("about.support")}
|
||||
</p>
|
||||
|
||||
<div className="flex gap-2">
|
||||
<a
|
||||
href="https://ko-fi.com/n4ze3m"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
className="text-blue-500 dark:text-blue-400 border dark:border-gray-600 px-2.5 py-2 rounded-md">
|
||||
{t("about.koFi")}
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="https://github.com/sponsors/n4ze3m"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
className="text-blue-500 dark:text-blue-400 border dark:border-gray-600 px-2.5 py-2 rounded-md">
|
||||
{t("about.githubSponsor")}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user