@atlaskit/link-picker 1.10.3 → 1.11.0
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 +14 -0
- package/dist/cjs/common/analytics/experiences.js +62 -0
- package/dist/cjs/controllers/session-provider/index.js +61 -0
- package/dist/cjs/ui/error-boundary/error-boundary-base/index.js +76 -0
- package/dist/cjs/ui/{error-boundary-fallback → error-boundary/error-boundary-fallback}/index.js +2 -2
- package/dist/cjs/ui/error-boundary/index.js +33 -81
- package/dist/cjs/ui/index.js +6 -9
- package/dist/cjs/ui/link-picker/index.js +28 -1
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/common/analytics/experiences.js +39 -0
- package/dist/es2019/controllers/session-provider/index.js +32 -0
- package/dist/es2019/ui/error-boundary/error-boundary-base/index.js +37 -0
- package/dist/es2019/ui/{error-boundary-fallback → error-boundary/error-boundary-fallback}/index.js +2 -2
- package/dist/es2019/ui/error-boundary/index.js +30 -59
- package/dist/es2019/ui/index.js +5 -8
- package/dist/es2019/ui/link-picker/index.js +24 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/common/analytics/experiences.js +40 -0
- package/dist/esm/controllers/session-provider/index.js +38 -0
- package/dist/esm/ui/error-boundary/error-boundary-base/index.js +56 -0
- package/dist/esm/ui/{error-boundary-fallback → error-boundary/error-boundary-fallback}/index.js +2 -2
- package/dist/esm/ui/error-boundary/index.js +30 -79
- package/dist/esm/ui/index.js +5 -8
- package/dist/esm/ui/link-picker/index.js +25 -1
- package/dist/esm/version.json +1 -1
- package/dist/types/common/analytics/experiences.d.ts +11 -0
- package/dist/types/controllers/session-provider/index.d.ts +10 -0
- package/dist/types/ui/error-boundary/error-boundary-base/index.d.ts +18 -0
- package/dist/types/ui/{error-boundary-fallback → error-boundary/error-boundary-fallback}/index.d.ts +0 -0
- package/dist/types/ui/error-boundary/index.d.ts +4 -24
- package/dist/types/ui/link-picker/index.d.ts +5 -0
- package/dist/types-ts4.0/common/analytics/experiences.d.ts +11 -0
- package/dist/types-ts4.0/controllers/session-provider/index.d.ts +10 -0
- package/dist/types-ts4.0/ui/error-boundary/error-boundary-base/index.d.ts +18 -0
- package/dist/types-ts4.0/ui/{error-boundary-fallback → error-boundary/error-boundary-fallback}/index.d.ts +0 -0
- package/dist/types-ts4.0/ui/error-boundary/index.d.ts +4 -24
- package/dist/types-ts4.0/ui/link-picker/index.d.ts +5 -0
- package/package.json +9 -5
- package/report.api.md +5 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @atlaskit/link-picker
|
|
2
2
|
|
|
3
|
+
## 1.11.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`2cbf4131640`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2cbf4131640) - Make LinkPicker to accept a custom root component
|
|
8
|
+
And now we offer a new useLinkPickerEditorProps hook
|
|
9
|
+
useForgeSearchProviders hook will now get client from SmartCardContext
|
|
10
|
+
|
|
11
|
+
## 1.10.4
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- [`a3358adb9f1`](https://bitbucket.org/atlassian/atlassian-frontend/commits/a3358adb9f1) - Basic UFO Instrumentation for LinkPicker
|
|
16
|
+
|
|
3
17
|
## 1.10.3
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.ufoExperience = exports.succeedUfoExperience = exports.startUfoExperience = exports.failUfoExperience = exports.abortUfoExperience = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _ufo = require("@atlaskit/ufo");
|
|
13
|
+
|
|
14
|
+
var ufoExperience = {
|
|
15
|
+
mounted: 'component-mounted'
|
|
16
|
+
};
|
|
17
|
+
exports.ufoExperience = ufoExperience;
|
|
18
|
+
var ufoExperiences = (0, _defineProperty2.default)({}, ufoExperience.mounted, new _ufo.ConcurrentExperience(ufoExperience.mounted, {
|
|
19
|
+
type: _ufo.ExperienceTypes.Load,
|
|
20
|
+
performanceType: _ufo.ExperiencePerformanceTypes.PageSegmentLoad,
|
|
21
|
+
platform: {
|
|
22
|
+
component: 'link-picker'
|
|
23
|
+
}
|
|
24
|
+
}));
|
|
25
|
+
|
|
26
|
+
var startUfoExperience = function startUfoExperience(experienceName, id, metadata) {
|
|
27
|
+
var experience = ufoExperiences[experienceName].getInstance(id);
|
|
28
|
+
experience.start();
|
|
29
|
+
|
|
30
|
+
if (metadata) {
|
|
31
|
+
experience.addMetadata(metadata);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
exports.startUfoExperience = startUfoExperience;
|
|
36
|
+
|
|
37
|
+
var succeedUfoExperience = function succeedUfoExperience(experienceName, id, metadata) {
|
|
38
|
+
var experience = ufoExperiences[experienceName].getInstance(id);
|
|
39
|
+
experience.success({
|
|
40
|
+
metadata: metadata
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
exports.succeedUfoExperience = succeedUfoExperience;
|
|
45
|
+
|
|
46
|
+
var failUfoExperience = function failUfoExperience(experienceName, id, metadata) {
|
|
47
|
+
var experience = ufoExperiences[experienceName].getInstance(id);
|
|
48
|
+
experience.failure({
|
|
49
|
+
metadata: metadata
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
exports.failUfoExperience = failUfoExperience;
|
|
54
|
+
|
|
55
|
+
var abortUfoExperience = function abortUfoExperience(experienceName, id, metadata) {
|
|
56
|
+
var experience = ufoExperiences[experienceName].getInstance(id);
|
|
57
|
+
experience.abort({
|
|
58
|
+
metadata: metadata
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
exports.abortUfoExperience = abortUfoExperience;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.useLinkPickerSessionId = exports.SessionContext = exports.LinkPickerSessionProvider = exports.INIT_CONTEXT = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
|
|
12
|
+
var _uuid = require("uuid");
|
|
13
|
+
|
|
14
|
+
var _experiences = require("../../common/analytics/experiences");
|
|
15
|
+
|
|
16
|
+
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); }
|
|
17
|
+
|
|
18
|
+
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; }
|
|
19
|
+
|
|
20
|
+
var INIT_CONTEXT = 'SESSION_UNINITIALIZED';
|
|
21
|
+
exports.INIT_CONTEXT = INIT_CONTEXT;
|
|
22
|
+
var SessionContext = /*#__PURE__*/(0, _react.createContext)(INIT_CONTEXT);
|
|
23
|
+
exports.SessionContext = SessionContext;
|
|
24
|
+
|
|
25
|
+
var useConstructor = function useConstructor(callback) {
|
|
26
|
+
var hasBeenFired = (0, _react.useRef)(false);
|
|
27
|
+
|
|
28
|
+
if (!hasBeenFired.current) {
|
|
29
|
+
callback();
|
|
30
|
+
hasBeenFired.current = true;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return null;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
var LinkPickerSessionProvider = function LinkPickerSessionProvider(_ref) {
|
|
37
|
+
var children = _ref.children;
|
|
38
|
+
|
|
39
|
+
var _useRef = (0, _react.useRef)((0, _uuid.v4)()),
|
|
40
|
+
sessionId = _useRef.current;
|
|
41
|
+
|
|
42
|
+
(0, _react.useEffect)(function () {
|
|
43
|
+
return function () {
|
|
44
|
+
return (0, _experiences.abortUfoExperience)(_experiences.ufoExperience.mounted, sessionId);
|
|
45
|
+
};
|
|
46
|
+
}, [sessionId]);
|
|
47
|
+
useConstructor(function () {
|
|
48
|
+
return (0, _experiences.startUfoExperience)(_experiences.ufoExperience.mounted, sessionId);
|
|
49
|
+
});
|
|
50
|
+
return /*#__PURE__*/_react.default.createElement(SessionContext.Provider, {
|
|
51
|
+
value: sessionId
|
|
52
|
+
}, children);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
exports.LinkPickerSessionProvider = LinkPickerSessionProvider;
|
|
56
|
+
|
|
57
|
+
var useLinkPickerSessionId = function useLinkPickerSessionId() {
|
|
58
|
+
return (0, _react.useContext)(SessionContext);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
exports.useLinkPickerSessionId = useLinkPickerSessionId;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.BaseErrorBoundary = 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"));
|
|
23
|
+
|
|
24
|
+
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); }
|
|
25
|
+
|
|
26
|
+
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; }
|
|
27
|
+
|
|
28
|
+
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); }; }
|
|
29
|
+
|
|
30
|
+
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; } }
|
|
31
|
+
|
|
32
|
+
// eslint-disable-next-line @repo/internal/react/no-class-components
|
|
33
|
+
var BaseErrorBoundary = /*#__PURE__*/function (_Component) {
|
|
34
|
+
(0, _inherits2.default)(BaseErrorBoundary, _Component);
|
|
35
|
+
|
|
36
|
+
var _super = _createSuper(BaseErrorBoundary);
|
|
37
|
+
|
|
38
|
+
function BaseErrorBoundary(props) {
|
|
39
|
+
var _this;
|
|
40
|
+
|
|
41
|
+
(0, _classCallCheck2.default)(this, BaseErrorBoundary);
|
|
42
|
+
_this = _super.call(this, props);
|
|
43
|
+
_this.state = {
|
|
44
|
+
hasError: false
|
|
45
|
+
};
|
|
46
|
+
return _this;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
(0, _createClass2.default)(BaseErrorBoundary, [{
|
|
50
|
+
key: "componentDidCatch",
|
|
51
|
+
value: function componentDidCatch(error, info) {
|
|
52
|
+
var onError = this.props.onError;
|
|
53
|
+
onError && onError(error, info);
|
|
54
|
+
this.setState({
|
|
55
|
+
hasError: true
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}, {
|
|
59
|
+
key: "render",
|
|
60
|
+
value: function render() {
|
|
61
|
+
var _this$props = this.props,
|
|
62
|
+
children = _this$props.children,
|
|
63
|
+
ErrorComponent = _this$props.ErrorComponent;
|
|
64
|
+
var hasError = this.state.hasError;
|
|
65
|
+
|
|
66
|
+
if (hasError && ErrorComponent) {
|
|
67
|
+
return /*#__PURE__*/_react.default.createElement(ErrorComponent, null);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return children;
|
|
71
|
+
}
|
|
72
|
+
}]);
|
|
73
|
+
return BaseErrorBoundary;
|
|
74
|
+
}(_react.Component);
|
|
75
|
+
|
|
76
|
+
exports.BaseErrorBoundary = BaseErrorBoundary;
|
package/dist/cjs/ui/{error-boundary-fallback → error-boundary/error-boundary-fallback}/index.js
RENAMED
|
@@ -13,9 +13,9 @@ var _emptyState = _interopRequireDefault(require("@atlaskit/empty-state"));
|
|
|
13
13
|
|
|
14
14
|
var _reactIntlNext = require("react-intl-next");
|
|
15
15
|
|
|
16
|
-
var _genericErrorSvg = _interopRequireDefault(require("
|
|
16
|
+
var _genericErrorSvg = _interopRequireDefault(require("../../../common/generic-error-svg"));
|
|
17
17
|
|
|
18
|
-
var _styled = require("
|
|
18
|
+
var _styled = require("../../link-picker/styled");
|
|
19
19
|
|
|
20
20
|
/** @jsx jsx */
|
|
21
21
|
var messages = (0, _reactIntlNext.defineMessages)({
|
|
@@ -7,98 +7,50 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports.default =
|
|
10
|
+
exports.default = void 0;
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _analytics = _interopRequireDefault(require("../../analytics.codegen"));
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _constants = require("../../common/constants");
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _experiences = require("../../common/analytics/experiences");
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _sessionProvider = require("../../controllers/session-provider");
|
|
23
23
|
|
|
24
|
-
var
|
|
24
|
+
var _errorBoundaryFallback = require("./error-boundary-fallback");
|
|
25
25
|
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
29
|
-
|
|
30
|
-
var _analytics = _interopRequireDefault(require("../../analytics.codegen"));
|
|
26
|
+
var _errorBoundaryBase = require("./error-boundary-base");
|
|
31
27
|
|
|
32
28
|
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); }
|
|
33
29
|
|
|
34
30
|
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; }
|
|
35
31
|
|
|
36
|
-
function
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
var
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
componentStack: (_analyticsErrorPayloa = (_analyticsErrorPayloa2 = analyticsErrorPayload.info) === null || _analyticsErrorPayloa2 === void 0 ? void 0 : _analyticsErrorPayloa2.componentStack) !== null && _analyticsErrorPayloa !== void 0 ? _analyticsErrorPayloa : ''
|
|
61
|
-
})).fire(channel);
|
|
62
|
-
});
|
|
63
|
-
_this.state = {
|
|
64
|
-
hasError: false
|
|
65
|
-
};
|
|
66
|
-
return _this;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
(0, _createClass2.default)(BaseErrorBoundary, [{
|
|
70
|
-
key: "componentDidCatch",
|
|
71
|
-
value: function componentDidCatch(error, info) {
|
|
72
|
-
var onError = this.props.onError;
|
|
73
|
-
var payload = {
|
|
74
|
-
error: error,
|
|
75
|
-
info: info
|
|
76
|
-
};
|
|
77
|
-
this.fireAnalytics(payload);
|
|
78
|
-
onError && onError(error, info);
|
|
79
|
-
this.setState({
|
|
80
|
-
hasError: true
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
}, {
|
|
84
|
-
key: "render",
|
|
85
|
-
value: function render() {
|
|
86
|
-
var _this$props2 = this.props,
|
|
87
|
-
children = _this$props2.children,
|
|
88
|
-
ErrorComponent = _this$props2.ErrorComponent;
|
|
89
|
-
var hasError = this.state.hasError;
|
|
90
|
-
|
|
91
|
-
if (hasError && ErrorComponent) {
|
|
92
|
-
return /*#__PURE__*/_react.default.createElement(ErrorComponent, null);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
return children;
|
|
96
|
-
}
|
|
97
|
-
}]);
|
|
98
|
-
return BaseErrorBoundary;
|
|
99
|
-
}(_react.Component);
|
|
100
|
-
|
|
101
|
-
exports.BaseErrorBoundary = BaseErrorBoundary;
|
|
102
|
-
var ErrorBoundary = (0, _analyticsNext.withAnalyticsEvents)()(BaseErrorBoundary);
|
|
103
|
-
var _default = ErrorBoundary;
|
|
32
|
+
function ErrorBoundary(_ref) {
|
|
33
|
+
var children = _ref.children,
|
|
34
|
+
createAnalyticsEvent = _ref.createAnalyticsEvent;
|
|
35
|
+
var linkPickerSessionId = (0, _sessionProvider.useLinkPickerSessionId)();
|
|
36
|
+
var handleError = (0, _react.useCallback)(function (error, info) {
|
|
37
|
+
var _window, _window$navigator, _info$componentStack;
|
|
38
|
+
|
|
39
|
+
// Fire Analytics event
|
|
40
|
+
createAnalyticsEvent((0, _analytics.default)('ui.linkPicker.unhandledErrorCaught', {
|
|
41
|
+
browserInfo: ((_window = window) === null || _window === void 0 ? void 0 : (_window$navigator = _window.navigator) === null || _window$navigator === void 0 ? void 0 : _window$navigator.userAgent) || 'unknown',
|
|
42
|
+
error: error.toString(),
|
|
43
|
+
componentStack: (_info$componentStack = info === null || info === void 0 ? void 0 : info.componentStack) !== null && _info$componentStack !== void 0 ? _info$componentStack : ''
|
|
44
|
+
})).fire(_constants.ANALYTICS_CHANNEL); // Fire UFO failed experience
|
|
45
|
+
|
|
46
|
+
(0, _experiences.failUfoExperience)(_experiences.ufoExperience.mounted, linkPickerSessionId);
|
|
47
|
+
}, [createAnalyticsEvent, linkPickerSessionId]);
|
|
48
|
+
return /*#__PURE__*/_react.default.createElement(_errorBoundaryBase.BaseErrorBoundary, {
|
|
49
|
+
onError: handleError,
|
|
50
|
+
ErrorComponent: _errorBoundaryFallback.ErrorBoundaryFallback
|
|
51
|
+
}, children);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
var _default = (0, _analyticsNext.withAnalyticsEvents)()(ErrorBoundary);
|
|
55
|
+
|
|
104
56
|
exports.default = _default;
|
package/dist/cjs/ui/index.js
CHANGED
|
@@ -9,22 +9,22 @@ exports.PACKAGE_DATA = exports.ComposedLinkPicker = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
11
11
|
|
|
12
|
+
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
13
|
+
|
|
12
14
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
15
|
|
|
14
16
|
var _reactLooselyLazy = require("react-loosely-lazy");
|
|
15
17
|
|
|
16
|
-
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
17
|
-
|
|
18
18
|
var _constants = require("../common/constants");
|
|
19
19
|
|
|
20
20
|
var _version = require("../version.json");
|
|
21
21
|
|
|
22
22
|
var _errorBoundary = _interopRequireDefault(require("./error-boundary"));
|
|
23
23
|
|
|
24
|
-
var _errorBoundaryFallback = require("./error-boundary-fallback");
|
|
25
|
-
|
|
26
24
|
var _loaderFallback = require("./loader-fallback");
|
|
27
25
|
|
|
26
|
+
var _sessionProvider = require("../controllers/session-provider");
|
|
27
|
+
|
|
28
28
|
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); }
|
|
29
29
|
|
|
30
30
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || (0, _typeof2.default)(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; }
|
|
@@ -44,11 +44,8 @@ var LazyLinkPicker = (0, _reactLooselyLazy.lazyForPaint)(function () {
|
|
|
44
44
|
var ComposedLinkPicker = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
45
45
|
return /*#__PURE__*/_react.default.createElement(_analyticsNext.AnalyticsContext, {
|
|
46
46
|
data: PACKAGE_DATA
|
|
47
|
-
}, /*#__PURE__*/_react.default.createElement(_errorBoundary.default, {
|
|
48
|
-
channel: _constants.ANALYTICS_CHANNEL,
|
|
49
|
-
ErrorComponent: _errorBoundaryFallback.ErrorBoundaryFallback
|
|
50
|
-
}, /*#__PURE__*/_react.default.createElement(_reactLooselyLazy.LazySuspense, {
|
|
47
|
+
}, /*#__PURE__*/_react.default.createElement(_sessionProvider.LinkPickerSessionProvider, null, /*#__PURE__*/_react.default.createElement(_errorBoundary.default, null, /*#__PURE__*/_react.default.createElement(_reactLooselyLazy.LazySuspense, {
|
|
51
48
|
fallback: _loaderFallback.LoaderFallback
|
|
52
|
-
}, /*#__PURE__*/_react.default.createElement(LazyLinkPicker, props))));
|
|
49
|
+
}, /*#__PURE__*/_react.default.createElement(LazyLinkPicker, props)))));
|
|
53
50
|
});
|
|
54
51
|
exports.ComposedLinkPicker = ComposedLinkPicker;
|
|
@@ -9,6 +9,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
});
|
|
10
10
|
exports.testIds = exports.default = exports.RECENT_SEARCH_LIST_SIZE = void 0;
|
|
11
11
|
|
|
12
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
13
|
+
|
|
12
14
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
15
|
|
|
14
16
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
@@ -61,6 +63,12 @@ var _formFooter = _interopRequireWildcard(require("./form-footer"));
|
|
|
61
63
|
|
|
62
64
|
var _utils = require("./utils");
|
|
63
65
|
|
|
66
|
+
var _experiences = require("../../common/analytics/experiences");
|
|
67
|
+
|
|
68
|
+
var _sessionProvider = require("../../controllers/session-provider");
|
|
69
|
+
|
|
70
|
+
var _excluded = ["component"];
|
|
71
|
+
|
|
64
72
|
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); }
|
|
65
73
|
|
|
66
74
|
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; }
|
|
@@ -73,6 +81,7 @@ var RECENT_SEARCH_LIST_SIZE = 5;
|
|
|
73
81
|
exports.RECENT_SEARCH_LIST_SIZE = RECENT_SEARCH_LIST_SIZE;
|
|
74
82
|
|
|
75
83
|
var testIds = _objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
84
|
+
linkPickerRoot: 'link-picker-root',
|
|
76
85
|
linkPicker: 'link-picker',
|
|
77
86
|
urlInputField: 'link-url',
|
|
78
87
|
textInputField: 'link-text',
|
|
@@ -173,6 +182,10 @@ function LinkPicker(_ref) {
|
|
|
173
182
|
trackAttribute = _useLinkPickerAnalyti.trackAttribute,
|
|
174
183
|
getAttributes = _useLinkPickerAnalyti.getAttributes;
|
|
175
184
|
|
|
185
|
+
var linkPickerSessionId = (0, _sessionProvider.useLinkPickerSessionId)();
|
|
186
|
+
(0, _react.useLayoutEffect)(function () {
|
|
187
|
+
(0, _experiences.succeedUfoExperience)(_experiences.ufoExperience.mounted, linkPickerSessionId);
|
|
188
|
+
}, [linkPickerSessionId]);
|
|
176
189
|
(0, _react.useEffect)(function () {
|
|
177
190
|
// Anything in here is fired on component mount.
|
|
178
191
|
var event = createAnalyticsEvent((0, _analytics.default)('ui.inlineDialog.viewed.linkPicker', {}));
|
|
@@ -424,6 +437,20 @@ function LinkPicker(_ref) {
|
|
|
424
437
|
}));
|
|
425
438
|
}
|
|
426
439
|
|
|
427
|
-
var
|
|
440
|
+
var DefaultRootComponent = function DefaultRootComponent(_ref2) {
|
|
441
|
+
var children = _ref2.children;
|
|
442
|
+
return (0, _react2.jsx)("div", {
|
|
443
|
+
"data-testid": testIds.linkPickerRoot
|
|
444
|
+
}, children);
|
|
445
|
+
};
|
|
446
|
+
|
|
447
|
+
var _default = (0, _analytics2.withLinkPickerAnalyticsContext)( /*#__PURE__*/(0, _react.memo)(function (_ref3) {
|
|
448
|
+
var component = _ref3.component,
|
|
449
|
+
props = (0, _objectWithoutProperties2.default)(_ref3, _excluded);
|
|
450
|
+
var RootComponent = component !== null && component !== void 0 ? component : DefaultRootComponent;
|
|
451
|
+
return (0, _react2.jsx)(RootComponent, (0, _extends2.default)({}, props, {
|
|
452
|
+
"data-testid": testIds.linkPickerRoot
|
|
453
|
+
}), (0, _react2.jsx)(LinkPicker, props));
|
|
454
|
+
}));
|
|
428
455
|
|
|
429
456
|
exports.default = _default;
|
package/dist/cjs/version.json
CHANGED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ConcurrentExperience, ExperiencePerformanceTypes, ExperienceTypes } from '@atlaskit/ufo';
|
|
2
|
+
export const ufoExperience = {
|
|
3
|
+
mounted: 'component-mounted'
|
|
4
|
+
};
|
|
5
|
+
const ufoExperiences = {
|
|
6
|
+
[ufoExperience.mounted]: new ConcurrentExperience(ufoExperience.mounted, {
|
|
7
|
+
type: ExperienceTypes.Load,
|
|
8
|
+
performanceType: ExperiencePerformanceTypes.PageSegmentLoad,
|
|
9
|
+
platform: {
|
|
10
|
+
component: 'link-picker'
|
|
11
|
+
}
|
|
12
|
+
})
|
|
13
|
+
};
|
|
14
|
+
export const startUfoExperience = (experienceName, id, metadata) => {
|
|
15
|
+
const experience = ufoExperiences[experienceName].getInstance(id);
|
|
16
|
+
experience.start();
|
|
17
|
+
|
|
18
|
+
if (metadata) {
|
|
19
|
+
experience.addMetadata(metadata);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
export const succeedUfoExperience = (experienceName, id, metadata) => {
|
|
23
|
+
const experience = ufoExperiences[experienceName].getInstance(id);
|
|
24
|
+
experience.success({
|
|
25
|
+
metadata
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
export const failUfoExperience = (experienceName, id, metadata) => {
|
|
29
|
+
const experience = ufoExperiences[experienceName].getInstance(id);
|
|
30
|
+
experience.failure({
|
|
31
|
+
metadata
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
export const abortUfoExperience = (experienceName, id, metadata) => {
|
|
35
|
+
const experience = ufoExperiences[experienceName].getInstance(id);
|
|
36
|
+
experience.abort({
|
|
37
|
+
metadata
|
|
38
|
+
});
|
|
39
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React, { createContext, useContext, useEffect, useRef } from 'react';
|
|
2
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
3
|
+
import { abortUfoExperience, startUfoExperience, ufoExperience } from '../../common/analytics/experiences';
|
|
4
|
+
export const INIT_CONTEXT = 'SESSION_UNINITIALIZED';
|
|
5
|
+
export const SessionContext = /*#__PURE__*/createContext(INIT_CONTEXT);
|
|
6
|
+
|
|
7
|
+
const useConstructor = callback => {
|
|
8
|
+
const hasBeenFired = useRef(false);
|
|
9
|
+
|
|
10
|
+
if (!hasBeenFired.current) {
|
|
11
|
+
callback();
|
|
12
|
+
hasBeenFired.current = true;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return null;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const LinkPickerSessionProvider = ({
|
|
19
|
+
children
|
|
20
|
+
}) => {
|
|
21
|
+
const {
|
|
22
|
+
current: sessionId
|
|
23
|
+
} = useRef(uuidv4());
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
return () => abortUfoExperience(ufoExperience.mounted, sessionId);
|
|
26
|
+
}, [sessionId]);
|
|
27
|
+
useConstructor(() => startUfoExperience(ufoExperience.mounted, sessionId));
|
|
28
|
+
return /*#__PURE__*/React.createElement(SessionContext.Provider, {
|
|
29
|
+
value: sessionId
|
|
30
|
+
}, children);
|
|
31
|
+
};
|
|
32
|
+
export const useLinkPickerSessionId = () => useContext(SessionContext);
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React, { Component } from 'react';
|
|
2
|
+
// eslint-disable-next-line @repo/internal/react/no-class-components
|
|
3
|
+
export class BaseErrorBoundary extends Component {
|
|
4
|
+
constructor(props) {
|
|
5
|
+
super(props);
|
|
6
|
+
this.state = {
|
|
7
|
+
hasError: false
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
componentDidCatch(error, info) {
|
|
12
|
+
const {
|
|
13
|
+
onError
|
|
14
|
+
} = this.props;
|
|
15
|
+
onError && onError(error, info);
|
|
16
|
+
this.setState({
|
|
17
|
+
hasError: true
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
render() {
|
|
22
|
+
const {
|
|
23
|
+
children,
|
|
24
|
+
ErrorComponent
|
|
25
|
+
} = this.props;
|
|
26
|
+
const {
|
|
27
|
+
hasError
|
|
28
|
+
} = this.state;
|
|
29
|
+
|
|
30
|
+
if (hasError && ErrorComponent) {
|
|
31
|
+
return /*#__PURE__*/React.createElement(ErrorComponent, null);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return children;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
}
|
package/dist/es2019/ui/{error-boundary-fallback → error-boundary/error-boundary-fallback}/index.js
RENAMED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { jsx } from '@emotion/react';
|
|
3
3
|
import EmptyState from '@atlaskit/empty-state';
|
|
4
4
|
import { defineMessages, useIntl } from 'react-intl-next';
|
|
5
|
-
import GenericErrorSVG from '
|
|
6
|
-
import { rootContainerStyles } from '
|
|
5
|
+
import GenericErrorSVG from '../../../common/generic-error-svg';
|
|
6
|
+
import { rootContainerStyles } from '../../link-picker/styled';
|
|
7
7
|
const messages = defineMessages({
|
|
8
8
|
heading: {
|
|
9
9
|
defaultMessage: 'Something went wrong!',
|