{
@@ -189,7 +187,10 @@ export default function BuildTrigger({
) : isBuilding ? (
) : (
-
+
)}
diff --git a/src/frontend/src/components/chatComponent/chatTrigger/index.tsx b/src/frontend/src/components/chatComponent/chatTrigger/index.tsx
index 116b03916..14fe4f73d 100644
--- a/src/frontend/src/components/chatComponent/chatTrigger/index.tsx
+++ b/src/frontend/src/components/chatComponent/chatTrigger/index.tsx
@@ -3,18 +3,30 @@ import { MessagesSquare } from "lucide-react";
import { alertContext } from "../../../contexts/alertContext";
import { useContext } from "react";
-import ShadTooltip from "../../ShadTooltipComponent";
+import {
+ CHAT_CANNOT_OPEN_DESCRIPTION,
+ CHAT_CANNOT_OPEN_TITLE,
+ FLOW_NOT_BUILT_DESCRIPTION,
+ FLOW_NOT_BUILT_TITLE,
+} from "../../../constants";
-export default function ChatTrigger({ open, setOpen, isBuilt }) {
+export default function ChatTrigger({ open, setOpen, isBuilt, canOpen }) {
const { setErrorData } = useContext(alertContext);
function handleClick() {
if (isBuilt) {
- setOpen(true);
+ if (canOpen) {
+ setOpen(true);
+ } else {
+ setErrorData({
+ title: CHAT_CANNOT_OPEN_TITLE,
+ list: [CHAT_CANNOT_OPEN_DESCRIPTION],
+ });
+ }
} else {
setErrorData({
- title: "Flow not built",
- list: ["Please build the flow before chatting"],
+ title: FLOW_NOT_BUILT_TITLE,
+ list: [FLOW_NOT_BUILT_DESCRIPTION],
});
}
}
@@ -30,15 +42,26 @@ export default function ChatTrigger({ open, setOpen, isBuilt }) {
leaveFrom="translate-y-0"
leaveTo="translate-y-96"
>
-
+
);
}
diff --git a/src/frontend/src/components/chatComponent/index.tsx b/src/frontend/src/components/chatComponent/index.tsx
index 3c01e9c8b..9130be694 100644
--- a/src/frontend/src/components/chatComponent/index.tsx
+++ b/src/frontend/src/components/chatComponent/index.tsx
@@ -13,6 +13,7 @@ import * as _ from "lodash";
export default function Chat({ flow }: ChatType) {
const [open, setOpen] = useState(false);
const [isBuilt, setIsBuilt] = useState(false);
+ const [canOpen, setCanOpen] = useState(false);
const { tabsState } = useContext(TabsContext);
useEffect(() => {
@@ -58,6 +59,17 @@ export default function Chat({ flow }: ChatType) {
) {
setIsBuilt(false);
}
+ if (
+ tabsState &&
+ tabsState[flow.id] &&
+ tabsState[flow.id].formKeysData &&
+ tabsState[flow.id].formKeysData.input_keys &&
+ Object.keys(tabsState[flow.id].formKeysData.input_keys).length > 0
+ ) {
+ setCanOpen(true);
+ } else {
+ setCanOpen(false);
+ }
prevNodesRef.current = currentNodes;
}, [tabsState]);
@@ -71,10 +83,15 @@ export default function Chat({ flow }: ChatType) {
setIsBuilt={setIsBuilt}
isBuilt={isBuilt}
/>
- {isBuilt && (
+ {isBuilt && canOpen && (
)}
-
+
>
);
diff --git a/src/frontend/src/components/codeAreaComponent/index.tsx b/src/frontend/src/components/codeAreaComponent/index.tsx
index 83861dbd0..a4583f565 100644
--- a/src/frontend/src/components/codeAreaComponent/index.tsx
+++ b/src/frontend/src/components/codeAreaComponent/index.tsx
@@ -1,9 +1,7 @@
import { useContext, useEffect, useState } from "react";
import { PopUpContext } from "../../contexts/popUpContext";
import CodeAreaModal from "../../modals/codeAreaModal/v2";
-import TextAreaModal from "../../modals/textAreaModal";
-import { CodeAreaComponentType, TextAreaComponentType } from "../../types/components";
-
+import { CodeAreaComponentType } from "../../types/components";
import { ExternalLink } from "lucide-react";
@@ -54,7 +52,8 @@ export default function CodeAreaComponent({
className={
editNode
? "input-edit-node input-dialog "
- : "input-primary input-dialog " + (disabled ? "input-disable" : "")
+ : "input-dialog input-primary " +
+ (disabled ? "input-disable" : "")
}
>
{myValue !== "" ? myValue : "Type something..."}
@@ -63,9 +62,9 @@ export default function CodeAreaComponent({
onClick={() => {
openPopUp(