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,59 @@
import { createContext, FC, useContext, useState } from "react";
import { ConfirmModal, ConfirmModalProps } from "~/components/ConfirmModal";
export interface ModalData {
content: React.ReactNode;
props: Omit<ConfirmModalProps, "open">;
}
export interface ModalManagerContextType {
createModal: (modalData: ModalData) => void;
}
export const ModalManagerContext = createContext<ModalManagerContextType>(
null!
);
export const ModalManagerProvider: FC = ({ children }) => {
const [modalData, setModalData] = useState<ModalData | null>(null);
const createModal = (modalData: ModalData) => {
setModalData(modalData);
};
const removeModal = () => {
setModalData(null);
};
const handleClose = () => {
removeModal();
if (modalData) {
modalData.props.onClose();
}
};
const handleConfirm = () => {
removeModal();
if (modalData) {
modalData.props.onConfirm();
}
};
return (
<ModalManagerContext.Provider value={{ createModal }}>
{children}
<ConfirmModal
{...modalData?.props}
onConfirm={handleConfirm}
onClose={handleClose}
open={!!modalData}
>
{modalData?.content}
</ConfirmModal>
</ModalManagerContext.Provider>
);
};
export const useModalManager = () => {
return useContext(ModalManagerContext);
};