fabric8-planner
Version:
A planner front-end for Fabric8.
40 lines • 1.57 kB
JavaScript
import { Injectable } from '@angular/core';
// MemoizedSelector is needed even if it's not being used in this file
// Else you get this error
// Exported variable 'plannerSelector' has or is using name 'MemoizedSelector'
// from external module "@ngrx/store/src/selector" but cannot be named.
import { createFeatureSelector, createSelector, select, Store } from '@ngrx/store';
import { filter, tap } from 'rxjs/operators';
import * as SpaceActions from './../actions/space.actions';
export var plannerSelector = createFeatureSelector('planner');
export var spaceSelector = createSelector(plannerSelector,
// TODO
// This is a HACK till fabric8-ui removes the unnecessary planner imports
// it should just be
// state => state.space
function (state) { return state ? state.space : {}; });
var SpaceQuery = /** @class */ (function () {
function SpaceQuery(store) {
this.store = store;
}
Object.defineProperty(SpaceQuery.prototype, "getCurrentSpace", {
get: function () {
var _this = this;
return this.store.pipe(select(spaceSelector), tap(function (s) { if (!s) {
_this.store.dispatch(new SpaceActions.Get());
} }), filter(function (s) { return !!s; }));
},
enumerable: true,
configurable: true
});
SpaceQuery.decorators = [
{ type: Injectable },
];
/** @nocollapse */
SpaceQuery.ctorParameters = function () { return [
{ type: Store, },
]; };
return SpaceQuery;
}());
export { SpaceQuery };
//# sourceMappingURL=space.js.map