Skip to content

Commit dd791b9

Browse files
authored
Merge pull request #4457 from janhq/feat/move-cortex-extension-settings-to-engine
feat: move cortex extension settings to local engine page
2 parents 9579e86 + 0f4b35d commit dd791b9

File tree

7 files changed

+29
-11
lines changed

7 files changed

+29
-11
lines changed

web/screens/Settings/Engines/LocalEngineSettings.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ import {
2323

2424
import { formatDownloadPercentage } from '@/utils/converter'
2525

26+
import ExtensionSetting from '../ExtensionSetting'
27+
2628
import DeleteEngineVariant from './DeleteEngineVariant'
2729
const os = () => {
2830
switch (PLATFORM) {
@@ -339,6 +341,11 @@ const LocalEngineSettings = ({ engine }: { engine: InferenceEngine }) => {
339341
</div>
340342
</div>
341343
</div>
344+
<div className="border-b border-[hsla(var(--app-border))]" />
345+
<div className="flex w-full border-b border-[hsla(var(--app-border))]">
346+
{/* TODO: Pull settings from engine when it's supported */}
347+
<ExtensionSetting extensionName="@janhq/inference-cortex-extension" />
348+
</div>
342349
</div>
343350
</ScrollArea>
344351
)

web/screens/Settings/Engines/index.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,18 @@ import React from 'react'
22

33
import { InferenceEngine } from '@janhq/core'
44
import { ScrollArea } from '@janhq/joi'
5-
6-
import { useGetEngines } from '@/hooks/useEngineManagement'
5+
import { useAtomValue } from 'jotai'
76

87
import { isLocalEngine } from '@/utils/modelEngine'
98

109
import LocalEngineItems from './LocalEngineItem'
1110
import ModalAddRemoteEngine from './ModalAddRemoteEngine'
1211
import RemoteEngineItems from './RemoteEngineItem'
1312

13+
import { installedEnginesAtom } from '@/helpers/atoms/Engines.atom'
14+
1415
const Engines = () => {
15-
const { engines } = useGetEngines()
16+
const engines = useAtomValue(installedEnginesAtom)
1617

1718
return (
1819
<ScrollArea className="h-full w-full">

web/screens/Settings/ExtensionSetting/index.tsx

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { Fragment, useEffect, useState } from 'react'
1+
import React, { Fragment, useEffect, useMemo, useState } from 'react'
22

33
import {
44
BaseExtension,
@@ -14,7 +14,7 @@ import SettingDetailItem from '../SettingDetail/SettingDetailItem'
1414
import { extensionManager } from '@/extension'
1515
import { selectedSettingAtom } from '@/helpers/atoms/Setting.atom'
1616

17-
const ExtensionSetting = () => {
17+
const ExtensionSetting = ({ extensionName }: { extensionName?: string }) => {
1818
const selectedExtensionName = useAtomValue(selectedSettingAtom)
1919
const [settings, setSettings] = useState<SettingComponentProps[]>([])
2020
const [installationState, setInstallationState] =
@@ -23,11 +23,16 @@ const ExtensionSetting = () => {
2323
undefined
2424
)
2525

26+
const currentExtensionName = useMemo(
27+
() => extensionName ?? selectedExtensionName,
28+
[selectedExtensionName, extensionName]
29+
)
30+
2631
useEffect(() => {
2732
const getExtensionSettings = async () => {
28-
if (!selectedExtensionName) return
33+
if (!currentExtensionName) return
2934
const allSettings: SettingComponentProps[] = []
30-
const baseExtension = extensionManager.getByName(selectedExtensionName)
35+
const baseExtension = extensionManager.getByName(currentExtensionName)
3136
if (!baseExtension) return
3237

3338
setBaseExtension(baseExtension)
@@ -40,7 +45,7 @@ const ExtensionSetting = () => {
4045
setInstallationState(await baseExtension.installationState())
4146
}
4247
getExtensionSettings()
43-
}, [selectedExtensionName])
48+
}, [currentExtensionName])
4449

4550
const onValueChanged = async (
4651
key: string,

web/screens/Settings/SettingDetail/SettingDetailItem/SettingDetailTextInputItem/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ const SettingDetailTextInputItem = ({
8787
<div
8888
className={twMerge(
8989
'w-full flex-shrink-0 pr-1 sm:w-1/2',
90-
type === 'number' && 'sm:w-22 w-24'
90+
type === 'number' && 'sm:w-22 w-50'
9191
)}
9292
>
9393
<Input

web/screens/Settings/SettingDetail/SettingDetailItem/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ const SettingDetailItem = ({ componentProps, onValueUpdated }: Props) => {
5656
<div className="flex h-full w-full flex-col overflow-y-auto">
5757
{components.map((component, index) => (
5858
<div
59-
className={`mx-4 ${index === components.length - 1 ? '' : 'border-b border-[hsla(var(--app-border))]'}`}
59+
className={`${index === components.length - 1 ? '' : 'border-b border-[hsla(var(--app-border))]'}`}
6060
key={index}
6161
>
6262
{component}

web/screens/Settings/SettingDetail/index.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,11 @@ const SettingDetail = () => {
5959
<RemoteEngineSettings engine={selectedSetting as InferenceEngine} />
6060
)
6161
}
62-
return <ExtensionSetting />
62+
return (
63+
<div className="mx-4">
64+
<ExtensionSetting />
65+
</div>
66+
)
6367
}
6468
}
6569

web/screens/Settings/SettingLeftPanel/index.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ const SettingLeftPanel = () => {
148148

149149
{extensionHasSettings
150150
.sort((a, b) => String(a.name).localeCompare(String(b.name)))
151+
.filter((e) => !e.name?.includes('Cortex'))
151152
.map((item) => (
152153
<SettingItem
153154
key={item.name}

0 commit comments

Comments
 (0)