dndbeyond_src/ddb_main/hooks/useAbilities.ts
2025-05-28 15:36:51 -07:00

26 lines
706 B
TypeScript

import { useContext, useEffect, useState } from "react";
import {
AbilityManager,
FeaturesManager,
} 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 FeaturesManager.subscribeToUpdates({ onUpdate });
}, [attributesManager, setAbilities]);
return abilities;
}