Files
dndbeyond_src/ddb_main/hooks/useAbilities.ts
T

23 lines
683 B
TypeScript

import { useContext, useEffect, useState } from "react";
import { AbilityManager } from "@dndbeyond/character-rules-engine/es";
import { AttributesManagerContext } from "~/tools/js/Shared/managers/AttributesManagerContext";
export function useAbilities() {
const { attributesManager } = useContext(AttributesManagerContext);
const [abilities, setAbilities] = useState<Array<AbilityManager>>([]);
useEffect(() => {
async function onUpdate() {
const abilities = await attributesManager.getAbilities();
setAbilities(abilities);
}
return AbilityManager.subscribeToUpdates({ onUpdate });
}, [attributesManager, setAbilities]);
return abilities;
}