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,61 @@
import clsx from "clsx";
import { useEffect } from "react";
import { useDispatch, useSelector } from "react-redux";
import { Dice } from "@dndbeyond/dice";
import { GameLog } from "@dndbeyond/game-log-components";
import { appEnvActions } from "~/tools/js/Shared/actions/appEnv";
import { appEnvSelectors } from "~/tools/js/Shared/selectors";
import styles from "./styles.module.css";
export const GameLogPane = () => {
const dispatch = useDispatch();
const gameLog = useSelector(appEnvSelectors.getGameLog);
const characterId = useSelector(appEnvSelectors.getCharacterId);
useEffect(
() => {
const updateOpenState = (isOpen: boolean) => {
const lastMessageTime = new Date().getTime();
dispatch(
appEnvActions.dataSet({
gameLog: {
...gameLog,
isOpen: isOpen,
lastMessageTime: lastMessageTime,
},
})
);
try {
localStorage.setItem(
`gameLog-lastMessageTime-${characterId}`,
lastMessageTime.toString()
);
} catch (e) {}
// turn the dice notifications off if the panel is open
Dice.setDiceNotificationEnabled(!isOpen);
};
updateOpenState(true);
return () => {
updateOpenState(false);
};
},
// eslint-disable-next-line react-hooks/exhaustive-deps
[]
);
return (
<div className={clsx(styles.gameLogPane)} data-testid="gamelog-pane">
{characterId && <GameLog />}
</div>
);
};
export default GameLogPane;