refactor typesContext

This commit is contained in:
anovazzi1 2023-02-27 14:25:39 -03:00
commit 019af743b7

View file

@ -1,37 +1,44 @@
import { ReactEventHandler, createContext, useState } from "react";
import { createContext, useState } from "react";
import { ReactFlowInstance } from "reactflow";
type typesContextType=
{
reactFlowInstance: ReactFlowInstance;
setReactFlowInstance: any;
deleteNode:(idx:number)=>void;
types: {};
setTypes:(newState:{})=>void;
//context to share types adn functions from nodes to flow
type typesContextType = {
reactFlowInstance: ReactFlowInstance;
setReactFlowInstance: any;
deleteNode: (idx: number) => void;
types: {};
setTypes: (newState: {}) => void;
};
}
const initialValue= {
reactFlowInstance: null,
setReactFlowInstance: ()=>{},
deleteNode: ()=>{},
types: {},
setTypes:()=>{},
}
const initialValue = {
reactFlowInstance: null,
setReactFlowInstance: () => {},
deleteNode: () => {},
types: {},
setTypes: () => {},
};
export const typesContext = createContext<typesContextType>(initialValue);
export function TypesProvider({children}){
const [types, setTypes] = useState({});
const [reactFlowInstance, setReactFlowInstance] = useState(null);
function deleteNode(idx){
reactFlowInstance.setNodes(
reactFlowInstance.getNodes().filter((n) => n.id !== idx)
);
}
return (
<typesContext.Provider value={{ types, setTypes, reactFlowInstance, setReactFlowInstance, deleteNode}}>
{children}
</typesContext.Provider>
)
export function TypesProvider({ children }) {
const [types, setTypes] = useState({});
const [reactFlowInstance, setReactFlowInstance] = useState(null);
function deleteNode(idx) {
reactFlowInstance.setNodes(
reactFlowInstance.getNodes().filter((n) => n.id !== idx)
);
}
return (
<typesContext.Provider
value={{
types,
setTypes,
reactFlowInstance,
setReactFlowInstance,
deleteNode,
}}
>
{children}
</typesContext.Provider>
);
}