diff --git a/src/frontend/src/contexts/typesContext.tsx b/src/frontend/src/contexts/typesContext.tsx index 2ab1eb057..000bfa472 100644 --- a/src/frontend/src/contexts/typesContext.tsx +++ b/src/frontend/src/contexts/typesContext.tsx @@ -7,83 +7,83 @@ import { APIKindType } from "../types/api"; //context to share types adn functions from nodes to flow const initialValue: typesContextType = { - reactFlowInstance: null, - setReactFlowInstance: () => {}, - deleteNode: () => {}, - types: {}, - setTypes: () => {}, - templates: {}, - setTemplates: () => {}, - data: {}, - setData: () => {}, + reactFlowInstance: null, + setReactFlowInstance: () => {}, + deleteNode: () => {}, + types: {}, + setTypes: () => {}, + templates: {}, + setTemplates: () => {}, + data: {}, + setData: () => {}, }; export const typesContext = createContext(initialValue); export function TypesProvider({ children }: { children: ReactNode }) { - const [types, setTypes] = useState({}); - const [reactFlowInstance, setReactFlowInstance] = useState(null); - const [templates, setTemplates] = useState({}); - const [data, setData] = useState({}); + const [types, setTypes] = useState({}); + const [reactFlowInstance, setReactFlowInstance] = useState(null); + const [templates, setTemplates] = useState({}); + const [data, setData] = useState({}); - useEffect(() => { - async function getTypes(): Promise { - // Make an asynchronous API call to retrieve all data. - let result = await getAll(); + useEffect(() => { + async function getTypes(): Promise { + // Make an asynchronous API call to retrieve all data. + let result = await getAll(); - // Update the state of the component with the retrieved data. - setData(result.data); - setTemplates( - Object.keys(result.data).reduce((acc, curr) => { - Object.keys(result.data[curr]).forEach((c: keyof APIKindType) => { - acc[c] = result.data[curr][c]; - }); - return acc; - }, {}) - ); - // Set the types by reducing over the keys of the result data and updating the accumulator. - setTypes( - Object.keys(result.data).reduce((acc, curr) => { - Object.keys(result.data[curr]).forEach((c: keyof APIKindType) => { - acc[c] = curr; - // Add the base classes to the accumulator as well. - result.data[curr][c].base_classes?.forEach((b) => { - acc[b] = curr; - }); - }); - return acc; - }, {}) - ); - } - // Call the getTypes function. - getTypes(); - }, [setTypes]); + // Update the state of the component with the retrieved data. + setData(result.data); + setTemplates( + Object.keys(result.data).reduce((acc, curr) => { + Object.keys(result.data[curr]).forEach((c: keyof APIKindType) => { + acc[c] = result.data[curr][c]; + }); + return acc; + }, {}) + ); + // Set the types by reducing over the keys of the result data and updating the accumulator. + setTypes( + Object.keys(result.data).reduce((acc, curr) => { + Object.keys(result.data[curr]).forEach((c: keyof APIKindType) => { + acc[c] = curr; + // Add the base classes to the accumulator as well. + result.data[curr][c].base_classes?.forEach((b) => { + acc[b] = curr; + }); + }); + return acc; + }, {}) + ); + } + // Call the getTypes function. + getTypes(); + }, [setTypes]); - function deleteNode(idx: string) { - reactFlowInstance.setNodes( - reactFlowInstance.getNodes().filter((n: Node) => n.id !== idx) - ); - reactFlowInstance.setEdges( - reactFlowInstance - .getEdges() - .filter((ns) => ns.source !== idx && ns.target !== idx) - ); - } - return ( - - {children} - - ); + function deleteNode(idx: string) { + reactFlowInstance.setNodes( + reactFlowInstance.getNodes().filter((n: Node) => n.id !== idx) + ); + reactFlowInstance.setEdges( + reactFlowInstance + .getEdges() + .filter((ns) => ns.source !== idx && ns.target !== idx) + ); + } + return ( + + {children} + + ); }