Grabbed dndbeyond's source code

```
~/go/bin/sourcemapper -output ddb -jsurl https://media.dndbeyond.com/character-app/static/js/main.90aa78c5.js
```
This commit is contained in:
2025-05-28 11:50:03 -07:00
commit 8df9031d27
3592 changed files with 319051 additions and 0 deletions
@@ -0,0 +1,63 @@
import React, { useContext, useEffect, useState } from "react";
import { useSelector } from "react-redux";
import {
rulesEngineSelectors,
FeatureManager,
} from "@dndbeyond/character-rules-engine/es";
import { Header } from "~/subApps/sheet/components/Sidebar/components/Header";
import { PaneInitFailureContent } from "~/subApps/sheet/components/Sidebar/components/PaneInitFailureContent";
import { PaneIdentifiersBlessing } from "~/subApps/sheet/components/Sidebar/types";
import { Snippet } from "~/tools/js/smartComponents";
import { CharacterFeaturesManagerContext } from "../../../managers/CharacterFeaturesManagerContext";
interface Props {
identifiers: PaneIdentifiersBlessing | null;
}
const BlessingPane: React.FC<Props> = ({ identifiers }) => {
const { characterFeaturesManager } = useContext(
CharacterFeaturesManagerContext
);
const snippetData = useSelector(rulesEngineSelectors.getSnippetData);
// const ruleData = useSelector(rulesEngineSelectors.getRuleData);
// const abilityLookup = useSelector(rulesEngineSelectors.getAbilityLookup);
// const dataOriginRefData = useSelector(rulesEngineSelectors.getDataOriginRefData);
// const isReadonly = useSelector(appEnvSelectors.getIsReadonly);
const proficiencyBonus = useSelector(
rulesEngineSelectors.getProficiencyBonus
);
const theme = useSelector(rulesEngineSelectors.getCharacterTheme);
const [blessing, setBlessing] = useState<FeatureManager | null>(undefined!);
useEffect(() => {
const id = identifiers?.id ?? null;
if (id) {
const blessing = characterFeaturesManager.getBlessing(id);
setBlessing(blessing);
}
}, [identifiers, characterFeaturesManager]);
if (blessing === null) {
return <PaneInitFailureContent />;
}
return blessing ? (
<div className="ct-blessing-pane" key={blessing.getId()}>
<Header>{blessing.getName()}</Header>
<Snippet
snippetData={snippetData}
proficiencyBonus={proficiencyBonus}
theme={theme}
>
{blessing.getDescription()}
</Snippet>
</div>
) : null;
};
export default BlessingPane;
@@ -0,0 +1,4 @@
import BlessingPane from "./BlessingPane";
export default BlessingPane;
export { BlessingPane };