@atlaskit/smart-user-picker 5.0.0 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @atlassian/smart-user-picker
2
2
 
3
+ ## 5.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`0850fe46fc8`](https://bitbucket.org/atlassian/atlassian-frontend/commits/0850fe46fc8) - Track mount errors in Smart User Picker
8
+
3
9
  ## 5.0.0
4
10
 
5
11
  ### Major Changes
@@ -16,8 +16,11 @@ var _MessagesIntlProvider = _interopRequireDefault(require("./MessagesIntlProvid
16
16
  var _ufoExperiences = require("../ufoExperiences");
17
17
 
18
18
  var SmartUserPickerWithIntlProvider = function SmartUserPickerWithIntlProvider(props) {
19
- (0, _ufoExperiences.useUFOConcurrentExperience)(_ufoExperiences.smartUserPickerRenderedUfoExperience, props.inputId || props.fieldId);
20
- return /*#__PURE__*/_react.default.createElement(_MessagesIntlProvider.default, null, /*#__PURE__*/_react.default.createElement(_SmartUserPicker.SmartUserPicker, props));
19
+ var ufoId = props.inputId || props.fieldId;
20
+ (0, _ufoExperiences.useUFOConcurrentExperience)(_ufoExperiences.smartUserPickerRenderedUfoExperience, ufoId);
21
+ return /*#__PURE__*/_react.default.createElement(_ufoExperiences.UfoErrorBoundary, {
22
+ id: ufoId
23
+ }, /*#__PURE__*/_react.default.createElement(_MessagesIntlProvider.default, null, /*#__PURE__*/_react.default.createElement(_SmartUserPicker.SmartUserPicker, props)));
21
24
  };
22
25
 
23
26
  var _default = SmartUserPickerWithIntlProvider;
@@ -1,13 +1,35 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
3
7
  Object.defineProperty(exports, "__esModule", {
4
8
  value: true
5
9
  });
6
- exports.useUFOConcurrentExperience = exports.smartUserPickerRenderedUfoExperience = void 0;
10
+ exports.useUFOConcurrentExperience = exports.smartUserPickerRenderedUfoExperience = exports.UfoErrorBoundary = void 0;
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
+
22
+ var _react = _interopRequireWildcard(require("react"));
7
23
 
8
24
  var _ufo = require("@atlaskit/ufo");
9
25
 
10
- var _react = require("react");
26
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
+
28
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
+
30
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
31
+
32
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
11
33
 
12
34
  var COMPONENT_NAME = 'smart-user-picker';
13
35
  var smartUserPickerRenderedUfoExperience = new _ufo.ConcurrentExperience('smart-user-picker-rendered', {
@@ -28,12 +50,43 @@ var useUFOConcurrentExperience = function useUFOConcurrentExperience(experience,
28
50
  }); // Replace with @atlaskit/ufo's <ExperienceSuccess> when it supports ConcurrentExperience
29
51
 
30
52
  (0, _react.useEffect)(function () {
31
- experienceForId.success();
53
+ if (experienceForId.state !== _ufo.UFOExperienceState['FAILED']) {
54
+ experienceForId.success();
55
+ }
56
+
32
57
  return function () {
33
- experienceForId.abort();
58
+ if ([_ufo.UFOExperienceState['STARTED'], _ufo.UFOExperienceState['IN_PROGRESS']].includes(experienceForId.state)) {
59
+ experienceForId.abort();
60
+ }
34
61
  }; // We only want this useEffect to run once after component mount, so no deps are needed.
35
62
  // eslint-disable-next-line react-hooks/exhaustive-deps
36
63
  }, []);
37
64
  };
38
65
 
39
- exports.useUFOConcurrentExperience = useUFOConcurrentExperience;
66
+ exports.useUFOConcurrentExperience = useUFOConcurrentExperience;
67
+
68
+ var UfoErrorBoundary = /*#__PURE__*/function (_React$Component) {
69
+ (0, _inherits2.default)(UfoErrorBoundary, _React$Component);
70
+
71
+ var _super = _createSuper(UfoErrorBoundary);
72
+
73
+ function UfoErrorBoundary() {
74
+ (0, _classCallCheck2.default)(this, UfoErrorBoundary);
75
+ return _super.apply(this, arguments);
76
+ }
77
+
78
+ (0, _createClass2.default)(UfoErrorBoundary, [{
79
+ key: "componentDidCatch",
80
+ value: function componentDidCatch() {
81
+ smartUserPickerRenderedUfoExperience.getInstance(this.props.id).failure();
82
+ }
83
+ }, {
84
+ key: "render",
85
+ value: function render() {
86
+ return this.props.children;
87
+ }
88
+ }]);
89
+ return UfoErrorBoundary;
90
+ }(_react.default.Component);
91
+
92
+ exports.UfoErrorBoundary = UfoErrorBoundary;
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-user-picker",
3
- "version": "5.0.0",
3
+ "version": "5.0.1",
4
4
  "sideEffects": false
5
5
  }
@@ -1,11 +1,14 @@
1
1
  import React from 'react';
2
2
  import { SmartUserPicker } from './SmartUserPicker';
3
3
  import MessagesIntlProvider from './MessagesIntlProvider';
4
- import { useUFOConcurrentExperience, smartUserPickerRenderedUfoExperience } from '../ufoExperiences';
4
+ import { useUFOConcurrentExperience, smartUserPickerRenderedUfoExperience, UfoErrorBoundary } from '../ufoExperiences';
5
5
 
6
6
  const SmartUserPickerWithIntlProvider = props => {
7
- useUFOConcurrentExperience(smartUserPickerRenderedUfoExperience, props.inputId || props.fieldId);
8
- return /*#__PURE__*/React.createElement(MessagesIntlProvider, null, /*#__PURE__*/React.createElement(SmartUserPicker, props));
7
+ const ufoId = props.inputId || props.fieldId;
8
+ useUFOConcurrentExperience(smartUserPickerRenderedUfoExperience, ufoId);
9
+ return /*#__PURE__*/React.createElement(UfoErrorBoundary, {
10
+ id: ufoId
11
+ }, /*#__PURE__*/React.createElement(MessagesIntlProvider, null, /*#__PURE__*/React.createElement(SmartUserPicker, props)));
9
12
  };
10
13
 
11
14
  export default SmartUserPickerWithIntlProvider;
@@ -1,4 +1,5 @@
1
- import { ExperiencePerformanceTypes, ExperienceTypes, ConcurrentExperience } from '@atlaskit/ufo';
1
+ import React from 'react';
2
+ import { ExperiencePerformanceTypes, ExperienceTypes, ConcurrentExperience, UFOExperienceState } from '@atlaskit/ufo';
2
3
  import { useEffect, useState } from 'react';
3
4
  const COMPONENT_NAME = 'smart-user-picker';
4
5
  export const smartUserPickerRenderedUfoExperience = new ConcurrentExperience('smart-user-picker-rendered', {
@@ -17,10 +18,25 @@ export const useUFOConcurrentExperience = (experience, id) => {
17
18
  }); // Replace with @atlaskit/ufo's <ExperienceSuccess> when it supports ConcurrentExperience
18
19
 
19
20
  useEffect(() => {
20
- experienceForId.success();
21
+ if (experienceForId.state !== UFOExperienceState['FAILED']) {
22
+ experienceForId.success();
23
+ }
24
+
21
25
  return () => {
22
- experienceForId.abort();
26
+ if ([UFOExperienceState['STARTED'], UFOExperienceState['IN_PROGRESS']].includes(experienceForId.state)) {
27
+ experienceForId.abort();
28
+ }
23
29
  }; // We only want this useEffect to run once after component mount, so no deps are needed.
24
30
  // eslint-disable-next-line react-hooks/exhaustive-deps
25
31
  }, []);
26
- };
32
+ };
33
+ export class UfoErrorBoundary extends React.Component {
34
+ componentDidCatch() {
35
+ smartUserPickerRenderedUfoExperience.getInstance(this.props.id).failure();
36
+ }
37
+
38
+ render() {
39
+ return this.props.children;
40
+ }
41
+
42
+ }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-user-picker",
3
- "version": "5.0.0",
3
+ "version": "5.0.1",
4
4
  "sideEffects": false
5
5
  }
@@ -1,11 +1,14 @@
1
1
  import React from 'react';
2
2
  import { SmartUserPicker } from './SmartUserPicker';
3
3
  import MessagesIntlProvider from './MessagesIntlProvider';
4
- import { useUFOConcurrentExperience, smartUserPickerRenderedUfoExperience } from '../ufoExperiences';
4
+ import { useUFOConcurrentExperience, smartUserPickerRenderedUfoExperience, UfoErrorBoundary } from '../ufoExperiences';
5
5
 
6
6
  var SmartUserPickerWithIntlProvider = function SmartUserPickerWithIntlProvider(props) {
7
- useUFOConcurrentExperience(smartUserPickerRenderedUfoExperience, props.inputId || props.fieldId);
8
- return /*#__PURE__*/React.createElement(MessagesIntlProvider, null, /*#__PURE__*/React.createElement(SmartUserPicker, props));
7
+ var ufoId = props.inputId || props.fieldId;
8
+ useUFOConcurrentExperience(smartUserPickerRenderedUfoExperience, ufoId);
9
+ return /*#__PURE__*/React.createElement(UfoErrorBoundary, {
10
+ id: ufoId
11
+ }, /*#__PURE__*/React.createElement(MessagesIntlProvider, null, /*#__PURE__*/React.createElement(SmartUserPicker, props)));
9
12
  };
10
13
 
11
14
  export default SmartUserPickerWithIntlProvider;
@@ -1,4 +1,15 @@
1
- import { ExperiencePerformanceTypes, ExperienceTypes, ConcurrentExperience } from '@atlaskit/ufo';
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ import _inherits from "@babel/runtime/helpers/inherits";
4
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
5
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
6
+
7
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
8
+
9
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
10
+
11
+ import React from 'react';
12
+ import { ExperiencePerformanceTypes, ExperienceTypes, ConcurrentExperience, UFOExperienceState } from '@atlaskit/ufo';
2
13
  import { useEffect, useState } from 'react';
3
14
  var COMPONENT_NAME = 'smart-user-picker';
4
15
  export var smartUserPickerRenderedUfoExperience = new ConcurrentExperience('smart-user-picker-rendered', {
@@ -17,10 +28,40 @@ export var useUFOConcurrentExperience = function useUFOConcurrentExperience(expe
17
28
  }); // Replace with @atlaskit/ufo's <ExperienceSuccess> when it supports ConcurrentExperience
18
29
 
19
30
  useEffect(function () {
20
- experienceForId.success();
31
+ if (experienceForId.state !== UFOExperienceState['FAILED']) {
32
+ experienceForId.success();
33
+ }
34
+
21
35
  return function () {
22
- experienceForId.abort();
36
+ if ([UFOExperienceState['STARTED'], UFOExperienceState['IN_PROGRESS']].includes(experienceForId.state)) {
37
+ experienceForId.abort();
38
+ }
23
39
  }; // We only want this useEffect to run once after component mount, so no deps are needed.
24
40
  // eslint-disable-next-line react-hooks/exhaustive-deps
25
41
  }, []);
26
- };
42
+ };
43
+ export var UfoErrorBoundary = /*#__PURE__*/function (_React$Component) {
44
+ _inherits(UfoErrorBoundary, _React$Component);
45
+
46
+ var _super = _createSuper(UfoErrorBoundary);
47
+
48
+ function UfoErrorBoundary() {
49
+ _classCallCheck(this, UfoErrorBoundary);
50
+
51
+ return _super.apply(this, arguments);
52
+ }
53
+
54
+ _createClass(UfoErrorBoundary, [{
55
+ key: "componentDidCatch",
56
+ value: function componentDidCatch() {
57
+ smartUserPickerRenderedUfoExperience.getInstance(this.props.id).failure();
58
+ }
59
+ }, {
60
+ key: "render",
61
+ value: function render() {
62
+ return this.props.children;
63
+ }
64
+ }]);
65
+
66
+ return UfoErrorBoundary;
67
+ }(React.Component);
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-user-picker",
3
- "version": "5.0.0",
3
+ "version": "5.0.1",
4
4
  "sideEffects": false
5
5
  }
@@ -1,3 +1,10 @@
1
+ import React from 'react';
1
2
  import { ConcurrentExperience } from '@atlaskit/ufo';
2
3
  export declare const smartUserPickerRenderedUfoExperience: ConcurrentExperience;
3
4
  export declare const useUFOConcurrentExperience: (experience: ConcurrentExperience, id: string) => void;
5
+ export declare class UfoErrorBoundary extends React.Component<{
6
+ id: string;
7
+ }> {
8
+ componentDidCatch(): void;
9
+ render(): React.ReactNode;
10
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-user-picker",
3
- "version": "5.0.0",
3
+ "version": "5.0.1",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org/"
6
6
  },