UNPKG

feeles-ide

Version:

The hackable and serializable IDE to make learning material

207 lines (179 loc) 6.65 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireWildcard(require("react")); var _core = require("@material-ui/core"); var _styles = require("@material-ui/core/styles"); var _propTypes = _interopRequireDefault(require("prop-types")); var _typestyle = require("typestyle"); var _red = _interopRequireDefault(require("@material-ui/core/colors/red")); var _Restore = _interopRequireDefault(require("@material-ui/icons/Restore")); var _dec, _class, _class2, _temp; var cn = { dialogRoot: (0, _typestyle.style)({ position: 'absolute', top: 0, left: 0, width: '100%', zIndex: 1001 }), error: (0, _typestyle.style)({ margin: 16, display: 'flex', flexDirection: 'column', alignItems: 'center', borderStyle: 'double', borderColor: _red.default['500'], backgroundColor: _red.default['50'], overflow: 'hidden' }), heading: (0, _typestyle.style)({ color: 'rgba(255, 0, 0, .5)' }), close: (0, _typestyle.style)({ alignSelf: 'flex-end' }), blank: (0, _typestyle.style)({ flex: '0 0 1rem' }), messageText: (0, _typestyle.style)({ margin: 8, color: _red.default['500'], fontFamily: 'Consolas, "Liberation Mono", Menlo, Courier, monospace' }) }; var getCn = function getCn(props, state) { return { root: (0, _typestyle.style)({ borderTopWidth: 3, borderTopStyle: state.show ? 'double' : 'none', borderTopColor: props.theme.palette.primary.main }), message: (0, _typestyle.style)({ position: 'relative', maxHeight: props.error ? state.expanded ? 1000 : 48 : 0, width: '100%', boxSizing: 'border-box', paddingLeft: 8, overflow: 'scroll', cursor: 'pointer' }) }; }; var ErrorPane = (_dec = (0, _styles.withTheme)(), _dec(_class = (_temp = _class2 = /*#__PURE__*/ function (_PureComponent) { (0, _inherits2.default)(ErrorPane, _PureComponent); function ErrorPane() { var _getPrototypeOf2; var _this; (0, _classCallCheck2.default)(this, ErrorPane); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(ErrorPane)).call.apply(_getPrototypeOf2, [this].concat(args))); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "state", { show: false, expanded: false }); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleClose", function () { _this.setState({ show: false }); }); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleRestore", function () { _this.setState({ show: false }, function () { _this.props.onRestore(); }); }); return _this; } (0, _createClass2.default)(ErrorPane, [{ key: "componentDidUpdate", value: function componentDidUpdate(prevProps) { if (prevProps.error !== this.props.error) { this.setState({ show: !!this.props.error }); } } }, { key: "renderAsDialog", value: function renderAsDialog() { var _this$props = this.props, localization = _this$props.localization, canRestore = _this$props.canRestore; return _react.default.createElement("div", { className: cn.dialogRoot }, _react.default.createElement(_core.Paper, { key: "error", elevation: 2, className: cn.error }, _react.default.createElement(_core.Button, { variant: "text", color: "primary", className: cn.close, onClick: this.handleClose }, localization.common.close), _react.default.createElement("h2", { className: cn.heading }, localization.editorCard.error), _react.default.createElement("div", { className: cn.blank }), _react.default.createElement(_core.Button, { variant: "contained", color: "primary", onClick: this.handleRestore, disabled: !canRestore }, _react.default.createElement(_Restore.default, null), localization.editorCard.restore), _react.default.createElement("div", { className: cn.blank }))); } }, { key: "renderAsDock", value: function renderAsDock(className) { var _this2 = this; var expanded = this.state.expanded; return _react.default.createElement("div", { className: className, onClick: function onClick() { return _this2.setState({ expanded: !expanded }); } }, _react.default.createElement("pre", { className: cn.messageText }, this.props.error && this.props.error.message)); } }, { key: "render", value: function render() { var dcn = getCn(this.props, this.state); var show = this.state.show; return _react.default.createElement("div", { className: dcn.root }, this.renderAsDock(dcn.message), _react.default.createElement(_core.Zoom, { in: show }, this.renderAsDialog())); } }]); return ErrorPane; }(_react.PureComponent), (0, _defineProperty2.default)(_class2, "propTypes", { theme: _propTypes.default.object.isRequired, error: _propTypes.default.object, localization: _propTypes.default.object.isRequired, onRestore: _propTypes.default.func.isRequired, canRestore: _propTypes.default.bool.isRequired }), _temp)) || _class); exports.default = ErrorPane;