import React, { createContext, useContext, useMemo } from "react"; import { TreeApi } from "./interfaces/tree-api"; import { RootState } from "./state/root-reducer"; import { IdObj } from "./types/utils"; export const TreeApiContext = createContext | null>(null); export function useTreeApi() { const value = useContext | null>( TreeApiContext as unknown as React.Context | null> ); if (value === null) throw new Error("No Tree Api Provided"); return value; } export const NodesContext = createContext(null); export function useNodesContext() { const value = useContext(NodesContext); if (value === null) throw new Error("Provide a NodesContext"); return value; } export const DndContext = createContext(null); export function useDndContext() { const value = useContext(DndContext); if (value === null) throw new Error("Provide a DnDContext"); return value; } export const DataUpdatesContext = createContext(0); export function useDataUpdates() { useContext(DataUpdatesContext); }