Files
dndbeyond_src/ddb_main/tools/js/Shared/managers/InventoryManagerContext.tsx
T

32 lines
814 B
TypeScript

import React, { useContext, useMemo } from "react";
import {
InventoryManager,
getInventoryManager,
} from "@dndbeyond/character-rules-engine/es";
interface InventoryManagerContextValue {
inventoryManager: InventoryManager;
}
const initContext: InventoryManagerContextValue = {
inventoryManager: null!,
};
export const InventoryManagerContext =
React.createContext<InventoryManagerContextValue>(initContext);
export function InventoryManagerProvider({ children }) {
const inventoryManager: InventoryManager = useMemo(
() => getInventoryManager(),
[]
);
return (
<InventoryManagerContext.Provider value={{ inventoryManager }}>
{children}
</InventoryManagerContext.Provider>
);
}
export const useInventoryManager = () => {
return useContext(InventoryManagerContext);
};