@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.
86 lines (83 loc) • 2.68 kB
JavaScript
"use client";
import { defineProperty as _defineProperty, inherits as _inherits, createClass as _createClass, classCallCheck as _classCallCheck, callSuper as _callSuper, assertThisInitialized as _assertThisInitialized } from './_virtual/_rollupPluginBabelHelpers.js';
import { Component } from 'react';
import PropTypes from 'prop-types';
import { Context, getRollbarFromContext } from './Provider.js';
var RollbarContext = /*#__PURE__*/function (_Component) {
_inherits(RollbarContext, _Component);
function RollbarContext(props) {
var _this;
_classCallCheck(this, RollbarContext);
_this = _callSuper(this, RollbarContext, [props]);
_defineProperty(_assertThisInitialized(_this), "firstRender", true);
_defineProperty(_assertThisInitialized(_this), "changeContext", function () {
var storePrevious = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
var rollbar = 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;
}
_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 = 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;
}(Component);
_defineProperty(RollbarContext, "propTypes", {
context: PropTypes.string.isRequired,
onRender: PropTypes.bool,
children: PropTypes.node
});
_defineProperty(RollbarContext, "defaultProps", {
onRender: false
});
_defineProperty(RollbarContext, "contextType", Context);
export { RollbarContext };
//# sourceMappingURL=RollbarContext.js.map