diff --git a/space_flow/src/contexts/index.tsx b/space_flow/src/contexts/index.tsx
index c6c94d6dc..c4a22cad6 100644
--- a/space_flow/src/contexts/index.tsx
+++ b/space_flow/src/contexts/index.tsx
@@ -1,4 +1,3 @@
-import { CookiesProvider } from "react-cookie";
import { AlertProvider } from "./alertContext";
import { LocationProvider } from "./locationContext";
import PopUpProvider from "./popUpContext";
@@ -8,17 +7,15 @@ import { TypesProvider } from "./typesContext";
export default function ContextWrapper({ children }) {
return (
<>
-
-
-
-
-
- {children}
-
-
-
-
-
+
+
+
+
+ {children}
+
+
+
+
>
);
}
diff --git a/space_flow/src/pages/FlowPage/components/extraSidebarComponent/index.tsx b/space_flow/src/pages/FlowPage/components/extraSidebarComponent/index.tsx
index 482695d07..67947c74a 100644
--- a/space_flow/src/pages/FlowPage/components/extraSidebarComponent/index.tsx
+++ b/space_flow/src/pages/FlowPage/components/extraSidebarComponent/index.tsx
@@ -12,34 +12,37 @@ import { typesContext } from "../../../../contexts/typesContext";
export default function ExtraSidebar() {
const [data, setData] = useState({});
- const { setTypes } = useContext(typesContext);
+ const { setTypes, types } = useContext(typesContext);
+
+ async function getTypes(){
+ let d = await getAll();
+ setData(d.data);
+ setTypes(
+ Object.keys(d.data).reduce(
+ (acc, curr) => {
+ Object.keys(d.data[curr]).forEach((c) => {
+ acc[c] = curr;
+ d.data[curr][c].base_classes?.forEach((b) => {
+ acc[b] = curr;
+ });
+ });
+ return acc;
+ },
+ {
+ str: "advanced",
+ bool: "advanced",
+ chatOutput: "chat",
+ chatInput: "chat",
+ }
+ )
+ );
+ }
useEffect(() => {
- getAll().then((d) => {
- setData(d.data);
- setTypes(
- Object.keys(d.data).reduce(
- (acc, curr) => {
- Object.keys(d.data[curr]).forEach((c) => {
- acc[c] = curr;
- d.data[curr][c].base_classes?.forEach((b) => {
- acc[b] = curr;
- });
- });
- // console.log(acc);
- return acc;
- },
- {
- str: "advanced",
- bool: "advanced",
- chatOutput: "chat",
- chatInput: "chat",
- }
- )
- );
- });
+ getTypes();
}, []);
+
useEffect(() => {
if(data){
setTypes(
@@ -51,7 +54,6 @@ export default function ExtraSidebar() {
acc[b] = curr;
});
});
- // console.log(acc);
return acc;
},
{
diff --git a/space_flow/src/pages/FlowPage/index.tsx b/space_flow/src/pages/FlowPage/index.tsx
index 5b5e23f56..5064afb00 100644
--- a/space_flow/src/pages/FlowPage/index.tsx
+++ b/space_flow/src/pages/FlowPage/index.tsx
@@ -31,10 +31,9 @@ const nodeTypes = {
var _ = require("lodash");
-export default function FlowPage({flow}) {
-
- const {updateFlow} = useContext(TabsContext)
- const {reactFlowInstance, setReactFlowInstance} = useContext(typesContext);
+export default function FlowPage({ flow }) {
+ const { updateFlow } = useContext(TabsContext);
+ const { types, reactFlowInstance, setReactFlowInstance } = useContext(typesContext);
const reactFlowWrapper = useRef(null);
const getId = () => `dndnode_${_.uniqueId()}`;
@@ -42,24 +41,29 @@ export default function FlowPage({flow}) {
const { setExtraComponent, setExtraNavigation } = useContext(locationContext);
const { setErrorData } = useContext(alertContext);
- const [nodes, setNodes, onNodesChange] = useNodesState(flow.data?.nodes ?? []);
- const [edges, setEdges, onEdgesChange] = useEdgesState(flow.data?.edges ?? []);
+ const [nodes, setNodes, onNodesChange] = useNodesState(
+ flow.data?.nodes ?? []
+ );
+ const [edges, setEdges, onEdgesChange] = useEdgesState(
+ flow.data?.edges ?? []
+ );
- useEffect(()=>{
- if(reactFlowInstance && flow){
+ useEffect(() => {
+ if (reactFlowInstance && flow) {
flow.data = reactFlowInstance.toObject();
updateFlow(flow);
}
- },[nodes,edges])
+ }, [nodes, edges]);
- useEffect(()=>{
- console.log(flow);
- setNodes(flow?.data?.nodes ?? [])
- setEdges(flow?.data?.edges ?? [])
- if(reactFlowInstance){
- reactFlowInstance.setViewport(flow?.data?.viewport ?? {x: 1, y: 0, zoom: 1});
+ useEffect(() => {
+ setNodes(flow?.data?.nodes ?? []);
+ setEdges(flow?.data?.edges ?? []);
+ if (reactFlowInstance) {
+ reactFlowInstance.setViewport(
+ flow?.data?.viewport ?? { x: 1, y: 0, zoom: 1 }
+ );
}
- },[flow, reactFlowInstance, setEdges, setNodes])
+ }, [flow, reactFlowInstance, setEdges, setNodes]);
useEffect(() => {
setExtraComponent(
);
@@ -111,19 +115,19 @@ export default function FlowPage({flow}) {
y: event.clientY - reactflowBounds.top,
});
let newId = getId();
-
+
const newNode = {
id: newId,
type:
- (data.type === "str"
+ data.type === "str"
? "inputNode"
- : (data.type === "chatInput"
+ : data.type === "chatInput"
? "chatInputNode"
- : (data.type === "chatOutput"
+ : data.type === "chatOutput"
? "chatOutputNode"
- : (data.type === "bool"
+ : data.type === "bool"
? "booleanNode"
- : "genericNode")))),
+ : "genericNode",
position,
data: {
...data,
@@ -149,24 +153,32 @@ export default function FlowPage({flow}) {
return (
- updateFlow({...flow,data:reactFlowInstance.toObject()})}
- edges={edges}
- onNodesChange={onNodesChange}
- onEdgesChange={onEdgesChangeMod}
- onConnect={onConnect}
- onLoad={setReactFlowInstance}
- onInit={setReactFlowInstance}
- nodeTypes={nodeTypes}
- connectionLineComponent={connection}
- onDragOver={onDragOver}
- onDrop={onDrop}
- >
-
-
-
-
+ {Object.keys(types).length > 4 ? (
+ <>
+
+ updateFlow({ ...flow, data: reactFlowInstance.toObject() })
+ }
+ edges={edges}
+ onNodesChange={onNodesChange}
+ onEdgesChange={onEdgesChangeMod}
+ onConnect={onConnect}
+ onLoad={setReactFlowInstance}
+ onInit={setReactFlowInstance}
+ nodeTypes={nodeTypes}
+ connectionLineComponent={connection}
+ onDragOver={onDragOver}
+ onDrop={onDrop}
+ >
+
+
+
+
+ >
+ ) : (
+ <>>
+ )}
);
}