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;