@atlaskit/analytics-next
Version:
React components, HOCs and hooks to assist with tracking user activity with React components
71 lines • 3.1 kB
JavaScript
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _inherits from "@babel/runtime/helpers/inherits";
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
import React, { Component } from 'react';
import { fg } from '@atlaskit/platform-feature-flags';
import isModernContextEnabledEnv from '../utils/isModernContextEnabledEnv';
import LegacyAnalyticsContext from './AnalyticsContext/LegacyAnalyticsContext';
import ModernAnalyticsContext from './AnalyticsContext/ModernAnalyticsContext';
/**
* @private https://product-fabric.atlassian.net/browse/AFO-815
* @deprecated
*/
// eslint-disable-next-line @repo/internal/react/no-class-components
var AnalyticsErrorBoundary = /*#__PURE__*/function (_Component) {
function AnalyticsErrorBoundary(props) {
var _this;
_classCallCheck(this, AnalyticsErrorBoundary);
_this = _callSuper(this, AnalyticsErrorBoundary, [props]);
_this.state = {
hasError: false
};
return _this;
}
_inherits(AnalyticsErrorBoundary, _Component);
return _createClass(AnalyticsErrorBoundary, [{
key: "componentDidCatch",
value: function componentDidCatch(error, info) {
var onError = this.props.onError;
onError && onError(error, info);
this.setState({
hasError: true
});
}
}, {
key: "render",
value: function render() {
var _this$props = this.props,
data = _this$props.data,
children = _this$props.children,
ErrorComponent = _this$props.ErrorComponent;
var hasError = this.state.hasError;
var isModernContext = isModernContextEnabledEnv || fg('analytics-next-use-legacy-context') === false;
if (hasError) {
if (ErrorComponent) {
if (isModernContext) {
return /*#__PURE__*/React.createElement(ModernAnalyticsContext, {
data: data
}, /*#__PURE__*/React.createElement(ErrorComponent, null));
}
return /*#__PURE__*/React.createElement(LegacyAnalyticsContext, {
data: data
}, /*#__PURE__*/React.createElement(ErrorComponent, null));
}
return null;
}
if (isModernContext) {
return /*#__PURE__*/React.createElement(ModernAnalyticsContext, {
data: data
}, children);
}
return /*#__PURE__*/React.createElement(LegacyAnalyticsContext, {
data: data
}, children);
}
}]);
}(Component);
export { AnalyticsErrorBoundary as default };