* feat: better hardware setting * chore: update layout * feat: better hardware setting * chore: fix title section * chore: added hardware engine management * chore: integrate gpus and enable set gpu activate * chore: update calculate ram and vram * chore: update calulate vram and ram used * fix: set active gpus * chore: fix progress bar spacing * chore: always update cache vram gpu * chore: update cpu usage percentage * chore: fix type usage cpu * chore: update ram cpus usage getsystemmonitor from new api harware engine management system * test: update test case data using hardware management extension * chore: resolve conflict lock json * chore: cleanup app services * chore: update type OperationSystemInfo * chore: update app service * chore: show list gpus on system monitor * chore: remove monitoring extension * chore: update test case app service * chore: remove unused hooks useGpusSetting * chore: remove monitor from shource index * chore: fix test core * chore: update gpu and cpu info on engine management ext * chore: fix app service test * chore: update test appService include cpu info * chore: filter gpus show or hide on system monitor based activated gpu * chore: remove unused run_mode * chore: remove tensort * chore: update check gpu run_mode * chore: handle undefined gpus * chore: cleanup PR * chore: cleanup process node error * chore: fix type
85 lines
2.4 KiB
TypeScript
85 lines
2.4 KiB
TypeScript
import React, { useState } from 'react'
|
|
|
|
import { InferenceEngine } from '@janhq/core'
|
|
import { useAtomValue } from 'jotai'
|
|
|
|
import { useGetEngines } from '@/hooks/useEngineManagement'
|
|
|
|
import Advanced from '@/screens/Settings/Advanced'
|
|
import ProxySettings from '@/screens/Settings/Advanced/ProxySettings'
|
|
import AppearanceOptions from '@/screens/Settings/Appearance'
|
|
import ExtensionCatalog from '@/screens/Settings/CoreExtensions'
|
|
import Engines from '@/screens/Settings/Engines'
|
|
import LocalEngineSettings from '@/screens/Settings/Engines/LocalEngineSettings'
|
|
import RemoteEngineSettings from '@/screens/Settings/Engines/RemoteEngineSettings'
|
|
import ExtensionSetting from '@/screens/Settings/ExtensionSetting'
|
|
import Hardware from '@/screens/Settings/Hardware'
|
|
import Hotkeys from '@/screens/Settings/Hotkeys'
|
|
import MyModels from '@/screens/Settings/MyModels'
|
|
import Privacy from '@/screens/Settings/Privacy'
|
|
|
|
import { isLocalEngine } from '@/utils/modelEngine'
|
|
|
|
import { selectedSettingAtom } from '@/helpers/atoms/Setting.atom'
|
|
|
|
const SettingDetail = () => {
|
|
const selectedSetting = useAtomValue(selectedSettingAtom)
|
|
const { engines } = useGetEngines()
|
|
const [subdir, setSubdir] = useState<string | null>(null)
|
|
|
|
switch (selectedSetting) {
|
|
case 'Engines':
|
|
return <Engines />
|
|
|
|
case 'Extensions':
|
|
return <ExtensionCatalog />
|
|
|
|
case 'Preferences':
|
|
return <AppearanceOptions />
|
|
|
|
case 'Keyboard Shortcuts':
|
|
return <Hotkeys />
|
|
|
|
case 'Hardware':
|
|
return <Hardware />
|
|
|
|
case 'Privacy':
|
|
return <Privacy />
|
|
|
|
case 'Advanced Settings':
|
|
switch (subdir) {
|
|
case 'proxy':
|
|
return <ProxySettings onBack={() => setSubdir(null)} />
|
|
default:
|
|
return <Advanced setSubdir={setSubdir} />
|
|
}
|
|
|
|
case 'My Models':
|
|
return <MyModels />
|
|
|
|
default:
|
|
if (
|
|
!selectedSetting.includes('@janhq') &&
|
|
isLocalEngine(engines, selectedSetting as InferenceEngine)
|
|
) {
|
|
return (
|
|
<LocalEngineSettings engine={selectedSetting as InferenceEngine} />
|
|
)
|
|
} else if (
|
|
!selectedSetting.includes('@janhq') &&
|
|
!isLocalEngine(engines, selectedSetting as InferenceEngine)
|
|
) {
|
|
return (
|
|
<RemoteEngineSettings engine={selectedSetting as InferenceEngine} />
|
|
)
|
|
}
|
|
return (
|
|
<div className="mx-4">
|
|
<ExtensionSetting />
|
|
</div>
|
|
)
|
|
}
|
|
}
|
|
|
|
export default SettingDetail
|