feeles-ide
Version:
The hackable and serializable IDE to make learning material
142 lines (112 loc) • 5.04 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
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 _propTypes = _interopRequireDefault(require("prop-types"));
var _CardWindow = _interopRequireDefault(require("../CardWindow"));
var _CardContent = _interopRequireDefault(require("@material-ui/core/CardContent"));
var _CardActions = _interopRequireDefault(require("@material-ui/core/CardActions"));
var _CardFloatingBar = _interopRequireDefault(require("../CardFloatingBar"));
var _File = require("../../File/");
var _EnvItem = _interopRequireDefault(require("./EnvItem"));
var _EditFile = _interopRequireDefault(require("../EditFile"));
var EnvCard =
/*#__PURE__*/
function (_PureComponent) {
(0, _inherits2.default)(EnvCard, _PureComponent);
function EnvCard() {
var _getPrototypeOf2;
var _this;
(0, _classCallCheck2.default)(this, EnvCard);
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)(EnvCard)).call.apply(_getPrototypeOf2, [this].concat(args)));
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "state", {
env: _this.props.getConfig('env'),
fileKey: ''
});
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleUpdateEnv", function (change) {
var env = Object.assign({}, _this.state.env, change);
_this.props.setConfig('env', env).then(function (file) {
return file.json;
}).then(function (env) {
return _this.setState({
env: env
});
});
});
return _this;
}
(0, _createClass2.default)(EnvCard, [{
key: "componentDidUpdate",
value: function componentDidUpdate(prevProps) {
if (prevProps.files !== this.props.files) {
var envFile = prevProps.findFile('.env');
this.setState({
env: prevProps.getConfig('env'),
fileKey: envFile ? envFile.key : ''
});
}
}
}, {
key: "componentDidMount",
value: function componentDidMount() {
var envFile = this.props.findFile('.env');
if (!envFile) {
var env = this.props.getConfig('env');
this.props.addFile(new _File.SourceFile({
type: 'application/json',
name: '.env',
text: JSON.stringify(env, null, '\t')
}));
} else {
this.setState({
fileKey: envFile.key
});
}
}
}, {
key: "render",
value: function render() {
var _this2 = this;
var localization = this.props.localization;
return _react.default.createElement(_CardWindow.default, this.props.cardPropsBag, _react.default.createElement(_CardFloatingBar.default, null, this.props.localization.envCard.title), _react.default.createElement(_CardContent.default, null, Object.keys(this.state.env).map(function (key) {
return _react.default.createElement(_EnvItem.default, {
key: key,
itemKey: key,
item: _this2.state.env[key],
localization: localization,
updateEnv: _this2.handleUpdateEnv
});
})), _react.default.createElement(_CardActions.default, null, _react.default.createElement(_EditFile.default, {
filePath: ".env",
localization: localization,
globalEvent: this.props.globalEvent
})));
}
}]);
return EnvCard;
}(_react.PureComponent);
exports.default = EnvCard;
(0, _defineProperty2.default)(EnvCard, "propTypes", {
cardPropsBag: _propTypes.default.object.isRequired,
files: _propTypes.default.array.isRequired,
getConfig: _propTypes.default.func.isRequired,
setConfig: _propTypes.default.func.isRequired,
localization: _propTypes.default.object.isRequired,
findFile: _propTypes.default.func.isRequired,
addFile: _propTypes.default.func.isRequired,
globalEvent: _propTypes.default.object.isRequired
});