brackets-npm-registry
Version:
Install your extensions into Brackets using npm
99 lines (88 loc) • 3.06 kB
JavaScript
define(function (require, exports) {
'use strict';
var Strings = require('strings');
var Dialogs = brackets.getModule('widgets/Dialogs');
var React = brackets.getModule('thirdparty/react');
var ReactDOM = brackets.getModule('thirdparty/react-dom');
var Utils = require('../../utils/index');
var dialog = null;
var ProgressDialog = React.createClass({
displayName: 'ProgressDialog',
getInitialState: function getInitialState() {
return {
finished: false,
lines: []
};
},
componentWillMount: function componentWillMount() {
var _this = this;
this.props.promise.progressed(function (msg) {
_this.setState({
lines: _this.state.lines.concat(msg)
});
}).then(function (stdout) {
_this.setState({
lines: _this.state.lines.concat(stdout)
});
})['catch'](function (err) {
_this.setState({
lines: _this.state.lines.concat(Utils.errToString(err))
});
})['finally'](function () {
_this.setState({
finished: true
});
});
},
componentDidUpdate: function componentDidUpdate() {
var $textarea = $(this.getDOMNode()).find('textarea');
$textarea.scrollTop($textarea[0].scrollHeight - $textarea.height());
},
render: function render() {
return React.createElement(
'div',
{ id: 'brackets-npm-registry-progress-dialog' },
React.createElement(
'div',
{ className: 'modal-header' },
React.createElement(
'h1',
{ className: 'dialog-title' },
Strings.OPERATION_IN_PROGRESS
)
),
React.createElement(
'div',
{ className: 'modal-body' },
React.createElement(
'div',
{ className: 'row-fluid' },
!this.state.finished ? React.createElement('span', { className: 'spinner inline large spin' }) : '',
React.createElement('textarea', { className: 'span12', readOnly: 'readonly', value: this.state.lines.join('\n') })
)
),
React.createElement(
'div',
{ className: 'modal-footer' },
this.state.finished ? React.createElement(
'button',
{ className: 'dialog-button btn primary', onClick: this.handleClose },
Strings.CLOSE
) : ''
)
);
},
handleClose: function handleClose() {
dialog.close();
}
});
var show = function show(promise) {
var template = '<div class="template modal"/>';
dialog = Dialogs.showModalDialogUsingTemplate(template, false);
var $dialog = dialog.getElement();
ReactDOM.render(React.createElement(ProgressDialog, { promise: promise }), $dialog[0]);
};
exports.show = show;
exports._ProgressDialog = ProgressDialog;
});
//# sourceMappingURL=C:\Users\Zaggi\AppData\Roaming\Brackets-Electron\extensions\user\brackets-npm-registry\dist//../ui/react-components/progress-dialog.js.map