UNPKG

react-antd-dashboard

Version:

React dashboard layout solution created using AntD and permission based navigation. Supports theming with Less, parameterized routes and private routing. Contains useful components for dashboard application.

71 lines (61 loc) 2.07 kB
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } import React from 'react'; import { Modal } from 'antd'; const withModal = defaultModalData => Component => { class HOC extends React.Component { constructor(props) { super(props); _defineProperty(this, "showDialog", modalData => { if (modalData && modalData != undefined) { this.setState({ visible: true, modalData }); } else { this.setState({ visible: true, modalData: defaultModalData || null }); } }); _defineProperty(this, "closeDialog", () => { return new Promise(resolve => { this.setState({ visible: false, modalData: defaultModalData || null }, () => { return resolve(); }); }); }); this.state = { modalData: defaultModalData || null, visible: false }; } render() { const { modalData, visible } = this.state; const modalProps = { visible, destroyOnClose: true, onCancel: e => { this.closeDialog().then(() => { if (this.props.onCancel) this.props.onCancel(e); }); } }; return /*#__PURE__*/React.createElement(Component, _extends({}, this.props, { closeDialog: this.closeDialog, showDialog: this.showDialog, modalProps: modalProps, modalData: modalData })); } } return HOC; }; export default withModal;