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 3f79ff55..4be31696 100644
--- a/apps/agent/src/page/WorkSpace/Chat/module/chatHistory.tsx
+++ b/apps/agent/src/page/WorkSpace/Chat/module/chatHistory.tsx
@@ -1,5 +1,5 @@
import { FC, useCallback, useContext, useEffect, useMemo } from "react"
-import { useSearchParams } from "react-router-dom"
+import { useParams } from "react-router-dom"
import { TextSignal } from "@/api/ws/textSignal"
import { PreviewChat } from "@/components/PreviewChat"
import { PreviewChatUseProvider } from "@/components/PreviewChat/PreviewChatUseContext"
@@ -9,18 +9,22 @@ 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 [urlSearchParams] = useSearchParams()
+ const addChatTab = useAddChatTab()
const wsContext = useMemo(
() => ({
@@ -35,19 +39,14 @@ export const ChatHistory: FC = () => {
const onSendMessage = useCallback(
(message: ChatMessage) => {
- const defaultModelConfig =
- import.meta.env.ILLA_APP_ENV === "production"
- ? INIT_CHAT_CONFIG.model
- : urlSearchParams.get("defaultModel")
- ? Number(urlSearchParams.get("defaultModel"))
- : INIT_CHAT_CONFIG.model
-
+ if (DEFAULT_CHAT_ID === chatID) {
+ addChatTab(DEFAULT_CHAT_ID)
+ }
sendMessage(
{
threadID: message.threadID,
prompt: message.message,
...INIT_CHAT_CONFIG,
- model: defaultModelConfig,
} as ChatSendRequestPayload,
TextSignal.RUN,
SEND_MESSAGE_WS_TYPE.CHAT,
@@ -58,7 +57,7 @@ export const ChatHistory: FC = () => {
},
)
},
- [sendMessage, urlSearchParams],
+ [addChatTab, chatID, sendMessage],
)
useEffect(() => {
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;
+`
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,
}