Files
dndbeyond_src/ddb_main/hooks/useExtras.ts
T

24 lines
736 B
TypeScript

import { useContext, useEffect, useState } from "react";
import { ExtraManager } from "@dndbeyond/character-rules-engine/es";
import { ExtrasManagerContext } from "~/tools/js/Shared/managers/ExtrasManagerContext";
//TODO: need to look at subscribeToUpdates for how many times its being called on state updates
export function useExtras() {
const { extrasManager } = useContext(ExtrasManagerContext);
const [extras, setExtras] = useState<Array<ExtraManager>>(
extrasManager.getCharacterExtraManagers()
);
useEffect(() => {
const onUpdate = () => {
setExtras(extrasManager.getCharacterExtraManagers());
};
return ExtraManager.subscribeToUpdates({ onUpdate });
}, [extrasManager]);
return extras;
}