UNPKG

brackets-npm-registry

Version:

Install your extensions into Brackets using npm

145 lines (129 loc) 4.51 kB
define(function (require, exports) { 'use strict'; var Commands = brackets.getModule('command/Commands'); var CommandManager = brackets.getModule('command/CommandManager'); var Dialogs = brackets.getModule('widgets/Dialogs'); var DefaultDialogs = brackets.getModule('widgets/DefaultDialogs'); var Logger = require('../../utils/logger'); var React = brackets.getModule('thirdparty/react'); var ReactDOM = brackets.getModule('thirdparty/react-dom'); var Strings = require('strings'); var BracketsStrings = brackets.getModule('strings'); var RegistryItem = require('./registry-item'); var RegistryUtils = require('../registry-utils'); var restartRequiredAfterClose = false; var RegistryDialog = React.createClass({ displayName: 'RegistryDialog', getInitialState: function getInitialState() { return { registry: [], registryLoading: true }; }, // get the registry after the dialog is opened componentDidMount: function componentDidMount() { var _this = this; RegistryUtils.getRegistry().then(function (registry) { if (_this.isMounted()) { _this.setState({ registry: registry, registryLoading: false }); } })['catch'](function (err) { Logger.error(err); if (_this.isMounted()) { _this.setState({ registryLoading: false }); } }); RegistryUtils.on('change', this.handleRegistryChange); }, componentWillUnmount: function componentWillUnmount() { RegistryUtils.off('change', this.handleRegistryChange); }, handleRegistryChange: function handleRegistryChange(npmRegistry) { // extension has been installed/updated/removed this.setState({ registry: npmRegistry }); restartRequiredAfterClose = true; }, render: function render() { var contents = undefined; if (this.state.registryLoading) { contents = React.createElement( 'div', { className: 'text-center' }, React.createElement('span', { className: 'spinner inline large spin' }) ); } else { contents = this.state.registry.map(function (entry) { return React.createElement(RegistryItem, { key: entry._id, registryInfo: entry }); }); } return React.createElement( 'div', null, React.createElement( 'div', { className: 'modal-header' }, React.createElement( 'h1', { className: 'dialog-title' }, Strings.REGISTRY_DIALOG_TITLE ) ), React.createElement( 'div', { className: 'modal-body' }, React.createElement( 'div', { className: 'dialog-message' }, contents ) ), React.createElement( 'div', { className: 'modal-footer' }, React.createElement( 'button', { className: 'dialog-button btn primary', 'data-button-id': 'close' }, Strings.CLOSE ) ) ); } }); var afterClose = function afterClose() { // prompt the user to restart Brackets if (!restartRequiredAfterClose) { return; } var dialog = Dialogs.showModalDialog(DefaultDialogs.DIALOG_ID_CHANGE_EXTENSIONS, BracketsStrings.CHANGE_AND_RELOAD_TITLE, Strings.CLOSE_AND_RELOAD_MESSAGE, [{ className: Dialogs.DIALOG_BTN_CLASS_NORMAL, id: 'cancel', text: Strings.CANCEL }, { className: Dialogs.DIALOG_BTN_CLASS_PRIMARY, id: 'reload', text: Strings.RELOAD }], true); dialog.done(function (buttonId) { if (buttonId === 'reload') { CommandManager.execute(Commands.APP_RELOAD); } }); }; var show = function show() { var template = '<div id="brackets-npm-registry-dialog" class="template modal"/>'; var dialog = Dialogs.showModalDialogUsingTemplate(template); var $dialog = dialog.getElement(); ReactDOM.render(React.createElement(RegistryDialog, null), $dialog[0]); dialog.done(function () { React.unmountComponentAtNode($dialog[0]); afterClose(); }); }; exports.show = show; exports._RegistryItem = RegistryItem; exports._RegistryDialog = RegistryDialog; }); //# sourceMappingURL=C:\Users\Zaggi\AppData\Roaming\Brackets-Electron\extensions\user\brackets-npm-registry\dist//../ui/react-components/registry-dialog.js.map