From 1d1c19beca40f5700aa3e9d00f9f0d62b47e8470 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Mon, 10 Apr 2023 20:35:07 -0300 Subject: [PATCH 01/31] added button to open modal --- src/frontend/src/CustomNodes/GenericNode/index.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/frontend/src/CustomNodes/GenericNode/index.tsx b/src/frontend/src/CustomNodes/GenericNode/index.tsx index ff13af901..287d3a068 100644 --- a/src/frontend/src/CustomNodes/GenericNode/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/index.tsx @@ -117,6 +117,15 @@ export default function GenericNode({ )} ))} +
+ {" "} + +
Output
From 36b191d06bc3e213018e46565b5ffffd76dd538a Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Mon, 10 Apr 2023 21:04:42 -0300 Subject: [PATCH 02/31] custom icon on node modal and change type on contexts --- .../src/CustomNodes/GenericNode/index.tsx | 14 ++- src/frontend/src/contexts/index.tsx | 16 ++- src/frontend/src/modals/NodeModal/index.tsx | 113 ++++++++++++++++++ 3 files changed, 133 insertions(+), 10 deletions(-) create mode 100644 src/frontend/src/modals/NodeModal/index.tsx diff --git a/src/frontend/src/CustomNodes/GenericNode/index.tsx b/src/frontend/src/CustomNodes/GenericNode/index.tsx index 287d3a068..a35f14452 100644 --- a/src/frontend/src/CustomNodes/GenericNode/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/index.tsx @@ -10,6 +10,8 @@ import { typesContext } from "../../contexts/typesContext"; import { useContext, useRef } from "react"; import { NodeDataType } from "../../types/flow"; import { alertContext } from "../../contexts/alertContext"; +import { PopUpContext } from "../../contexts/popUpContext"; +import NodeModal from "../../modals/NodeModal"; export default function GenericNode({ data, @@ -21,6 +23,7 @@ export default function GenericNode({ const { setErrorData } = useContext(alertContext); const showError = useRef(true); const { types, deleteNode } = useContext(typesContext); + const {openPopUp} = useContext(PopUpContext) const Icon = nodeIcons[types[data.type]]; if (!Icon) { if (showError.current) { @@ -124,7 +127,16 @@ export default function GenericNode({ )} > {" "} - +
Output diff --git a/src/frontend/src/contexts/index.tsx b/src/frontend/src/contexts/index.tsx index 310606ea5..783bd108c 100644 --- a/src/frontend/src/contexts/index.tsx +++ b/src/frontend/src/contexts/index.tsx @@ -12,15 +12,13 @@ export default function ContextWrapper({ children }: { children: ReactNode }) { <> - - - - - {children} - - - - + + + + {children} + + + diff --git a/src/frontend/src/modals/NodeModal/index.tsx b/src/frontend/src/modals/NodeModal/index.tsx new file mode 100644 index 000000000..2d0476d8d --- /dev/null +++ b/src/frontend/src/modals/NodeModal/index.tsx @@ -0,0 +1,113 @@ +import { Dialog, Transition } from "@headlessui/react"; +import { + XMarkIcon, +} from "@heroicons/react/24/outline"; +import { Fragment, useContext, useRef, useState } from "react"; +import { PopUpContext } from "../../contexts/popUpContext"; +import { NodeDataType } from "../../types/flow"; +import { nodeColors, nodeIcons } from "../../utils"; +import { typesContext } from "../../contexts/typesContext"; + +export default function NodeModal({ data }: { data: NodeDataType }) { + const [open, setOpen] = useState(true); + const { closePopUp } = useContext(PopUpContext); + const { types } = useContext(typesContext); + const ref = useRef(); + function setModalOpen(x: boolean) { + setOpen(x); + if (x === false) { + setTimeout(() => { + closePopUp(); + }, 300); + } + } + const Icon = nodeIcons[types[data.type]]; + return ( + + + +
+ + +
+
+ + +
+ +
+
+
+ +
+ + Edit text + +
+
+
+
+
+
content
+
+
+
+
+ +
+
+
+
+
+
+
+
+ ); +} From 1df0757a54a6ca23d1a9f2a09032fdf82b1be398 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Mon, 10 Apr 2023 21:07:40 -0300 Subject: [PATCH 03/31] custom title --- src/frontend/src/modals/NodeModal/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frontend/src/modals/NodeModal/index.tsx b/src/frontend/src/modals/NodeModal/index.tsx index 2d0476d8d..7ce868885 100644 --- a/src/frontend/src/modals/NodeModal/index.tsx +++ b/src/frontend/src/modals/NodeModal/index.tsx @@ -80,7 +80,7 @@ export default function NodeModal({ data }: { data: NodeDataType }) { as="h3" className="text-lg font-medium dark:text-white leading-10 text-gray-900" > - Edit text + {data.type}
From 596263c42f929f8c4c24d55ec495f1f65f25ab18 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Mon, 10 Apr 2023 21:23:25 -0300 Subject: [PATCH 04/31] showing all properties of the node template --- .../src/modals/NodeModal/components/index.tsx | 1 + src/frontend/src/modals/NodeModal/index.tsx | 26 +++++++++++-------- 2 files changed, 16 insertions(+), 11 deletions(-) create mode 100644 src/frontend/src/modals/NodeModal/components/index.tsx diff --git a/src/frontend/src/modals/NodeModal/components/index.tsx b/src/frontend/src/modals/NodeModal/components/index.tsx new file mode 100644 index 000000000..a7d78d90e --- /dev/null +++ b/src/frontend/src/modals/NodeModal/components/index.tsx @@ -0,0 +1 @@ +export const value=0 \ No newline at end of file diff --git a/src/frontend/src/modals/NodeModal/index.tsx b/src/frontend/src/modals/NodeModal/index.tsx index 7ce868885..8b6f3e851 100644 --- a/src/frontend/src/modals/NodeModal/index.tsx +++ b/src/frontend/src/modals/NodeModal/index.tsx @@ -1,7 +1,5 @@ import { Dialog, Transition } from "@headlessui/react"; -import { - XMarkIcon, -} from "@heroicons/react/24/outline"; +import { XMarkIcon } from "@heroicons/react/24/outline"; import { Fragment, useContext, useRef, useState } from "react"; import { PopUpContext } from "../../contexts/popUpContext"; import { NodeDataType } from "../../types/flow"; @@ -68,13 +66,13 @@ export default function NodeModal({ data }: { data: NodeDataType }) {
- +
-
content
+
+ {Object.keys(data.node.template) + .filter((t) => t.charAt(0) !== "_") + .map((t: string, idx) => ( +
{t}
+ ))} +
From 09db0734d752094b98cb6769a9e70ec9f55f207b Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Tue, 11 Apr 2023 20:21:30 -0300 Subject: [PATCH 05/31] str type components for options =false --- .../components/textAreaComponent/index.tsx | 1 - .../NodeModal/components/ModalField/index.tsx | 57 +++++++++++++++++++ src/frontend/src/modals/NodeModal/index.tsx | 31 +++++++++- 3 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 src/frontend/src/modals/NodeModal/components/ModalField/index.tsx diff --git a/src/frontend/src/components/textAreaComponent/index.tsx b/src/frontend/src/components/textAreaComponent/index.tsx index df61e1ae1..9efdfacbc 100644 --- a/src/frontend/src/components/textAreaComponent/index.tsx +++ b/src/frontend/src/components/textAreaComponent/index.tsx @@ -1,7 +1,6 @@ import { ArrowTopRightOnSquareIcon } from "@heroicons/react/24/outline"; import { useContext, useEffect, useState } from "react"; import { PopUpContext } from "../../contexts/popUpContext"; -import CodeAreaModal from "../../modals/codeAreaModal"; import TextAreaModal from "../../modals/textAreaModal"; import { TextAreaComponentType } from "../../types/components"; diff --git a/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx b/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx new file mode 100644 index 000000000..f786f2bb1 --- /dev/null +++ b/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx @@ -0,0 +1,57 @@ +import { useContext } from "react"; +import { TabsContext } from "../../../../contexts/tabsContext"; +import InputListComponent from "../../../../components/inputListComponent"; +import Dropdown from "../../../../components/dropdownComponent"; +import TextAreaComponent from "../../../../components/textAreaComponent"; +import InputComponent from "../../../../components/inputComponent"; + +export default function ModalField({ data, title, required, id, name, type }) { + const { save } = useContext(TabsContext); + console.log(name); + console.log(data.node.template[name].options); + + return ( +
+ {type === "str" && !data.node.template[name].options ? ( +
+ {data.node.template[name].list ? ( + { + data.node.template[name].value = t; + save(); + }} + /> + ) : data.node.template[name].multiline ? ( + { + data.node.template[name].value = t; + save(); + }} + /> + ) : ( + { + data.node.template[name].value = t; + save(); + }} + /> + )} +
+ ) : ( +
{name}
+ )} +
+ ); +} diff --git a/src/frontend/src/modals/NodeModal/index.tsx b/src/frontend/src/modals/NodeModal/index.tsx index 8b6f3e851..e346914d8 100644 --- a/src/frontend/src/modals/NodeModal/index.tsx +++ b/src/frontend/src/modals/NodeModal/index.tsx @@ -3,8 +3,9 @@ import { XMarkIcon } from "@heroicons/react/24/outline"; import { Fragment, useContext, useRef, useState } from "react"; import { PopUpContext } from "../../contexts/popUpContext"; import { NodeDataType } from "../../types/flow"; -import { nodeColors, nodeIcons } from "../../utils"; +import { nodeColors, nodeIcons, snakeToNormalCase } from "../../utils"; import { typesContext } from "../../contexts/typesContext"; +import ModalField from "./components/ModalField"; export default function NodeModal({ data }: { data: NodeDataType }) { const [open, setOpen] = useState(true); @@ -86,10 +87,36 @@ export default function NodeModal({ data }: { data: NodeDataType }) {
+ {/* str, code, bool, float, int,prompt, file, */} {Object.keys(data.node.template) .filter((t) => t.charAt(0) !== "_") .map((t: string, idx) => ( -
{t}
+
+ { + + } +
))}
From 4ddd47da10b9900cf8fd63012aa99f6f3b331409 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Tue, 11 Apr 2023 20:24:48 -0300 Subject: [PATCH 06/31] added bool toogle button --- .../NodeModal/components/ModalField/index.tsx | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx b/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx index f786f2bb1..7841c4499 100644 --- a/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx +++ b/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx @@ -1,14 +1,16 @@ -import { useContext } from "react"; +import { useContext, useState } from "react"; import { TabsContext } from "../../../../contexts/tabsContext"; import InputListComponent from "../../../../components/inputListComponent"; import Dropdown from "../../../../components/dropdownComponent"; import TextAreaComponent from "../../../../components/textAreaComponent"; import InputComponent from "../../../../components/inputComponent"; +import ToggleComponent from "../../../../components/toggleComponent"; export default function ModalField({ data, title, required, id, name, type }) { const { save } = useContext(TabsContext); - console.log(name); - console.log(data.node.template[name].options); + const [enabled, setEnabled] = useState( + data.node.template[name]?.value ?? false + ); return (
@@ -49,8 +51,21 @@ export default function ModalField({ data, title, required, id, name, type }) { /> )}
+ ) : type === "bool" ? ( +
+ {" "} + { + data.node.template[name].value = t; + setEnabled(t); + save(); + }} + /> +
) : ( -
{name}
+
)}
); From fef9f254d6676e4b1474dec4e5c31d9f5ece6f8b Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Tue, 11 Apr 2023 20:27:28 -0300 Subject: [PATCH 07/31] added floatComponent --- .../NodeModal/components/ModalField/index.tsx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx b/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx index 7841c4499..3e33b56d8 100644 --- a/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx +++ b/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx @@ -5,6 +5,7 @@ import Dropdown from "../../../../components/dropdownComponent"; import TextAreaComponent from "../../../../components/textAreaComponent"; import InputComponent from "../../../../components/inputComponent"; import ToggleComponent from "../../../../components/toggleComponent"; +import FloatComponent from "../../../../components/floatComponent"; export default function ModalField({ data, title, required, id, name, type }) { const { save } = useContext(TabsContext); @@ -64,9 +65,16 @@ export default function ModalField({ data, title, required, id, name, type }) { }} />
- ) : ( -
- )} + ) : type ==="float"?( + { + data.node.template[name].value = t; + save(); + }} + /> + ):(
{name}
)}
); } From 74b7a17afc81aef685efcd8552531625c898ac3e Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Tue, 11 Apr 2023 20:29:04 -0300 Subject: [PATCH 08/31] added DropdownComponent --- .../NodeModal/components/ModalField/index.tsx | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx b/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx index 3e33b56d8..a319c5031 100644 --- a/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx +++ b/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx @@ -9,7 +9,7 @@ import FloatComponent from "../../../../components/floatComponent"; export default function ModalField({ data, title, required, id, name, type }) { const { save } = useContext(TabsContext); - const [enabled, setEnabled] = useState( + const [enabled, setEnabled] = useState( data.node.template[name]?.value ?? false ); @@ -65,16 +65,24 @@ export default function ModalField({ data, title, required, id, name, type }) { }} /> - ) : type ==="float"?( - { - data.node.template[name].value = t; - save(); - }} - /> - ):(
{name}
)} + ) : type === "float" ? ( + { + data.node.template[name].value = t; + save(); + }} + /> + ) : type === "str" && data.node.template[name].options ? ( + (data.node.template[name].value = newValue)} + value={data.node.template[name].value ?? "Choose an option"} + > + ) : ( +
{name}
+ )} ); } From 8413c4c6c0d0b6b70b111d0101ec63abc5243f0d Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Tue, 11 Apr 2023 20:37:40 -0300 Subject: [PATCH 09/31] added template for complicated type --- .../NodeModal/components/ModalField/index.tsx | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx b/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx index a319c5031..17ba5545f 100644 --- a/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx +++ b/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx @@ -6,6 +6,7 @@ import TextAreaComponent from "../../../../components/textAreaComponent"; import InputComponent from "../../../../components/inputComponent"; import ToggleComponent from "../../../../components/toggleComponent"; import FloatComponent from "../../../../components/floatComponent"; +import IntComponent from "../../../../components/intComponent"; export default function ModalField({ data, title, required, id, name, type }) { const { save } = useContext(TabsContext); @@ -80,6 +81,21 @@ export default function ModalField({ data, title, required, id, name, type }) { onSelect={(newValue) => (data.node.template[name].value = newValue)} value={data.node.template[name].value ?? "Choose an option"} > + ) : type === "int" ? ( + { + data.node.template[name].value = t; + save(); + }} + /> + ) : type === "file" ? ( +
file
+ ) : type === "prompt" ? ( +
code
+ ) : type === "code" ? ( +
code
) : (
{name}
)} From 394d6d4b4b0501fab1b9509cfbc6d790612cf20b Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Tue, 11 Apr 2023 20:41:22 -0300 Subject: [PATCH 10/31] added file component --- .../NodeModal/components/ModalField/index.tsx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx b/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx index 17ba5545f..7d747c73e 100644 --- a/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx +++ b/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx @@ -7,6 +7,7 @@ import InputComponent from "../../../../components/inputComponent"; import ToggleComponent from "../../../../components/toggleComponent"; import FloatComponent from "../../../../components/floatComponent"; import IntComponent from "../../../../components/intComponent"; +import InputFileComponent from "../../../../components/inputFileComponent"; export default function ModalField({ data, title, required, id, name, type }) { const { save } = useContext(TabsContext); @@ -91,7 +92,19 @@ export default function ModalField({ data, title, required, id, name, type }) { }} /> ) : type === "file" ? ( -
file
+ { + data.node.template[name].value = t; + }} + fileTypes={data.node.template[name].fileTypes} + suffixes={data.node.template[name].suffixes} + onFileChange={(t: string) => { + data.node.template[name].content = t; + save(); + }} + > ) : type === "prompt" ? (
code
) : type === "code" ? ( From 3224cd8ed787813da10f1bbaea7ec7cc1a21d077 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Tue, 11 Apr 2023 20:43:07 -0300 Subject: [PATCH 11/31] comment text area component --- .../NodeModal/components/ModalField/index.tsx | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx b/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx index 7d747c73e..a6a16efbd 100644 --- a/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx +++ b/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx @@ -34,14 +34,15 @@ export default function ModalField({ data, title, required, id, name, type }) { }} /> ) : data.node.template[name].multiline ? ( - { - data.node.template[name].value = t; - save(); - }} - /> + // { + // data.node.template[name].value = t; + // save(); + // }} + // /> +
text area component
) : ( Date: Wed, 12 Apr 2023 19:57:52 -0300 Subject: [PATCH 12/31] first styling in nodeModal --- .../src/CustomNodes/GenericNode/index.tsx | 4 +- .../NodeModal/components/ModalField/index.tsx | 100 +++++++++++------- 2 files changed, 66 insertions(+), 38 deletions(-) diff --git a/src/frontend/src/CustomNodes/GenericNode/index.tsx b/src/frontend/src/CustomNodes/GenericNode/index.tsx index a35f14452..5ed25268e 100644 --- a/src/frontend/src/CustomNodes/GenericNode/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/index.tsx @@ -122,7 +122,7 @@ export default function GenericNode({ ))}
@@ -135,7 +135,7 @@ export default function GenericNode({ className="hover:text-blue-500" > {" "} - see all{" "} + show advanced{" "}
diff --git a/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx b/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx index a6a16efbd..d0d7901e1 100644 --- a/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx +++ b/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx @@ -8,6 +8,8 @@ import ToggleComponent from "../../../../components/toggleComponent"; import FloatComponent from "../../../../components/floatComponent"; import IntComponent from "../../../../components/intComponent"; import InputFileComponent from "../../../../components/inputFileComponent"; +import PromptAreaComponent from "../../../../components/promptComponent"; +import CodeAreaComponent from "../../../../components/codeAreaComponent"; export default function ModalField({ data, title, required, id, name, type }) { const { save } = useContext(TabsContext); @@ -16,9 +18,10 @@ export default function ModalField({ data, title, required, id, name, type }) { ); return ( -
+
+ {title} {type === "str" && !data.node.template[name].options ? ( -
+
{data.node.template[name].list ? ( ) : data.node.template[name].multiline ? ( - // { - // data.node.template[name].value = t; - // save(); - // }} - // /> -
text area component
+ { + data.node.template[name].value = t; + save(); + }} + /> ) : ( ) : type === "bool" ? ( -
+
{" "}
) : type === "float" ? ( - { - data.node.template[name].value = t; - save(); - }} - /> +
+ { + data.node.template[name].value = t; + save(); + }} + /> +
) : type === "str" && data.node.template[name].options ? ( - (data.node.template[name].value = newValue)} - value={data.node.template[name].value ?? "Choose an option"} - > +
+ (data.node.template[name].value = newValue)} + value={data.node.template[name].value ?? "Choose an option"} + > +
) : type === "int" ? ( - { - data.node.template[name].value = t; - save(); - }} - /> +
+ { + data.node.template[name].value = t; + save(); + }} + /> +
) : type === "file" ? ( +
+
) : type === "prompt" ? ( -
code
+
+ { + data.node.template[name].value = t; + save(); + }} + /> +
) : type === "code" ? ( -
code
+
+ { + data.node.template[name].value = t; + save(); + }} + /> +
) : ( -
{name}
+
{type}
)}
); From 4206a2183ca0e196e27b05fb2801523e912f7a2f Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Wed, 12 Apr 2023 20:22:57 -0300 Subject: [PATCH 13/31] added LIFO history to popUp context --- src/frontend/src/contexts/popUpContext.tsx | 32 +++++++++++----------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/frontend/src/contexts/popUpContext.tsx b/src/frontend/src/contexts/popUpContext.tsx index 1d4d28bc7..efa263146 100644 --- a/src/frontend/src/contexts/popUpContext.tsx +++ b/src/frontend/src/contexts/popUpContext.tsx @@ -1,33 +1,33 @@ import { createContext } from "react"; import React, { useState } from "react"; -//context to set JSX element on the DOM +// context to set JSX element on the DOM export const PopUpContext = createContext({ openPopUp: (popUpElement: JSX.Element) => {}, - closePopUp: () => {}, + closePopUp: () => {}, }); interface PopUpProviderProps { - children: React.ReactNode; + children: React.ReactNode; } const PopUpProvider = ({ children }: PopUpProviderProps) => { - const [popUpElement, setPopUpElement] = useState(null); + const [popUpElements, setPopUpElements] = useState([]); - const openPopUp = (element: JSX.Element) => { - setPopUpElement(element); - }; + const openPopUp = (element: JSX.Element) => { + setPopUpElements(prevPopUps => [element, ...prevPopUps]); + }; - const closePopUp = () => { - setPopUpElement(null); - }; + const closePopUp = () => { + setPopUpElements(prevPopUps => prevPopUps.slice(1)); + }; - return ( - - {children} - {popUpElement} - - ); + return ( + + {children} + {popUpElements[0]} + + ); }; export default PopUpProvider; From e97a1289888296afa2d675fa66271e1981a9c9b2 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Apr 2023 00:36:05 -0300 Subject: [PATCH 14/31] align inputs --- .../NodeModal/components/ModalField/index.tsx | 87 ++++++++++--------- src/frontend/src/modals/NodeModal/index.tsx | 59 ++++++------- 2 files changed, 76 insertions(+), 70 deletions(-) diff --git a/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx b/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx index d0d7901e1..d0d907551 100644 --- a/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx +++ b/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx @@ -10,18 +10,27 @@ import IntComponent from "../../../../components/intComponent"; import InputFileComponent from "../../../../components/inputFileComponent"; import PromptAreaComponent from "../../../../components/promptComponent"; import CodeAreaComponent from "../../../../components/codeAreaComponent"; +import { classNames } from "../../../../utils"; export default function ModalField({ data, title, required, id, name, type }) { const { save } = useContext(TabsContext); const [enabled, setEnabled] = useState( data.node.template[name]?.value ?? false ); + const display = + type === "str" || + type === "int" || + type === "prompt" || + type === "bool" || + type === "float" || + type === "file" || + type === "code"; return ( -
- {title} +
+ {display && {title}} {type === "str" && !data.node.template[name].options ? ( -
+
{data.node.template[name].list ? (
) : type === "float" ? ( -
+
) : type === "str" && data.node.template[name].options ? ( -
+
(data.node.template[name].value = newValue)} @@ -90,7 +99,7 @@ export default function ModalField({ data, title, required, id, name, type }) { >
) : type === "int" ? ( -
+
) : type === "file" ? ( -
- { - data.node.template[name].value = t; - }} - fileTypes={data.node.template[name].fileTypes} - suffixes={data.node.template[name].suffixes} - onFileChange={(t: string) => { - data.node.template[name].content = t; - save(); - }} - > +
+ { + data.node.template[name].value = t; + }} + fileTypes={data.node.template[name].fileTypes} + suffixes={data.node.template[name].suffixes} + onFileChange={(t: string) => { + data.node.template[name].content = t; + save(); + }} + >
) : type === "prompt" ? ( -
- { - data.node.template[name].value = t; - save(); - }} - /> +
+ { + data.node.template[name].value = t; + save(); + }} + />
) : type === "code" ? ( -
- { - data.node.template[name].value = t; - save(); - }} - /> +
+ { + data.node.template[name].value = t; + save(); + }} + />
) : ( -
{type}
+
)}
); diff --git a/src/frontend/src/modals/NodeModal/index.tsx b/src/frontend/src/modals/NodeModal/index.tsx index e346914d8..07f316215 100644 --- a/src/frontend/src/modals/NodeModal/index.tsx +++ b/src/frontend/src/modals/NodeModal/index.tsx @@ -85,39 +85,36 @@ export default function NodeModal({ data }: { data: NodeDataType }) {
-
-
- {/* str, code, bool, float, int,prompt, file, */} +
+
{Object.keys(data.node.template) .filter((t) => t.charAt(0) !== "_") - .map((t: string, idx) => ( -
- { - - } -
- ))} + .map((t: string, idx) => { + return ( + + ); + })}
From ba271ff85fa8e080171a314dbe2c28d66ba55396 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Apr 2023 00:47:55 -0300 Subject: [PATCH 15/31] advanced icon --- .../src/CustomNodes/GenericNode/index.tsx | 53 ++++++++++--------- src/frontend/src/modals/NodeModal/index.tsx | 2 +- 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/src/frontend/src/CustomNodes/GenericNode/index.tsx b/src/frontend/src/CustomNodes/GenericNode/index.tsx index 5ed25268e..cce14fd49 100644 --- a/src/frontend/src/CustomNodes/GenericNode/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/index.tsx @@ -1,4 +1,4 @@ -import { TrashIcon } from "@heroicons/react/24/outline"; +import { Cog6ToothIcon, TrashIcon } from "@heroicons/react/24/outline"; import { classNames, nodeColors, @@ -23,7 +23,7 @@ export default function GenericNode({ const { setErrorData } = useContext(alertContext); const showError = useRef(true); const { types, deleteNode } = useContext(typesContext); - const {openPopUp} = useContext(PopUpContext) + const { openPopUp } = useContext(PopUpContext); const Icon = nodeIcons[types[data.type]]; if (!Icon) { if (showError.current) { @@ -54,17 +54,32 @@ export default function GenericNode({ />
{data.type}
- +
+ + +
-
+
{data.node.description}
@@ -73,7 +88,7 @@ export default function GenericNode({ .filter((t) => t.charAt(0) !== "_") .map((t: string, idx) => (
- {idx === 0 ? ( + {/* {idx === 0 ? (
) : ( <> - )} + )} */} {data.node.template[t].show ? ( {" "} -
-
+ {/*
Output -
+
*/} - Finish editing + Done
From 040695dfa627d95ee36de5ecb35e7ab437f74846 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Apr 2023 00:52:35 -0300 Subject: [PATCH 16/31] open pop up on input click --- .../components/codeAreaComponent/index.tsx | 17 +++- .../components/inputFileComponent/index.tsx | 1 + .../src/components/promptComponent/index.tsx | 83 +++++++++++++------ .../components/textAreaComponent/index.tsx | 2 +- src/frontend/src/modals/NodeModal/index.tsx | 59 ++++++------- 5 files changed, 106 insertions(+), 56 deletions(-) diff --git a/src/frontend/src/components/codeAreaComponent/index.tsx b/src/frontend/src/components/codeAreaComponent/index.tsx index 756296970..2086b467c 100644 --- a/src/frontend/src/components/codeAreaComponent/index.tsx +++ b/src/frontend/src/components/codeAreaComponent/index.tsx @@ -19,9 +19,24 @@ export default function CodeAreaComponent({ } }, [disabled, onChange]); return ( -
+
{ + openPopUp( + { + setMyValue(t); + onChange(t); + }} + /> + ); + }} className={ "truncate block w-full text-gray-500 px-3 py-2 rounded-md border border-gray-300 dark:border-gray-700 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm" + (disabled ? " bg-gray-200" : "") diff --git a/src/frontend/src/components/inputFileComponent/index.tsx b/src/frontend/src/components/inputFileComponent/index.tsx index 36d13e918..cb915bce5 100644 --- a/src/frontend/src/components/inputFileComponent/index.tsx +++ b/src/frontend/src/components/inputFileComponent/index.tsx @@ -69,6 +69,7 @@ export default function InputFileComponent({ >
{ - if (disabled) { - setMyValue(""); - onChange(""); - } - }, [disabled, onChange]); - return ( -
-
- - {myValue !== "" ? myValue : 'Text empty'} - - -
-
- ); +export default function PromptAreaComponent({ + value, + onChange, + disabled, +}: TextAreaComponentType) { + const [myValue, setMyValue] = useState(value); + const { openPopUp } = useContext(PopUpContext); + useEffect(() => { + if (disabled) { + setMyValue(""); + onChange(""); + } + }, [disabled, onChange]); + return ( +
+
+ { + openPopUp( + { + setMyValue(t); + onChange(t); + }} + /> + ); + }} + className={ + "truncate block w-full text-gray-500 px-3 py-2 rounded-md border border-gray-300 dark:border-gray-700 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm" + + (disabled ? " bg-gray-200" : "") + } + > + {myValue !== "" ? myValue : "Text empty"} + + +
+
+ ); } diff --git a/src/frontend/src/components/textAreaComponent/index.tsx b/src/frontend/src/components/textAreaComponent/index.tsx index 9efdfacbc..153de4ffa 100644 --- a/src/frontend/src/components/textAreaComponent/index.tsx +++ b/src/frontend/src/components/textAreaComponent/index.tsx @@ -16,7 +16,7 @@ export default function TextAreaComponent({ value, onChange, disabled }:TextArea return (
- {openPopUp( {setMyValue(t); onChange(t);}}/>)}} className={ "truncate block w-full text-gray-500 px-3 py-2 rounded-md border border-gray-300 dark:border-gray-700 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm" + (disabled ? " bg-gray-200" : "") diff --git a/src/frontend/src/modals/NodeModal/index.tsx b/src/frontend/src/modals/NodeModal/index.tsx index aad1a32fd..16c615524 100644 --- a/src/frontend/src/modals/NodeModal/index.tsx +++ b/src/frontend/src/modals/NodeModal/index.tsx @@ -87,34 +87,37 @@ export default function NodeModal({ data }: { data: NodeDataType }) {
- {Object.keys(data.node.template) - .filter((t) => t.charAt(0) !== "_") - .map((t: string, idx) => { - return ( - - ); - })} + { + //&& data.node.template[t].advanced + Object.keys(data.node.template) + .filter((t) => t.charAt(0) !== "_") + .map((t: string, idx) => { + return ( + + ); + }) + }
From a78a71c997c2d24b0113f81088804c93f270975d Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Apr 2023 01:10:13 -0300 Subject: [PATCH 17/31] required in advanced icon and items, need new variable from backend --- .../src/CustomNodes/GenericNode/index.tsx | 11 +++++++++++ .../NodeModal/components/ModalField/index.tsx | 15 +++++++++++++-- .../src/modals/NodeModal/components/index.tsx | 1 - 3 files changed, 24 insertions(+), 3 deletions(-) delete mode 100644 src/frontend/src/modals/NodeModal/components/index.tsx diff --git a/src/frontend/src/CustomNodes/GenericNode/index.tsx b/src/frontend/src/CustomNodes/GenericNode/index.tsx index cce14fd49..ab3b8f9f1 100644 --- a/src/frontend/src/CustomNodes/GenericNode/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/index.tsx @@ -12,6 +12,7 @@ import { NodeDataType } from "../../types/flow"; import { alertContext } from "../../contexts/alertContext"; import { PopUpContext } from "../../contexts/popUpContext"; import NodeModal from "../../modals/NodeModal"; +import { relative } from "path"; export default function GenericNode({ data, @@ -56,11 +57,21 @@ export default function GenericNode({