@zohodesk/hooks
Version:
Unified Component Library - Hooks
24 lines • 1.03 kB
JavaScript
import React, { useEffect } from 'react';
import modalImpl from "./modalfunctionlity";
export default function useModal(props) {
const wrapperObjForFloatingUI = document.createElement('div');
wrapperObjForFloatingUI.className = `floatingcontainer_${new Date().getTime()}`;
useEffect(() => {
props.modalrootNode.appendChild(wrapperObjForFloatingUI);
const modalObj = { ...props,
wrapperObjForFloatingUI,
UID: wrapperObjForFloatingUI.className
};
modalImpl.init(modalObj);
return function cleanUp() {
const indexOfContainerElement = modalImpl.getIndexOfContainerElement(wrapperObjForFloatingUI.className);
modalImpl.removeFloatingUIContainerElement(indexOfContainerElement, wrapperObjForFloatingUI.className);
};
}, [props]);
const skeletonOfModal = /*#__PURE__*/React.createElement(React.Fragment, null, props.freezeLayer ? props.freezeLayer(props) : props.children);
return {
skeleton: skeletonOfModal,
floatingRoot: wrapperObjForFloatingUI,
...modalImpl
};
}