diff --git a/apps/builder/src/page/AI/AIAgentRun/AIAgentRunPC/index.tsx b/apps/builder/src/page/AI/AIAgentRun/AIAgentRunPC/index.tsx index 2ee75a3bd3..3ce3ecbc80 100644 --- a/apps/builder/src/page/AI/AIAgentRun/AIAgentRunPC/index.tsx +++ b/apps/builder/src/page/AI/AIAgentRun/AIAgentRunPC/index.tsx @@ -45,6 +45,7 @@ import { getILLABuilderURL, getILLACloudURL, } from "@illa-public/utils" +import { AnimatePresence, motion } from "framer-motion" import { FC, useEffect, useRef, useState } from "react" import { Helmet } from "react-helmet-async" import { Controller, useForm, useFormState } from "react-hook-form" @@ -630,206 +631,222 @@ export const AIAgentRunPC: FC = () => {
-
-
-
-
- -
{t("back")}
-
- - - -
-
- ( - - )} - /> - ( -
{field.value}
- )} - /> -
- ( -
{field.value}
- )} - /> -
- ( - + {showEditPanel && ( + +
+
+
+ +
{t("back")}
+
+ + + +
+
+ ( + + )} /> - )} - /> - ( -
{field.value}
- )} - /> -
- {menu} -
-
- ( - - { - if (isReceiving || isConnecting) { - message.info({ - content: t("editor.ai-agent.message.generating"), - }) - return - } - track( - ILLA_MIXPANEL_EVENT_TYPE.CLICK, - ILLA_MIXPANEL_BUILDER_PAGE_NAME.AI_AGENT_RUN, - { - element: "mode_radio_button", - parameter1: value, - parameter5: agent.aiAgentID, - }, - ) - field.onChange(value) - }} + ( +
{field.value}
+ )} /> -
- )} - /> - ( +
( - - ( +
{field.value}
+ )} + /> +
+ ( + + )} + /> + ( +
{field.value}
+ )} + /> +
+ {menu} +
+
+ ( + + { + if (isReceiving || isConnecting) { + message.info({ + content: t( + "editor.ai-agent.message.generating", + ), + }) + return + } + track( + ILLA_MIXPANEL_EVENT_TYPE.CLICK, + ILLA_MIXPANEL_BUILDER_PAGE_NAME.AI_AGENT_RUN, + { + element: "mode_radio_button", + parameter1: value, + parameter5: agent.aiAgentID, + }, + ) + field.onChange(value) + }} /> )} /> - )} - /> - - value.every( - (param) => param.key !== "" && param.value !== "", - ) || - (value.length === 1 && - value[0].key === "" && - value[0].value === ""), - }} - shouldUnregister={false} - render={({ field }) => - field.value.length > 0 ? ( - - { - const newVariables = [...field.value] - newVariables[index].key = key - field.onChange(newVariables) - }} - onChangeValue={(index, _, value) => { - const newVariables = [...field.value] - newVariables[index].value = value - field.onChange(newVariables) - }} - onAdd={() => {}} - onDelete={() => {}} - label={""} + ( + ( + + + + )} /> - - ) : ( - <> - ) - } - /> - ( - -
- - {getLLM(field.value)?.logo} - - - {getLLM(field.value)?.name} - -
-
- )} - /> -
-
-
- -
-
-
+ )} + /> + + value.every( + (param) => param.key !== "" && param.value !== "", + ) || + (value.length === 1 && + value[0].key === "" && + value[0].value === ""), + }} + shouldUnregister={false} + render={({ field }) => + field.value.length > 0 ? ( + + { + const newVariables = [...field.value] + newVariables[index].key = key + field.onChange(newVariables) + }} + onChangeValue={(index, _, value) => { + const newVariables = [...field.value] + newVariables[index].value = value + field.onChange(newVariables) + }} + onAdd={() => {}} + onDelete={() => {}} + label={""} + /> + + ) : ( + <> + ) + } + /> + ( + +
+ + {getLLM(field.value)?.logo} + + + {getLLM(field.value)?.name} + +
+
+ )} + /> +
+
+
+ +
+
+ + )} + css` +export const leftPanelContainerStyle = css` height: 100%; width: 528px; display: flex; flex-direction: column; overflow-y: auto; - opacity: ${showEditPanel ? 1 : 0}; - position: ${showEditPanel ? "relative" : "absolute"}; - transform: ${showEditPanel ? "translateX(0)" : "translateX(-100%)"}; box-shadow: 4px 0 16px 0 rgba(0, 0, 0, 0.06); flex: none; - transition: all 0.3s ease-in-out; ${applyMobileStyle(css` display: none; `)}