From 83aa3a855f2912544dd5f067b7e78cd29a48b98a Mon Sep 17 00:00:00 2001 From: Archer <545436317@qq.com> Date: Tue, 12 Aug 2025 23:08:00 +0800 Subject: [PATCH] redirect (#5440) --- packages/web/i18n/en/common.json | 1 - packages/web/i18n/zh-CN/common.json | 1 - packages/web/i18n/zh-Hant/common.json | 1 - .../chat/ChatWindow/HomeChatWindow.tsx | 13 +++- .../src/pageComponents/chat/SliderApps.tsx | 74 ++++++++++--------- .../src/web/core/chat/context/useChatStore.ts | 6 +- 6 files changed, 52 insertions(+), 44 deletions(-) diff --git a/packages/web/i18n/en/common.json b/packages/web/i18n/en/common.json index 99b147311..be318d24b 100644 --- a/packages/web/i18n/en/common.json +++ b/packages/web/i18n/en/common.json @@ -363,7 +363,6 @@ "core.chat.Speaking": "I'm Listening, Please Speak...", "core.chat.Type a message": "Enter a Question, Press [Enter] to Send / Press [Ctrl(Alt/Shift) + Enter] for New Line", "core.chat.Unpin": "Unpin", - "core.chat.You need to a chat app": "You Do Not Have an Available App", "core.chat.error.Chat error": "Chat Error", "core.chat.error.Messages empty": "API Content is Empty, Possibly Due to Text Being Too Long", "core.chat.error.Select dataset empty": "You Have Not Selected a Dataset", diff --git a/packages/web/i18n/zh-CN/common.json b/packages/web/i18n/zh-CN/common.json index 43a6e47a1..cab77ff8f 100644 --- a/packages/web/i18n/zh-CN/common.json +++ b/packages/web/i18n/zh-CN/common.json @@ -363,7 +363,6 @@ "core.chat.Speaking": "我在听,请说...", "core.chat.Type a message": "输入问题,发送 [Enter]/换行 [Ctrl(Alt/Shift) + Enter]", "core.chat.Unpin": "取消置顶", - "core.chat.You need to a chat app": "你没有可用的应用", "core.chat.error.Chat error": "对话出现异常", "core.chat.error.Messages empty": "接口内容为空,可能文本超长了~", "core.chat.error.Select dataset empty": "你没有选择知识库", diff --git a/packages/web/i18n/zh-Hant/common.json b/packages/web/i18n/zh-Hant/common.json index 70a0f591c..2647b5f8a 100644 --- a/packages/web/i18n/zh-Hant/common.json +++ b/packages/web/i18n/zh-Hant/common.json @@ -363,7 +363,6 @@ "core.chat.Speaking": "我在聽,請說...", "core.chat.Type a message": "輸入問題,按 [Enter] 傳送 / 按 [Ctrl(Alt/Shift) + Enter] 換行", "core.chat.Unpin": "取消釘選", - "core.chat.You need to a chat app": "您沒有可用的應用程式", "core.chat.error.Chat error": "對話發生錯誤", "core.chat.error.Messages empty": "API 內容為空,可能是文字過長", "core.chat.error.Select dataset empty": "您尚未選擇知識庫", diff --git a/projects/app/src/pageComponents/chat/ChatWindow/HomeChatWindow.tsx b/projects/app/src/pageComponents/chat/ChatWindow/HomeChatWindow.tsx index c540b4a78..756ac6508 100644 --- a/projects/app/src/pageComponents/chat/ChatWindow/HomeChatWindow.tsx +++ b/projects/app/src/pageComponents/chat/ChatWindow/HomeChatWindow.tsx @@ -25,7 +25,7 @@ import type { StartChatFnProps } from '@/components/core/chat/ChatContainer/type import { streamFetch } from '@/web/common/api/fetch'; import { getChatTitleFromChatMessage } from '@fastgpt/global/core/chat/utils'; import { GPTMessages2Chats } from '@fastgpt/global/core/chat/adapt'; -import { useLocalStorageState, useMemoizedFn } from 'ahooks'; +import { useLocalStorageState, useMemoizedFn, useMount } from 'ahooks'; import { useChatStore } from '@/web/core/chat/context/useChatStore'; import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; import { getInitChatInfo } from '@/web/core/chat/api'; @@ -51,6 +51,7 @@ import { ChatRecordContext } from '@/web/core/chat/context/chatRecordContext'; import { HUGGING_FACE_ICON } from '@fastgpt/global/common/system/constants'; import { getModelFromList } from '@fastgpt/global/core/ai/model'; import MyPopover from '@fastgpt/web/components/common/MyPopover'; +import { ChatSidebarPaneEnum } from '../constants'; type Props = { myApps: AppListItemType[]; @@ -73,9 +74,11 @@ const HomeChatWindow = ({ myApps }: Props) => { const { isPc } = useSystem(); const { userInfo } = useUserStore(); - const { llmModelList, defaultModels } = useSystemStore(); + const { llmModelList, defaultModels, feConfigs } = useSystemStore(); const { chatId, appId, outLinkAuthData } = useChatStore(); + const onHomeClick = useContextSelector(ChatSettingContext, (v) => v.handlePaneChange); + const isOpenSlider = useContextSelector(ChatContext, (v) => v.isOpenSlider); const forbidLoadChat = useContextSelector(ChatContext, (v) => v.forbidLoadChat); const onCloseSlider = useContextSelector(ChatContext, (v) => v.onCloseSlider); @@ -168,6 +171,12 @@ const HomeChatWindow = ({ myApps }: Props) => { } ); + useMount(() => { + if (!feConfigs?.isPlus) { + onHomeClick(ChatSidebarPaneEnum.RECENTLY_USED_APPS); + } + }); + // 使用类似AppChatWindow的对话逻辑 const onStartChat = useMemoizedFn( async ({ diff --git a/projects/app/src/pageComponents/chat/SliderApps.tsx b/projects/app/src/pageComponents/chat/SliderApps.tsx index 1cf0d3e18..26b206c2b 100644 --- a/projects/app/src/pageComponents/chat/SliderApps.tsx +++ b/projects/app/src/pageComponents/chat/SliderApps.tsx @@ -1,6 +1,6 @@ -import React, { useCallback, useState } from 'react'; +import React, { useCallback } from 'react'; import type { BoxProps } from '@chakra-ui/react'; -import { Flex, Box, HStack, Image, Skeleton } from '@chakra-ui/react'; +import { Flex, Box, HStack, Image } from '@chakra-ui/react'; import { motion, AnimatePresence } from 'framer-motion'; import { useRouter } from 'next/router'; import { useTranslation } from 'next-i18next'; @@ -10,8 +10,6 @@ import MyDivider from '@fastgpt/web/components/common/MyDivider'; import { useUserStore } from '@/web/support/user/useUserStore'; import UserAvatarPopover from '@/pageComponents/chat/UserAvatarPopover'; import MyBox from '@fastgpt/web/components/common/MyBox'; -import MyPopover from '@fastgpt/web/components/common/MyPopover'; -import SelectOneResource from '@/components/common/folder/SelectOneResource'; import MyIcon from '@fastgpt/web/components/common/Icon'; import type { GetResourceFolderListProps, @@ -280,45 +278,49 @@ const NavigationSection = () => { {isCollapsed ? ( - - onHomeClick(ChatSidebarPaneEnum.HOME)} - /> - - onHomeClick(ChatSidebarPaneEnum.TEAM_APPS)} - /> - + onHomeClick(ChatSidebarPaneEnum.HOME)} + /> ) : ( - - onHomeClick(ChatSidebarPaneEnum.HOME)} - /> - - onHomeClick(ChatSidebarPaneEnum.TEAM_APPS)} - /> - + onHomeClick(ChatSidebarPaneEnum.HOME)} + /> )} )} + + + {isCollapsed ? ( + + onHomeClick(ChatSidebarPaneEnum.TEAM_APPS)} + /> + + ) : ( + + onHomeClick(ChatSidebarPaneEnum.TEAM_APPS)} + /> + + )} + ); }; diff --git a/projects/app/src/web/core/chat/context/useChatStore.ts b/projects/app/src/web/core/chat/context/useChatStore.ts index 070b02384..a8132750f 100644 --- a/projects/app/src/web/core/chat/context/useChatStore.ts +++ b/projects/app/src/web/core/chat/context/useChatStore.ts @@ -2,7 +2,7 @@ import { create, createJSONStorage, devtools, persist, immer } from '@fastgpt/we import { getNanoid } from '@fastgpt/global/common/string/tools'; import { type OutLinkChatAuthProps } from '@fastgpt/global/support/permission/chat'; import type { ChatSourceEnum } from '@fastgpt/global/core/chat/constants'; -import { ChatSidebarPaneEnum } from '@/pageComponents/chat/constants'; +import type { ChatSidebarPaneEnum } from '@/pageComponents/chat/constants'; type State = { source?: `${ChatSourceEnum}`; @@ -17,7 +17,7 @@ type State = { chatId: string; setChatId: (e?: string) => any; - lastPane: ChatSidebarPaneEnum; + lastPane?: ChatSidebarPaneEnum; setLastPane: (e: ChatSidebarPaneEnum) => any; outLinkAuthData: OutLinkChatAuthProps; @@ -115,7 +115,7 @@ export const useChatStore = create()( state.lastChatAppId = e; }); }, - lastPane: ChatSidebarPaneEnum.HOME, + lastPane: undefined, setLastPane(e) { set((state) => { state.lastPane = e;