@lyra/default-layout
Version:
The default layout components for Lyra
190 lines (169 loc) • 5.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _default = require('part:@lyra/components/buttons/default');
var _default2 = _interopRequireDefault(_default);
var _default3 = require('part:@lyra/components/dialogs/default');
var _default4 = _interopRequireDefault(_default3);
var _UpdateNotifierDialog = require('./styles/UpdateNotifierDialog.css');
var _UpdateNotifierDialog2 = _interopRequireDefault(_UpdateNotifierDialog);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const upperFirst = str => `${str.slice(0, 1).toUpperCase()}${str.slice(1)}`;
class UpdateNotifierDialog extends _react.Component {
renderTable() {
const outdated = this.props.outdated;
return _react2.default.createElement(
'div',
null,
_react2.default.createElement(
'table',
{ className: _UpdateNotifierDialog2.default.versionsTable },
_react2.default.createElement(
'thead',
null,
_react2.default.createElement(
'tr',
null,
_react2.default.createElement(
'th',
null,
'Module'
),
_react2.default.createElement(
'th',
null,
'Installed'
),
_react2.default.createElement(
'th',
null,
'Latest'
),
_react2.default.createElement(
'th',
null,
'Importance'
)
)
),
_react2.default.createElement(
'tbody',
null,
outdated.map(pkg => _react2.default.createElement(
'tr',
{ key: pkg.name },
_react2.default.createElement(
'td',
null,
pkg.name
),
_react2.default.createElement(
'td',
null,
pkg.version
),
_react2.default.createElement(
'td',
null,
pkg.latest
),
_react2.default.createElement(
'td',
null,
upperFirst(pkg.severity || 'low')
)
))
)
),
_react2.default.createElement(
'p',
{ className: _UpdateNotifierDialog2.default.upgradeText },
'To upgrade, run the Lyra CLI command',
' ',
_react2.default.createElement(
'code',
{ className: _UpdateNotifierDialog2.default.code },
'lyra upgrade'
),
' in your project folder.'
)
);
}
renderContactDeveloper() {
const severity = this.props.severity;
return _react2.default.createElement(
'div',
null,
_react2.default.createElement(
'p',
null,
'You are running an outdated studio.'
),
severity === 'high' ? _react2.default.createElement(
'p',
null,
'Please get in touch with your developers and ask them to upgrade it for you.'
) : _react2.default.createElement(
'p',
null,
'Consider getting in touch with your developers and ask them to upgrade it for you.'
),
_react2.default.createElement(
'details',
null,
_react2.default.createElement(
'summary',
null,
'Developer info'
),
this.renderTable()
)
);
}
render() {
var _props = this.props;
const severity = _props.severity,
onClose = _props.onClose;
return _react2.default.createElement(
_default4.default,
{ isOpen: true, onClose: onClose },
_react2.default.createElement(
'div',
{ className: _UpdateNotifierDialog2.default.content },
_react2.default.createElement(
'div',
null,
_react2.default.createElement(
'h2',
null,
severity === 'low' ? 'New versions available' : 'Studio is outdated'
),
__DEV__ ? this.renderTable() : this.renderContactDeveloper(),
_react2.default.createElement(
_default2.default,
{ color: 'primary', onClick: onClose },
'Close'
)
)
)
);
}
}
UpdateNotifierDialog.propTypes = {
onClose: _propTypes2.default.func.isRequired,
severity: _propTypes2.default.string.isRequired,
outdated: _propTypes2.default.arrayOf(_propTypes2.default.shape({
name: _propTypes2.default.string,
latest: _propTypes2.default.string,
severity: _propTypes2.default.string
}))
};
UpdateNotifierDialog.defaultProps = {
outdated: []
};
exports.default = UpdateNotifierDialog;