UNPKG

catreact

Version:

Catavolt Core React Components

77 lines (76 loc) 2.72 kB
"use strict"; /** * Created by rburson on 4/14/16. */ Object.defineProperty(exports, "__esModule", { value: true }); var React = require("react"); var catreact_core_1 = require("../core/catreact-core"); /* *************************************************** * Provide Logout Support to other components *************************************************** */ exports.CvLogout = React.createClass({ mixins: [catreact_core_1.CvBaseMixin], getChildContext: function () { return this.getDefaultChildContext(); }, getDefaultProps: function () { return { renderer: null, logoutListeners: [] }; }, render: function () { if (this.props.renderer) { return this.props.renderer(this.getChildContext().cvContext, this._getCallbackObject()); } else { return null; } }, _getCallbackObject: function () { var _this = this; return { isLoggedIn: function () { return _this.catavolt().isLoggedIn; }, logout: function () { var tenantId = null; if (_this.catavolt().sessionContextTry.isSuccess) { tenantId = _this.catavolt().sessionContextTry.success.tenantId; } else { var sessionContext = catreact_core_1.CvSessionManager.getSession(); if (sessionContext) { tenantId = sessionContext.tenantId; } } exports.CvLogout.performLogout(_this.catavolt(), _this.eventRegistry(), tenantId, _this.props.logoutListeners); } }; }, statics: { performLogout: function (catavolt, eventRegistry, tenantId, logoutListeners) { if (catavolt.isLoggedIn) { catavolt.logout().onComplete(function (result) { exports.CvLogout.postLogout(eventRegistry, tenantId, logoutListeners); }); } else { exports.CvLogout.postLogout(eventRegistry, tenantId, logoutListeners); } }, postLogout: function (eventRegistry, tenantId, logoutListeners) { catreact_core_1.CvSessionManager.removeSession(); var event = { type: catreact_core_1.CvEventType.LOGOUT, eventObj: { tenantId: tenantId } }; eventRegistry.publish(event, false); if (logoutListeners) { logoutListeners.forEach(function (listener) { listener(event); }); } eventRegistry.clearAll(); } } });