@steambrew/client
Version:
A support library for creating plugins with Millennium.
39 lines (38 loc) • 1.93 kB
JavaScript
import { findSP } from '../utils';
import { findModule, findModuleDetailsByExport, findModuleExport } from '../webpack';
const showModalRaw = findModuleExport((e) => typeof e === 'function' && e.toString().includes('props.bDisableBackgroundDismiss') && !e?.prototype?.Cancel);
/** @component Popup Modals */
export const showModal = (modal, parent, props = {
strTitle: 'Millennium Dialog',
bHideMainWindowForPopouts: false,
}) => {
return showModalRaw(modal, parent || findSP() || window, props.strTitle, props, undefined, {
bHideActions: props.bHideActionIcons,
});
};
/** @component React Components */
export const ConfirmModal = findModuleExport((e) => e?.toString()?.includes('bUpdateDisabled') && e?.toString()?.includes('closeModal') && e?.toString()?.includes('onGamepadCancel'));
/** @component React Components */
export const ModalRoot =
// new
findModuleExport((e) => typeof e === 'function' && e.toString().includes('Either closeModal or onCancel should be passed to GenericDialog. Classes: ')) ||
// old
Object.values(findModule((m) => {
if (typeof m !== 'object')
return false;
for (let prop in m) {
if (m[prop]?.m_mapModalManager && Object.values(m)?.find((x) => x?.type)) {
return true;
}
}
return false;
}) || {})?.find((x) => x?.type?.toString?.()?.includes('((function(){'));
const [ModalModule, _ModalPosition] = findModuleDetailsByExport((e) => e?.toString().includes('.ModalPosition'), 5);
const ModalModuleProps = ModalModule ? Object.values(ModalModule) : [];
/** @component React Components */
export const SimpleModal = ModalModuleProps.find((prop) => {
const string = prop?.toString();
return string?.includes('.ShowPortalModal()') && string?.includes('.OnElementReadyCallbacks.Register(');
});
/** @component React Components */
export const ModalPosition = _ModalPosition;