Skip to content

Commit 06f7804

Browse files
committed
improve model select
1 parent d283ceb commit 06f7804

File tree

3 files changed

+45
-10
lines changed

3 files changed

+45
-10
lines changed

src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatList/WelcomeChatItem/InboxWelcome/AgentsSuggest.tsx

+5-1
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,11 @@ const AgentsSuggest = memo<{ mobile?: boolean }>(({ mobile }) => {
105105
: assistantList
106106
.slice(sliceStart, sliceStart + agentLength)
107107
.map((item: DiscoverAssistantItem) => (
108-
<Link href={urlJoin('/discover/assistant/', item.identifier)} key={item.identifier}>
108+
<Link
109+
href={urlJoin('/discover/assistant/', item.identifier)}
110+
key={item.identifier}
111+
prefetch={false}
112+
>
109113
<Flexbox className={styles.card} gap={8} horizontal>
110114
<Avatar avatar={item.meta.avatar} style={{ flex: 'none' }} />
111115
<Flexbox gap={mobile ? 2 : 8} style={{ overflow: 'hidden', width: '100%' }}>

src/features/ModelSwitchPanel/index.tsx

+37-8
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
import { Icon } from '@lobehub/ui';
1+
import { ActionIcon, Icon } from '@lobehub/ui';
22
import { Dropdown } from 'antd';
33
import { createStyles } from 'antd-style';
44
import type { ItemType } from 'antd/es/menu/interface';
5-
import { LucideArrowRight } from 'lucide-react';
5+
import { LucideArrowRight, LucideBolt } from 'lucide-react';
6+
import Link from 'next/link';
67
import { useRouter } from 'next/navigation';
78
import { PropsWithChildren, memo, useMemo } from 'react';
89
import { useTranslation } from 'react-i18next';
@@ -86,17 +87,45 @@ const ModelSwitchPanel = memo<PropsWithChildren>(({ children }) => {
8687
return items;
8788
};
8889

90+
if (enabledList.length === 0)
91+
return [
92+
{
93+
key: `no-provider`,
94+
label: (
95+
<Flexbox gap={8} horizontal style={{ color: theme.colorTextTertiary }}>
96+
{t('ModelSwitchPanel.emptyProvider')}
97+
<Icon icon={LucideArrowRight} />
98+
</Flexbox>
99+
),
100+
onClick: () => {
101+
router.push(isDeprecatedEdition ? '/settings/llm' : `/settings/provider`);
102+
},
103+
},
104+
];
105+
89106
// otherwise show with provider group
90107
return enabledList.map((provider) => ({
91108
children: getModelItems(provider),
92109
key: provider.id,
93110
label: (
94-
<ProviderItemRender
95-
logo={provider.logo}
96-
name={provider.name}
97-
provider={provider.id}
98-
source={provider.source}
99-
/>
111+
<Flexbox horizontal justify="space-between">
112+
<ProviderItemRender
113+
logo={provider.logo}
114+
name={provider.name}
115+
provider={provider.id}
116+
source={provider.source}
117+
/>
118+
<Link
119+
href={isDeprecatedEdition ? '/settings/llm' : `/settings/provider/${provider.id}`}
120+
prefetch={false}
121+
>
122+
<ActionIcon
123+
icon={LucideBolt}
124+
size={'small'}
125+
title={t('ModelSwitchPanel.goToSettings')}
126+
/>
127+
</Link>
128+
</Flexbox>
100129
),
101130
type: 'group',
102131
}));

src/locales/default/components.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,9 @@ export default {
8787
},
8888
ModelSwitchPanel: {
8989
emptyModel: '没有启用的模型,请前往设置开启',
90-
provider: '提供商',
90+
emptyProvider: '没有启用的服务商,请前往设置开启',
91+
goToSettings: '前往设置',
92+
provider: '服务商',
9193
},
9294
OllamaSetupGuide: {
9395
cors: {

0 commit comments

Comments
 (0)