react-material-overlay
Version:
A fully featured Material UI implementation of overlays like modals, alert dialogs, lightboxes, and bottom sheets featuring easy stack management and browser history integration
17 lines (12 loc) • 557 B
text/typescript
import React from 'react';
import { isModalActive, registerModalContainer } from '../../core/Modal/store';
import { IModalContainerProps } from '../../core/Modal/types';
export default function useModalContainer(props: IModalContainerProps) {
const { subscribe, getSnapshot, setDefaultOptions } = React.useRef(registerModalContainer(props)).current;
setDefaultOptions(props.defaultOptions);
const snapshot = React.useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
return {
modalList: snapshot || [],
isModalActive
};
}