From 6398362ad0f192990f095a144f70e9f05f4bfca9 Mon Sep 17 00:00:00 2001 From: Arvin Xu Date: Sun, 16 Feb 2025 07:56:08 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20fix=20inbox=20agent=20edi?= =?UTF-8?q?t=20way=20in=20the=20new=20mode=20(#6190)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CategoryContent/useCategory.tsx | 72 ++++++++++--------- .../features/AgentSettings/index.tsx | 4 +- .../(workspace)/features/SettingButton.tsx | 4 +- src/hooks/useInterceptingRoutes.ts | 3 +- 4 files changed, 47 insertions(+), 36 deletions(-) diff --git a/src/app/[variants]/(main)/chat/(workspace)/features/AgentSettings/CategoryContent/useCategory.tsx b/src/app/[variants]/(main)/chat/(workspace)/features/AgentSettings/CategoryContent/useCategory.tsx index b1a3bc7e71a1d..a35be2a97cf1a 100644 --- a/src/app/[variants]/(main)/chat/(workspace)/features/AgentSettings/CategoryContent/useCategory.tsx +++ b/src/app/[variants]/(main)/chat/(workspace)/features/AgentSettings/CategoryContent/useCategory.tsx @@ -1,10 +1,13 @@ import { Icon } from '@lobehub/ui'; +import { MenuItemType } from 'antd/es/menu/interface'; import { Blocks, Bot, BrainCog, MessagesSquare, Mic2, UserCircle } from 'lucide-react'; import { useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import type { MenuProps } from '@/components/Menu'; +import { INBOX_SESSION_ID } from '@/const/session'; import { ChatSettingsTabs } from '@/store/global/initialState'; +import { useSessionStore } from '@/store/session'; interface UseCategoryOptions { mobile?: boolean; @@ -13,41 +16,44 @@ interface UseCategoryOptions { export const useCategory = ({ mobile }: UseCategoryOptions = {}) => { const { t } = useTranslation('setting'); const iconSize = mobile ? { fontSize: 20 } : undefined; + const id = useSessionStore((s) => s.activeId); + const isInbox = id === INBOX_SESSION_ID; const cateItems: MenuProps['items'] = useMemo( - () => [ - { - icon: , - key: ChatSettingsTabs.Meta, - label: t('agentTab.meta'), - }, - { - icon: , - key: ChatSettingsTabs.Prompt, - label: t('agentTab.prompt'), - }, - { - icon: , - key: ChatSettingsTabs.Chat, - label: t('agentTab.chat'), - }, - { - icon: , - key: ChatSettingsTabs.Modal, - label: t('agentTab.modal'), - }, - { - icon: , - key: ChatSettingsTabs.TTS, - label: t('agentTab.tts'), - }, - { - icon: , - key: ChatSettingsTabs.Plugin, - label: t('agentTab.plugin'), - }, - ], - [t], + () => + [ + (!isInbox && { + icon: , + key: ChatSettingsTabs.Meta, + label: t('agentTab.meta'), + }) as MenuItemType, + (!isInbox && { + icon: , + key: ChatSettingsTabs.Prompt, + label: t('agentTab.prompt'), + }) as MenuItemType, + { + icon: , + key: ChatSettingsTabs.Chat, + label: t('agentTab.chat'), + }, + { + icon: , + key: ChatSettingsTabs.Modal, + label: t('agentTab.modal'), + }, + { + icon: , + key: ChatSettingsTabs.TTS, + label: t('agentTab.tts'), + }, + { + icon: , + key: ChatSettingsTabs.Plugin, + label: t('agentTab.plugin'), + }, + ].filter(Boolean), + [t, isInbox], ); return cateItems; diff --git a/src/app/[variants]/(main)/chat/(workspace)/features/AgentSettings/index.tsx b/src/app/[variants]/(main)/chat/(workspace)/features/AgentSettings/index.tsx index 6958aafeec15c..a4e27663113db 100644 --- a/src/app/[variants]/(main)/chat/(workspace)/features/AgentSettings/index.tsx +++ b/src/app/[variants]/(main)/chat/(workspace)/features/AgentSettings/index.tsx @@ -8,6 +8,7 @@ import { useTranslation } from 'react-i18next'; import { Flexbox } from 'react-layout-kit'; import Header from '@/app/[variants]/(main)/settings/_layout/Desktop/Header'; +import { INBOX_SESSION_ID } from '@/const/session'; import AgentChat from '@/features/AgentSetting/AgentChat'; import AgentMeta from '@/features/AgentSetting/AgentMeta'; import AgentModal from '@/features/AgentSetting/AgentModal'; @@ -38,8 +39,9 @@ const AgentSettings = memo(() => { s.updateSessionMeta, sessionMetaSelectors.currentAgentTitle(s), ]); + const isInbox = id === INBOX_SESSION_ID; - const [tab, setTab] = useState(ChatSettingsTabs.Meta); + const [tab, setTab] = useState(isInbox ? ChatSettingsTabs.Chat : ChatSettingsTabs.Meta); const ref = useRef(null); const theme = useTheme(); diff --git a/src/app/[variants]/(main)/chat/(workspace)/features/SettingButton.tsx b/src/app/[variants]/(main)/chat/(workspace)/features/SettingButton.tsx index 447273d5bc632..460fd5b5e1631 100644 --- a/src/app/[variants]/(main)/chat/(workspace)/features/SettingButton.tsx +++ b/src/app/[variants]/(main)/chat/(workspace)/features/SettingButton.tsx @@ -8,6 +8,7 @@ import { useTranslation } from 'react-i18next'; import { DESKTOP_HEADER_ICON_SIZE, MOBILE_HEADER_ICON_SIZE } from '@/const/layoutTokens'; import { useOpenChatSettings } from '@/hooks/useInterceptingRoutes'; +import { useSessionStore } from '@/store/session'; const AgentSettings = dynamic(() => import('./AgentSettings'), { ssr: false, @@ -16,6 +17,7 @@ const AgentSettings = dynamic(() => import('./AgentSettings'), { const SettingButton = memo<{ mobile?: boolean }>(({ mobile }) => { const { t } = useTranslation('common'); const openChatSettings = useOpenChatSettings(); + const id = useSessionStore((s) => s.activeId); return ( <> @@ -25,7 +27,7 @@ const SettingButton = memo<{ mobile?: boolean }>(({ mobile }) => { size={mobile ? MOBILE_HEADER_ICON_SIZE : DESKTOP_HEADER_ICON_SIZE} title={t('header.session', { ns: 'setting' })} /> - + ); }); diff --git a/src/hooks/useInterceptingRoutes.ts b/src/hooks/useInterceptingRoutes.ts index c0f232664ba62..4b43ced8fffe8 100644 --- a/src/hooks/useInterceptingRoutes.ts +++ b/src/hooks/useInterceptingRoutes.ts @@ -2,6 +2,7 @@ import { useMemo } from 'react'; import urlJoin from 'url-join'; import { INBOX_SESSION_ID } from '@/const/session'; +import { isDeprecatedEdition } from '@/const/version'; import { useIsMobile } from '@/hooks/useIsMobile'; import { useQueryRoute } from '@/hooks/useQueryRoute'; import { useAgentStore } from '@/store/agent'; @@ -15,7 +16,7 @@ export const useOpenChatSettings = (tab: ChatSettingsTabs = ChatSettingsTabs.Met const router = useQueryRoute(); return useMemo(() => { - if (activeId === INBOX_SESSION_ID) { + if (isDeprecatedEdition && activeId === INBOX_SESSION_ID) { return () => router.push(urlJoin('/settings', SettingsTabs.Agent)); }