Skip to content

Commit e617619

Browse files
committed
💄 style: improve inbox agent modal
1 parent 525cf07 commit e617619

File tree

4 files changed

+47
-36
lines changed

4 files changed

+47
-36
lines changed

src/app/[variants]/(main)/chat/(workspace)/features/AgentSettings/CategoryContent/useCategory.tsx

Lines changed: 39 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
import { Icon } from '@lobehub/ui';
2+
import { MenuItemType } from 'antd/es/menu/interface';
23
import { Blocks, Bot, BrainCog, MessagesSquare, Mic2, UserCircle } from 'lucide-react';
34
import { useMemo } from 'react';
45
import { useTranslation } from 'react-i18next';
56

67
import type { MenuProps } from '@/components/Menu';
8+
import { INBOX_SESSION_ID } from '@/const/session';
79
import { ChatSettingsTabs } from '@/store/global/initialState';
10+
import { useSessionStore } from '@/store/session';
811

912
interface UseCategoryOptions {
1013
mobile?: boolean;
@@ -13,41 +16,44 @@ interface UseCategoryOptions {
1316
export const useCategory = ({ mobile }: UseCategoryOptions = {}) => {
1417
const { t } = useTranslation('setting');
1518
const iconSize = mobile ? { fontSize: 20 } : undefined;
19+
const id = useSessionStore((s) => s.activeId);
20+
const isInbox = id === INBOX_SESSION_ID;
1621

1722
const cateItems: MenuProps['items'] = useMemo(
18-
() => [
19-
{
20-
icon: <Icon icon={UserCircle} size={iconSize} />,
21-
key: ChatSettingsTabs.Meta,
22-
label: t('agentTab.meta'),
23-
},
24-
{
25-
icon: <Icon icon={Bot} size={iconSize} />,
26-
key: ChatSettingsTabs.Prompt,
27-
label: t('agentTab.prompt'),
28-
},
29-
{
30-
icon: <Icon icon={MessagesSquare} size={iconSize} />,
31-
key: ChatSettingsTabs.Chat,
32-
label: t('agentTab.chat'),
33-
},
34-
{
35-
icon: <Icon icon={BrainCog} size={iconSize} />,
36-
key: ChatSettingsTabs.Modal,
37-
label: t('agentTab.modal'),
38-
},
39-
{
40-
icon: <Icon icon={Mic2} size={iconSize} />,
41-
key: ChatSettingsTabs.TTS,
42-
label: t('agentTab.tts'),
43-
},
44-
{
45-
icon: <Icon icon={Blocks} size={iconSize} />,
46-
key: ChatSettingsTabs.Plugin,
47-
label: t('agentTab.plugin'),
48-
},
49-
],
50-
[t],
23+
() =>
24+
[
25+
(!isInbox && {
26+
icon: <Icon icon={UserCircle} size={iconSize} />,
27+
key: ChatSettingsTabs.Meta,
28+
label: t('agentTab.meta'),
29+
}) as MenuItemType,
30+
(!isInbox && {
31+
icon: <Icon icon={Bot} size={iconSize} />,
32+
key: ChatSettingsTabs.Prompt,
33+
label: t('agentTab.prompt'),
34+
}) as MenuItemType,
35+
{
36+
icon: <Icon icon={MessagesSquare} size={iconSize} />,
37+
key: ChatSettingsTabs.Chat,
38+
label: t('agentTab.chat'),
39+
},
40+
{
41+
icon: <Icon icon={BrainCog} size={iconSize} />,
42+
key: ChatSettingsTabs.Modal,
43+
label: t('agentTab.modal'),
44+
},
45+
{
46+
icon: <Icon icon={Mic2} size={iconSize} />,
47+
key: ChatSettingsTabs.TTS,
48+
label: t('agentTab.tts'),
49+
},
50+
{
51+
icon: <Icon icon={Blocks} size={iconSize} />,
52+
key: ChatSettingsTabs.Plugin,
53+
label: t('agentTab.plugin'),
54+
},
55+
].filter(Boolean),
56+
[t, isInbox],
5157
);
5258

5359
return cateItems;

src/app/[variants]/(main)/chat/(workspace)/features/AgentSettings/index.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { useTranslation } from 'react-i18next';
88
import { Flexbox } from 'react-layout-kit';
99

1010
import Header from '@/app/[variants]/(main)/settings/_layout/Desktop/Header';
11+
import { INBOX_SESSION_ID } from '@/const/session';
1112
import AgentChat from '@/features/AgentSetting/AgentChat';
1213
import AgentMeta from '@/features/AgentSetting/AgentMeta';
1314
import AgentModal from '@/features/AgentSetting/AgentModal';
@@ -38,8 +39,9 @@ const AgentSettings = memo(() => {
3839
s.updateSessionMeta,
3940
sessionMetaSelectors.currentAgentTitle(s),
4041
]);
42+
const isInbox = id === INBOX_SESSION_ID;
4143

42-
const [tab, setTab] = useState(ChatSettingsTabs.Meta);
44+
const [tab, setTab] = useState(isInbox ? ChatSettingsTabs.Chat : ChatSettingsTabs.Meta);
4345

4446
const ref = useRef<any>(null);
4547
const theme = useTheme();

src/app/[variants]/(main)/chat/(workspace)/features/SettingButton.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { useTranslation } from 'react-i18next';
88

99
import { DESKTOP_HEADER_ICON_SIZE, MOBILE_HEADER_ICON_SIZE } from '@/const/layoutTokens';
1010
import { useOpenChatSettings } from '@/hooks/useInterceptingRoutes';
11+
import { useSessionStore } from '@/store/session';
1112

1213
const AgentSettings = dynamic(() => import('./AgentSettings'), {
1314
ssr: false,
@@ -16,6 +17,7 @@ const AgentSettings = dynamic(() => import('./AgentSettings'), {
1617
const SettingButton = memo<{ mobile?: boolean }>(({ mobile }) => {
1718
const { t } = useTranslation('common');
1819
const openChatSettings = useOpenChatSettings();
20+
const id = useSessionStore((s) => s.activeId);
1921

2022
return (
2123
<>
@@ -25,7 +27,7 @@ const SettingButton = memo<{ mobile?: boolean }>(({ mobile }) => {
2527
size={mobile ? MOBILE_HEADER_ICON_SIZE : DESKTOP_HEADER_ICON_SIZE}
2628
title={t('header.session', { ns: 'setting' })}
2729
/>
28-
<AgentSettings />
30+
<AgentSettings key={id} />
2931
</>
3032
);
3133
});

src/hooks/useInterceptingRoutes.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { useMemo } from 'react';
22
import urlJoin from 'url-join';
33

44
import { INBOX_SESSION_ID } from '@/const/session';
5+
import { isDeprecatedEdition } from '@/const/version';
56
import { useIsMobile } from '@/hooks/useIsMobile';
67
import { useQueryRoute } from '@/hooks/useQueryRoute';
78
import { useAgentStore } from '@/store/agent';
@@ -15,7 +16,7 @@ export const useOpenChatSettings = (tab: ChatSettingsTabs = ChatSettingsTabs.Met
1516
const router = useQueryRoute();
1617

1718
return useMemo(() => {
18-
if (activeId === INBOX_SESSION_ID) {
19+
if (isDeprecatedEdition && activeId === INBOX_SESSION_ID) {
1920
return () => router.push(urlJoin('/settings', SettingsTabs.Agent));
2021
}
2122

0 commit comments

Comments
 (0)