UNPKG

brackets-npm-registry

Version:

Install your extensions into Brackets using npm

99 lines (88 loc) 3.06 kB
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