@rollbar/react
Version:
Effortlessly track and debug errors in your React applications with Rollbar. This package includes advanced error tracking features and a set of React-specific enhancements to help you identify and fix issues more quickly.
88 lines (84 loc) • 2.82 kB
JavaScript
"use client";
;
var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
var React = require('react');
var PropTypes = require('prop-types');
var Provider = require('./Provider.js');
var RollbarContext = /*#__PURE__*/function (_Component) {
_rollupPluginBabelHelpers.inherits(RollbarContext, _Component);
function RollbarContext(props) {
var _this;
_rollupPluginBabelHelpers.classCallCheck(this, RollbarContext);
_this = _rollupPluginBabelHelpers.callSuper(this, RollbarContext, [props]);
_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "firstRender", true);
_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "changeContext", function () {
var storePrevious = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
var rollbar = Provider.getRollbarFromContext(_this.context);
var context = _this.props.context;
if (storePrevious) {
_this.setState({
previousContext: rollbar.options.payload.context
});
}
rollbar.configure({
payload: {
context: context
}
});
});
_this.state = {
previousContext: null
};
return _this;
}
_rollupPluginBabelHelpers.createClass(RollbarContext, [{
key: "componentDidMount",
value: function componentDidMount() {
var onRender = this.props.onRender;
if (!onRender) {
this.changeContext(true);
}
}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate() {
var onRender = this.props.onRender;
if (!onRender) {
this.changeContext(false);
}
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
var rollbar = Provider.getRollbarFromContext(this.context);
var previousContext = this.state.previousContext;
rollbar.configure({
payload: {
context: previousContext
}
});
}
}, {
key: "render",
value: function render() {
var onRender = this.props.onRender;
if (onRender && this.firstRender) {
this.changeContext(true);
}
this.firstRender = false;
return this.props.children;
}
}]);
return RollbarContext;
}(React.Component);
_rollupPluginBabelHelpers.defineProperty(RollbarContext, "propTypes", {
context: PropTypes.string.isRequired,
onRender: PropTypes.bool,
children: PropTypes.node
});
_rollupPluginBabelHelpers.defineProperty(RollbarContext, "defaultProps", {
onRender: false
});
_rollupPluginBabelHelpers.defineProperty(RollbarContext, "contextType", Provider.Context);
exports.RollbarContext = RollbarContext;
//# sourceMappingURL=RollbarContext.js.map