refactor typesContext
This commit is contained in:
parent
60eccb274d
commit
019af743b7
1 changed files with 37 additions and 30 deletions
|
|
@ -1,37 +1,44 @@
|
||||||
import { ReactEventHandler, createContext, useState } from "react";
|
import { createContext, useState } from "react";
|
||||||
import { ReactFlowInstance } from "reactflow";
|
import { ReactFlowInstance } from "reactflow";
|
||||||
|
|
||||||
type typesContextType=
|
//context to share types adn functions from nodes to flow
|
||||||
{
|
type typesContextType = {
|
||||||
reactFlowInstance: ReactFlowInstance;
|
reactFlowInstance: ReactFlowInstance;
|
||||||
setReactFlowInstance: any;
|
setReactFlowInstance: any;
|
||||||
deleteNode:(idx:number)=>void;
|
deleteNode: (idx: number) => void;
|
||||||
types: {};
|
types: {};
|
||||||
setTypes:(newState:{})=>void;
|
setTypes: (newState: {}) => void;
|
||||||
|
};
|
||||||
|
|
||||||
}
|
const initialValue = {
|
||||||
|
reactFlowInstance: null,
|
||||||
const initialValue= {
|
setReactFlowInstance: () => {},
|
||||||
reactFlowInstance: null,
|
deleteNode: () => {},
|
||||||
setReactFlowInstance: ()=>{},
|
types: {},
|
||||||
deleteNode: ()=>{},
|
setTypes: () => {},
|
||||||
types: {},
|
};
|
||||||
setTypes:()=>{},
|
|
||||||
}
|
|
||||||
|
|
||||||
export const typesContext = createContext<typesContextType>(initialValue);
|
export const typesContext = createContext<typesContextType>(initialValue);
|
||||||
|
|
||||||
export function TypesProvider({children}){
|
export function TypesProvider({ children }) {
|
||||||
const [types, setTypes] = useState({});
|
const [types, setTypes] = useState({});
|
||||||
const [reactFlowInstance, setReactFlowInstance] = useState(null);
|
const [reactFlowInstance, setReactFlowInstance] = useState(null);
|
||||||
function deleteNode(idx){
|
function deleteNode(idx) {
|
||||||
reactFlowInstance.setNodes(
|
reactFlowInstance.setNodes(
|
||||||
reactFlowInstance.getNodes().filter((n) => n.id !== idx)
|
reactFlowInstance.getNodes().filter((n) => n.id !== idx)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<typesContext.Provider value={{ types, setTypes, reactFlowInstance, setReactFlowInstance, deleteNode}}>
|
<typesContext.Provider
|
||||||
{children}
|
value={{
|
||||||
</typesContext.Provider>
|
types,
|
||||||
)
|
setTypes,
|
||||||
|
reactFlowInstance,
|
||||||
|
setReactFlowInstance,
|
||||||
|
deleteNode,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{children}
|
||||||
|
</typesContext.Provider>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue