catreact
Version:
Catavolt Core React Components
77 lines (76 loc) • 2.72 kB
JavaScript
;
/**
* 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();
}
}
});