@eeacms/react-chart-editor
Version:
plotly.js chart editor react component UI
2 lines • 3.15 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}(function(){var enterModule=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.enterModule:undefined;enterModule&&enterModule(module)})();function _extends(){return _extends=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)({}).hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n},_extends.apply(null,arguments)}var __signature__=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.default.signature:function(a){return a};class ModalProvider extends _react.default.Component{constructor(props){super(props);this.state={component:null,componentProps:{},open:false,isAnimatingOut:false}}componentDidUpdate(){const body=document.body;const{open}=this.state;const hasClass=body.classList.contains("no-scroll");if(open&&!hasClass){body.classList.add("no-scroll")}if(!open&&hasClass){body.classList.remove("no-scroll")}}openModal(component,componentProps){const{localize:_}=this.context;if(!component){throw Error(_("You need to provide a component for the modal to open!"))}const{open}=this.state;if(!open){this.setState({component:component,componentProps:componentProps,open:true})}}closeModal(){const{open}=this.state;if(open){this.setState({open:false,component:null})}}handleClose(){this.setState({isAnimatingOut:true});const animationDuration=600;setTimeout(()=>{this.setState({isAnimatingOut:false});this.closeModal()},animationDuration)}getChildContext(){return{openModal:(c,p)=>this.openModal(c,p),closeModal:()=>this.closeModal(),handleClose:()=>this.handleClose(),isAnimatingOut:this.state.isAnimatingOut}}render(){const{component:Component,componentProps,isAnimatingOut}=this.state;return _react.default.createElement(_react.default.Fragment,null,this.props.children,this.state.open?_react.default.createElement(Component,_extends({isAnimatingOut:isAnimatingOut},componentProps)):null)}__reactstandin__regenerateByEval(key,code){this[key]=eval(code)}}ModalProvider.propTypes={children:_propTypes.default.node};ModalProvider.contextTypes={localize:_propTypes.default.func};ModalProvider.childContextTypes={openModal:_propTypes.default.func,closeModal:_propTypes.default.func,handleClose:_propTypes.default.func,isAnimatingOut:_propTypes.default.bool};const _default=ModalProvider;var _default2=exports.default=_default;;(function(){var reactHotLoader=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.default:undefined;if(!reactHotLoader){return}reactHotLoader.register(ModalProvider,"ModalProvider","/react-chart-editor/src/components/containers/ModalProvider.js");reactHotLoader.register(_default,"default","/react-chart-editor/src/components/containers/ModalProvider.js")})();;(function(){var leaveModule=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.leaveModule:undefined;leaveModule&&leaveModule(module)})();
//# sourceMappingURL=ModalProvider.js.map