From 9deef9af728917860f5251199014b033866f63c4 Mon Sep 17 00:00:00 2001 From: AruSeito <41471697+AruSeito@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:24:21 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E2=9C=A8=20update=20default=20tab?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Layout/Workspace/pc/modules/Menu/index.tsx | 2 +- apps/agent/src/page/WorkSpace/Chat/index.tsx | 3 ++- .../src/page/WorkSpace/Chat/module/chatHistory.tsx | 12 +++++++++++- apps/agent/src/redux/ui/recentTab/reducer.ts | 5 ++--- apps/agent/src/redux/ui/recentTab/state.ts | 14 ++------------ apps/agent/src/utils/localForage/recentTab.ts | 9 ++++----- 6 files changed, 22 insertions(+), 23 deletions(-) diff --git a/apps/agent/src/Layout/Workspace/pc/modules/Menu/index.tsx b/apps/agent/src/Layout/Workspace/pc/modules/Menu/index.tsx index d3fd6bbf..3db40e25 100644 --- a/apps/agent/src/Layout/Workspace/pc/modules/Menu/index.tsx +++ b/apps/agent/src/Layout/Workspace/pc/modules/Menu/index.tsx @@ -171,7 +171,7 @@ const PCWorkspaceMenu: FC = () => { className="divider" /> - {recentTabInfos.length > 1 && ( + {recentTabInfos.length > 0 && (
{ const addChatTab = useAddChatTab() useEffect(() => { - if (chatID) { + if (chatID && chatID !== DEFAULT_CHAT_ID) { addChatTab(chatID) } }, [addChatTab, chatID]) diff --git a/apps/agent/src/page/WorkSpace/Chat/module/chatHistory.tsx b/apps/agent/src/page/WorkSpace/Chat/module/chatHistory.tsx index 588faebe..4be31696 100644 --- a/apps/agent/src/page/WorkSpace/Chat/module/chatHistory.tsx +++ b/apps/agent/src/page/WorkSpace/Chat/module/chatHistory.tsx @@ -1,4 +1,5 @@ import { FC, useCallback, useContext, useEffect, useMemo } from "react" +import { useParams } from "react-router-dom" import { TextSignal } from "@/api/ws/textSignal" import { PreviewChat } from "@/components/PreviewChat" import { PreviewChatUseProvider } from "@/components/PreviewChat/PreviewChatUseContext" @@ -8,17 +9,23 @@ import { ChatMessage, ChatSendRequestPayload, } from "@/components/PreviewChat/interface" +import { DEFAULT_CHAT_ID } from "@/redux/ui/recentTab/state" +import { useAddChatTab } from "@/utils/recentTabs/hook" import { ChatContext } from "../../AI/components/ChatContext" import { ChatStableWSContext, ChatUnStableWSContext } from "../context" import { INIT_CHAT_CONFIG } from "./constants" import { rightPanelContainerStyle } from "./style" export const ChatHistory: FC = () => { + const { chatID } = useParams() + const { connect, leaveRoom, sendMessage } = useContext(ChatStableWSContext) const { getReadyState, isRunning, chatMessages, isReceiving, inRoomUsers } = useContext(ChatUnStableWSContext) + const addChatTab = useAddChatTab() + const wsContext = useMemo( () => ({ getReadyState, @@ -32,6 +39,9 @@ export const ChatHistory: FC = () => { const onSendMessage = useCallback( (message: ChatMessage) => { + if (DEFAULT_CHAT_ID === chatID) { + addChatTab(DEFAULT_CHAT_ID) + } sendMessage( { threadID: message.threadID, @@ -47,7 +57,7 @@ export const ChatHistory: FC = () => { }, ) }, - [sendMessage], + [addChatTab, chatID, sendMessage], ) useEffect(() => { diff --git a/apps/agent/src/redux/ui/recentTab/reducer.ts b/apps/agent/src/redux/ui/recentTab/reducer.ts index cdcb98d1..05871a29 100644 --- a/apps/agent/src/redux/ui/recentTab/reducer.ts +++ b/apps/agent/src/redux/ui/recentTab/reducer.ts @@ -1,6 +1,5 @@ import { CaseReducer, PayloadAction } from "@reduxjs/toolkit" import { IRecentTabState, ITabInfo } from "./interface" -import { DEFAULT_CHAT_ID, INIT_TABS } from "./state" export const setRecentTabReducer: CaseReducer< IRecentTabState, @@ -67,8 +66,8 @@ export const deleteRecentTabByCacheIDReducer: CaseReducer< export const deleteAllRecentTabReducer: CaseReducer = ( state, ) => { - state.tabs = INIT_TABS - state.currentTabID = DEFAULT_CHAT_ID + state.tabs = [] + state.currentTabID = "" } export const updateRecentTabReducer: CaseReducer< diff --git a/apps/agent/src/redux/ui/recentTab/state.ts b/apps/agent/src/redux/ui/recentTab/state.ts index 534b0fa2..214e32cb 100644 --- a/apps/agent/src/redux/ui/recentTab/state.ts +++ b/apps/agent/src/redux/ui/recentTab/state.ts @@ -1,18 +1,8 @@ -import { IRecentTabState, ITabInfo, TAB_TYPE } from "./interface" +import { IRecentTabState } from "./interface" export const DEFAULT_CHAT_ID = "DEFAULT_CHAT" -export const INIT_TABS: ITabInfo[] = [ - { - tabName: "", - tabIcon: "", - tabType: TAB_TYPE.CHAT, - tabID: DEFAULT_CHAT_ID, - cacheID: DEFAULT_CHAT_ID, - }, -] - export const recentTabInitState: IRecentTabState = { currentTabID: DEFAULT_CHAT_ID, - tabs: INIT_TABS, + tabs: [], } diff --git a/apps/agent/src/utils/localForage/recentTab.ts b/apps/agent/src/utils/localForage/recentTab.ts index 00bce808..dd1311fd 100644 --- a/apps/agent/src/utils/localForage/recentTab.ts +++ b/apps/agent/src/utils/localForage/recentTab.ts @@ -1,16 +1,15 @@ import { klona } from "klona/json" import { ITabInfo } from "@/redux/ui/recentTab/interface" -import { DEFAULT_CHAT_ID, INIT_TABS } from "@/redux/ui/recentTab/state" +import { DEFAULT_CHAT_ID } from "@/redux/ui/recentTab/state" import { ITeamData } from "./interface" import { getTeamDataByTeamID, setTeamDataByTeamID } from "./teamData" export const getRecentTabs = async (teamID: string) => { const teamData = await getTeamDataByTeamID(teamID) if (!teamData) { - await setRecentTabs(teamID, INIT_TABS) - return INIT_TABS + return [] } - const tabsInfo = teamData.tabsInfo ?? INIT_TABS + const tabsInfo = teamData.tabsInfo ?? [] return tabsInfo } @@ -70,7 +69,7 @@ export const removeAllRecentTabsAndCacheData = async (teamID: string) => { if (!teamData) return const newTeamData = klona(teamData) const defaultCache = teamData.uiHistory?.[DEFAULT_CHAT_ID] ?? {} - newTeamData.tabsInfo = INIT_TABS + newTeamData.tabsInfo = [] newTeamData.uiHistory = { [DEFAULT_CHAT_ID]: defaultCache, } From 8d8bd0b15b749a7ffed9fabe92875e3ad471ca27 Mon Sep 17 00:00:00 2001 From: AruSeito <41471697+AruSeito@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:31:01 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=E2=9C=A8=20update=20add=20function?= =?UTF-8?q?=20gif?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkSpace/Function/modules/DocPanel/index.tsx | 12 +++++++++++- .../WorkSpace/Function/modules/DocPanel/style.ts | 7 +++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/apps/agent/src/page/WorkSpace/Function/modules/DocPanel/index.tsx b/apps/agent/src/page/WorkSpace/Function/modules/DocPanel/index.tsx index edaad3b9..cbacba53 100644 --- a/apps/agent/src/page/WorkSpace/Function/modules/DocPanel/index.tsx +++ b/apps/agent/src/page/WorkSpace/Function/modules/DocPanel/index.tsx @@ -8,7 +8,13 @@ import { useGetWhiteListIPQuery } from "@/redux/services/peripheralAPI" import { useCopyToClipboard } from "@/utils/copyToClipboard" import CopyPanel from "../../components/CopyPanel" import { IFunctionForm } from "../../interface" -import { blockStyle, descStyle, docPanelStyle, titleStyle } from "./style" +import { + blockStyle, + descStyle, + docPanelStyle, + imageStyle, + titleStyle, +} from "./style" import { INTEGRATION_TYPE_MAP_DOC } from "./utils" const DocPanel: FC = () => { @@ -59,6 +65,10 @@ const DocPanel: FC = () => {

{t("function.edit.right_panel.add_to_tipi")}

+

{t("function.edit.right_panel.write_in_prompt")}

diff --git a/apps/agent/src/page/WorkSpace/Function/modules/DocPanel/style.ts b/apps/agent/src/page/WorkSpace/Function/modules/DocPanel/style.ts index 6a4681ca..f74e6d45 100644 --- a/apps/agent/src/page/WorkSpace/Function/modules/DocPanel/style.ts +++ b/apps/agent/src/page/WorkSpace/Function/modules/DocPanel/style.ts @@ -29,3 +29,10 @@ export const descStyle = css` font-weight: 400; line-height: 20px; ` + +export const imageStyle = css` + width: 100%; + border-radius: 12px; + overflow: hidden; + background: #f2f3f5; +`