UNPKG

atom-nuclide

Version:

A unified developer experience for web and mobile development, built as a suite of features on top of Atom to provide hackability and the support of an active community.

107 lines (83 loc) 3.32 kB
Object.defineProperty(exports, '__esModule', { value: true }); /* * Copyright (c) 2015-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the license found in the LICENSE file in * the root directory of this source tree. */ exports.activate = activate; exports.setHomeFragments = setHomeFragments; exports.deactivate = deactivate; exports.consumeWorkspaceViewsService = consumeWorkspaceViewsService; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _atom2; function _atom() { return _atom2 = require('atom'); } var _commonsAtomFeatureConfig2; function _commonsAtomFeatureConfig() { return _commonsAtomFeatureConfig2 = _interopRequireDefault(require('../../commons-atom/featureConfig')); } var _commonsAtomViewableFromReactElement2; function _commonsAtomViewableFromReactElement() { return _commonsAtomViewableFromReactElement2 = require('../../commons-atom/viewableFromReactElement'); } var _HomePaneItem2; function _HomePaneItem() { return _HomePaneItem2 = _interopRequireDefault(require('./HomePaneItem')); } var _immutable2; function _immutable() { return _immutable2 = _interopRequireDefault(require('immutable')); } var _reactForAtom2; function _reactForAtom() { return _reactForAtom2 = require('react-for-atom'); } var _rxjsBundlesRxUmdMinJs2; function _rxjsBundlesRxUmdMinJs() { return _rxjsBundlesRxUmdMinJs2 = _interopRequireDefault(require('rxjs/bundles/Rx.umd.min.js')); } var subscriptions = null; // A stream of all of the fragments. This is essentially the state of our panel. var allHomeFragmentsStream = new (_rxjsBundlesRxUmdMinJs2 || _rxjsBundlesRxUmdMinJs()).default.BehaviorSubject((_immutable2 || _immutable()).default.Set()); function activate(state) { considerDisplayingHome(); subscriptions = new (_atom2 || _atom()).CompositeDisposable(); } function setHomeFragments(homeFragments) { allHomeFragmentsStream.next(allHomeFragmentsStream.getValue().add(homeFragments)); return new (_atom2 || _atom()).Disposable(function () { allHomeFragmentsStream.next(allHomeFragmentsStream.getValue().remove(homeFragments)); }); } function considerDisplayingHome() { var showHome = (_commonsAtomFeatureConfig2 || _commonsAtomFeatureConfig()).default.get('nuclide-home.showHome'); if (showHome) { atom.commands.dispatch(atom.views.getView(atom.workspace), 'nuclide-home:toggle', { visible: true }); } } function deactivate() { allHomeFragmentsStream.next((_immutable2 || _immutable()).default.Set()); subscriptions.dispose(); subscriptions = null; } function consumeWorkspaceViewsService(api) { subscriptions.add(api.registerFactory({ id: 'nuclide-home', name: 'Home', iconName: 'home', toggleCommand: 'nuclide-home:toggle', defaultLocation: 'pane', create: function create() { return (0, (_commonsAtomViewableFromReactElement2 || _commonsAtomViewableFromReactElement()).viewableFromReactElement)((_reactForAtom2 || _reactForAtom()).React.createElement((_HomePaneItem2 || _HomePaneItem()).default, { allHomeFragmentsStream: allHomeFragmentsStream })); }, isInstance: function isInstance(item) { return item instanceof (_HomePaneItem2 || _HomePaneItem()).default; } })); considerDisplayingHome(); }