@atlaskit/reactions 21.1.0 → 21.2.2

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.
Files changed (74) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/analytics/index.js +11 -1
  3. package/dist/cjs/analytics/ufo.js +73 -0
  4. package/dist/cjs/components/ReactionPicker.js +17 -4
  5. package/dist/cjs/components/UfoErrorBoundary.js +68 -0
  6. package/dist/cjs/components/index.js +9 -1
  7. package/dist/cjs/containers/ConnectedReactionPicker.js +44 -0
  8. package/dist/cjs/containers/ConnectedReactionsView.js +131 -0
  9. package/dist/cjs/containers/index.js +4 -6
  10. package/dist/cjs/index.js +11 -3
  11. package/dist/cjs/{reaction-store → store}/ReactionConsumer.js +0 -0
  12. package/dist/cjs/{reaction-store → store}/ReactionsStore.js +63 -14
  13. package/dist/cjs/{reaction-store → store}/batched.js +0 -0
  14. package/dist/cjs/{reaction-store → store}/index.js +0 -0
  15. package/dist/cjs/{reaction-store → store}/utils.js +0 -0
  16. package/dist/cjs/version.json +1 -1
  17. package/dist/es2019/analytics/index.js +2 -0
  18. package/dist/es2019/analytics/ufo.js +62 -0
  19. package/dist/es2019/components/ReactionPicker.js +13 -3
  20. package/dist/es2019/components/UfoErrorBoundary.js +13 -0
  21. package/dist/es2019/components/index.js +2 -1
  22. package/dist/es2019/containers/ConnectedReactionPicker.js +27 -0
  23. package/dist/es2019/containers/ConnectedReactionsView.js +112 -0
  24. package/dist/es2019/containers/index.js +2 -2
  25. package/dist/es2019/index.js +2 -1
  26. package/dist/es2019/{reaction-store → store}/ReactionConsumer.js +0 -0
  27. package/dist/es2019/{reaction-store → store}/ReactionsStore.js +59 -13
  28. package/dist/es2019/{reaction-store → store}/batched.js +0 -0
  29. package/dist/es2019/{reaction-store → store}/index.js +0 -0
  30. package/dist/es2019/{reaction-store → store}/utils.js +0 -0
  31. package/dist/es2019/version.json +1 -1
  32. package/dist/esm/analytics/index.js +2 -0
  33. package/dist/esm/analytics/ufo.js +62 -0
  34. package/dist/esm/components/ReactionPicker.js +13 -3
  35. package/dist/esm/components/UfoErrorBoundary.js +54 -0
  36. package/dist/esm/components/index.js +2 -1
  37. package/dist/esm/containers/ConnectedReactionPicker.js +29 -0
  38. package/dist/esm/containers/ConnectedReactionsView.js +108 -0
  39. package/dist/esm/containers/index.js +2 -2
  40. package/dist/esm/index.js +2 -1
  41. package/dist/esm/{reaction-store → store}/ReactionConsumer.js +0 -0
  42. package/dist/esm/{reaction-store → store}/ReactionsStore.js +61 -13
  43. package/dist/esm/{reaction-store → store}/batched.js +0 -0
  44. package/dist/esm/{reaction-store → store}/index.js +0 -0
  45. package/dist/esm/{reaction-store → store}/utils.js +0 -0
  46. package/dist/esm/version.json +1 -1
  47. package/dist/types/analytics/index.d.ts +1 -0
  48. package/dist/types/analytics/ufo.d.ts +33 -0
  49. package/dist/types/components/ReactionPicker.d.ts +2 -1
  50. package/dist/types/components/Reactions.d.ts +7 -5
  51. package/dist/types/components/UfoErrorBoundary.d.ts +8 -0
  52. package/dist/types/components/index.d.ts +2 -0
  53. package/dist/types/containers/ConnectedReactionPicker.d.ts +10 -0
  54. package/dist/types/containers/ConnectedReactionsView.d.ts +19 -0
  55. package/dist/types/containers/index.d.ts +2 -2
  56. package/dist/types/index.d.ts +3 -2
  57. package/dist/types/store/ReactionConsumer.d.ts +29 -0
  58. package/dist/types/{reaction-store → store}/ReactionsStore.d.ts +11 -7
  59. package/dist/types/{reaction-store → store}/batched.d.ts +0 -0
  60. package/dist/types/{reaction-store → store}/index.d.ts +0 -0
  61. package/dist/types/{reaction-store → store}/utils.d.ts +0 -0
  62. package/dist/types/types/Actions.d.ts +6 -0
  63. package/dist/types/types/index.d.ts +1 -1
  64. package/docs/0-intro.tsx +1 -1
  65. package/package.json +5 -3
  66. package/dist/cjs/containers/ReactionsContainer.js +0 -142
  67. package/dist/cjs/containers/ReactionsPickerContainer.js +0 -76
  68. package/dist/es2019/containers/ReactionsContainer.js +0 -96
  69. package/dist/es2019/containers/ReactionsPickerContainer.js +0 -26
  70. package/dist/esm/containers/ReactionsContainer.js +0 -125
  71. package/dist/esm/containers/ReactionsPickerContainer.js +0 -62
  72. package/dist/types/containers/ReactionsContainer.d.ts +0 -22
  73. package/dist/types/containers/ReactionsPickerContainer.d.ts +0 -18
  74. package/dist/types/reaction-store/ReactionConsumer.d.ts +0 -32
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @atlaskit/reactions
2
2
 
3
+ ## 21.2.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [`58a563ece8f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/58a563ece8f) - Add ComponentName as part of the exported enum collection for easier consumption inside products
8
+
9
+ ## 21.2.1
10
+
11
+ ### Patch Changes
12
+
13
+ - [`783c8c02335`](https://bitbucket.org/atlassian/atlassian-frontend/commits/783c8c02335) - Update the reactions rendered UFO type
14
+
15
+ ## 21.2.0
16
+
17
+ ### Minor Changes
18
+
19
+ - [`ed9ab4d82a3`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ed9ab4d82a3) - Adds "reactions-rendered", "reactions-picker-opened", "reaction-added" and "reaction-removed" to UFO experiences
20
+
3
21
  ## 21.1.0
4
22
 
5
23
  ### Minor Changes
@@ -2,10 +2,12 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
- exports.createRestSucceededEvent = exports.createRestFailedEvent = exports.createReactionsRenderedEvent = exports.createReactionSelectionEvent = exports.createReactionHoveredEvent = exports.createReactionClickedEvent = exports.createPickerMoreClickedEvent = exports.createPickerCancelledEvent = exports.createPickerButtonClickedEvent = exports.createAndFireSafe = exports.createAndFireEventInElementsChannel = void 0;
10
+ exports.createRestSucceededEvent = exports.createRestFailedEvent = exports.createReactionsRenderedEvent = exports.createReactionSelectionEvent = exports.createReactionHoveredEvent = exports.createReactionClickedEvent = exports.createPickerMoreClickedEvent = exports.createPickerCancelledEvent = exports.createPickerButtonClickedEvent = exports.createAndFireSafe = exports.createAndFireEventInElementsChannel = exports.UFO = void 0;
9
11
 
10
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
13
 
@@ -15,6 +17,14 @@ var _analyticsGasTypes = require("@atlaskit/analytics-gas-types");
15
17
 
16
18
  var _version = require("../version.json");
17
19
 
20
+ var _UFO = _interopRequireWildcard(require("./ufo"));
21
+
22
+ exports.UFO = _UFO;
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
+
18
28
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
29
 
20
30
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ReactionsRendered = exports.ReactionsRemove = exports.ReactionsAdd = exports.PickerRender = exports.ExperienceName = exports.ComponentName = void 0;
7
+
8
+ var _ufo = require("@atlaskit/ufo");
9
+
10
+ /**
11
+ * Helper method for create the config type for an individual/Concurrent experience
12
+ * @param componentName
13
+ */
14
+ var createExperienceConfig = function createExperienceConfig(componentName, type, performanceType) {
15
+ return {
16
+ platform: {
17
+ component: componentName
18
+ },
19
+ type: type,
20
+ performanceType: performanceType
21
+ };
22
+ };
23
+ /**
24
+ * Types of experiences
25
+ */
26
+
27
+
28
+ var ExperienceName;
29
+ /**
30
+ * UFO types of components been instrumented
31
+ */
32
+
33
+ exports.ExperienceName = ExperienceName;
34
+
35
+ (function (ExperienceName) {
36
+ ExperienceName["REACTIONS_RENDERED"] = "reactions-rendered";
37
+ ExperienceName["PICKER_OPENED"] = "reactions-picker-opened";
38
+ ExperienceName["REACTION_ADDED"] = "reaction-added";
39
+ ExperienceName["REACTION_REMOVED"] = "reaction-removed";
40
+ })(ExperienceName || (exports.ExperienceName = ExperienceName = {}));
41
+
42
+ var ComponentName;
43
+ /**
44
+ * Experience when the emoji picker is opened
45
+ */
46
+
47
+ exports.ComponentName = ComponentName;
48
+
49
+ (function (ComponentName) {
50
+ ComponentName["PICKER_RENDERED"] = "reactions-picker";
51
+ ComponentName["REACTIONS"] = "reactions-list";
52
+ })(ComponentName || (exports.ComponentName = ComponentName = {}));
53
+
54
+ var PickerRender = new _ufo.UFOExperience(ExperienceName.PICKER_OPENED, createExperienceConfig(ComponentName.PICKER_RENDERED, _ufo.ExperienceTypes.Experience, _ufo.ExperiencePerformanceTypes.InlineResult));
55
+ /**
56
+ * Experience when the list of reactions gets rendered
57
+ */
58
+
59
+ exports.PickerRender = PickerRender;
60
+ var ReactionsRendered = new _ufo.ConcurrentExperience(ExperienceName.REACTIONS_RENDERED, createExperienceConfig(ComponentName.REACTIONS, _ufo.ExperienceTypes.Load, _ufo.ExperiencePerformanceTypes.PageSegmentLoad));
61
+ /**
62
+ * Experience when a reaction emoji gets added
63
+ */
64
+
65
+ exports.ReactionsRendered = ReactionsRendered;
66
+ var ReactionsAdd = new _ufo.ConcurrentExperience(ExperienceName.REACTION_ADDED, createExperienceConfig(ComponentName.REACTIONS, _ufo.ExperienceTypes.Experience, _ufo.ExperiencePerformanceTypes.InlineResult));
67
+ /**
68
+ * Experience when a reaction emoji gets removed/decrement
69
+ */
70
+
71
+ exports.ReactionsAdd = ReactionsAdd;
72
+ var ReactionsRemove = new _ufo.ConcurrentExperience(ExperienceName.REACTION_REMOVED, createExperienceConfig(ComponentName.REACTIONS, _ufo.ExperienceTypes.Experience, _ufo.ExperiencePerformanceTypes.InlineResult));
73
+ exports.ReactionsRemove = ReactionsRemove;
@@ -23,6 +23,10 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
23
23
 
24
24
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
25
 
26
+ var _react = _interopRequireWildcard(require("react"));
27
+
28
+ var _reactDom = _interopRequireDefault(require("react-dom"));
29
+
26
30
  var _core = require("@emotion/core");
27
31
 
28
32
  var _picker = require("@atlaskit/emoji/picker");
@@ -35,14 +39,12 @@ var _colors = require("@atlaskit/theme/colors");
35
39
 
36
40
  var _tokens = require("@atlaskit/tokens");
37
41
 
38
- var _react = _interopRequireWildcard(require("react"));
39
-
40
- var _reactDom = _interopRequireDefault(require("react-dom"));
41
-
42
42
  var _Selector = require("./Selector");
43
43
 
44
44
  var _Trigger = require("./Trigger");
45
45
 
46
+ var _analytics = require("../analytics");
47
+
46
48
  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); }
47
49
 
48
50
  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; }
@@ -132,6 +134,9 @@ var ReactionPicker = /*#__PURE__*/function (_PureComponent) {
132
134
  _this.close(emoji.id);
133
135
  });
134
136
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onTriggerClick", function () {
137
+ // ufo start reaction experience
138
+ _analytics.UFO.PickerRender.start();
139
+
135
140
  if (_this.props.onOpen) {
136
141
  _this.props.onOpen();
137
142
  }
@@ -139,6 +144,9 @@ var ReactionPicker = /*#__PURE__*/function (_PureComponent) {
139
144
  _this.setState({
140
145
  isOpen: !_this.state.isOpen,
141
146
  showFullPicker: false
147
+ }, function () {
148
+ // ufo add reaction success
149
+ _analytics.UFO.PickerRender.success();
142
150
  });
143
151
  });
144
152
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "popperModifiers", [{
@@ -180,6 +188,8 @@ var ReactionPicker = /*#__PURE__*/function (_PureComponent) {
180
188
  key: "componentWillUnmount",
181
189
  value: function componentWillUnmount() {
182
190
  document.removeEventListener('click', this.handleClickOutside);
191
+
192
+ _analytics.UFO.PickerRender.abort();
183
193
  }
184
194
  }, {
185
195
  key: "close",
@@ -187,6 +197,9 @@ var ReactionPicker = /*#__PURE__*/function (_PureComponent) {
187
197
  this.setState({
188
198
  isOpen: false,
189
199
  showFullPicker: false
200
+ }, function () {
201
+ // ufo abort reaction experience
202
+ _analytics.UFO.PickerRender.abort();
190
203
  });
191
204
  }
192
205
  }, {
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.UfoErrorBoundary = void 0;
9
+
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+
16
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
+
18
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
+
20
+ var _react = _interopRequireDefault(require("react"));
21
+
22
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
23
+
24
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
25
+
26
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
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
+ var UfoErrorBoundary = /*#__PURE__*/function (_React$Component) {
33
+ (0, _inherits2.default)(UfoErrorBoundary, _React$Component);
34
+
35
+ var _super = _createSuper(UfoErrorBoundary);
36
+
37
+ function UfoErrorBoundary() {
38
+ (0, _classCallCheck2.default)(this, UfoErrorBoundary);
39
+ return _super.apply(this, arguments);
40
+ }
41
+
42
+ (0, _createClass2.default)(UfoErrorBoundary, [{
43
+ key: "componentDidCatch",
44
+ value: function componentDidCatch() {
45
+ var _iterator = _createForOfIteratorHelper(this.props.experiences),
46
+ _step;
47
+
48
+ try {
49
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
50
+ var e = _step.value;
51
+ e.failure();
52
+ }
53
+ } catch (err) {
54
+ _iterator.e(err);
55
+ } finally {
56
+ _iterator.f();
57
+ }
58
+ }
59
+ }, {
60
+ key: "render",
61
+ value: function render() {
62
+ return this.props.children;
63
+ }
64
+ }]);
65
+ return UfoErrorBoundary;
66
+ }(_react.default.Component);
67
+
68
+ exports.UfoErrorBoundary = UfoErrorBoundary;
@@ -21,9 +21,17 @@ Object.defineProperty(exports, "Reactions", {
21
21
  return _Reactions.Reactions;
22
22
  }
23
23
  });
24
+ Object.defineProperty(exports, "UfoErrorBoundary", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _UfoErrorBoundary.UfoErrorBoundary;
28
+ }
29
+ });
24
30
 
25
31
  var _Reaction = require("./Reaction");
26
32
 
27
33
  var _ReactionPicker = require("./ReactionPicker");
28
34
 
29
- var _Reactions = require("./Reactions");
35
+ var _Reactions = require("./Reactions");
36
+
37
+ var _UfoErrorBoundary = require("./UfoErrorBoundary");
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.ConnectedReactionPicker = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _components = require("../components");
15
+
16
+ var _ReactionConsumer = require("../store/ReactionConsumer");
17
+
18
+ var _analytics = require("../analytics");
19
+
20
+ /**
21
+ * UFO Instance for picker
22
+ */
23
+ var ConnectedReactionPicker = function ConnectedReactionPicker(props) {
24
+ var renderChild = function renderChild(innerProps) {
25
+ return /*#__PURE__*/_react.default.createElement(_components.ReactionPicker, (0, _extends2.default)({}, props, innerProps));
26
+ };
27
+
28
+ var actionsMapper = function actionsMapper(actions) {
29
+ return {
30
+ onSelection: function onSelection(emojiId) {
31
+ actions.addReaction(props.containerAri, props.ari, emojiId);
32
+ }
33
+ };
34
+ };
35
+
36
+ return /*#__PURE__*/_react.default.createElement(_components.UfoErrorBoundary, {
37
+ experiences: [_analytics.UFO.PickerRender]
38
+ }, /*#__PURE__*/_react.default.createElement(_ReactionConsumer.ReactionConsumer, {
39
+ store: props.store,
40
+ actionsMapper: actionsMapper
41
+ }, renderChild));
42
+ };
43
+
44
+ exports.ConnectedReactionPicker = ConnectedReactionPicker;
@@ -0,0 +1,131 @@
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.ConnectedReactionsView = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
15
+
16
+ var _analyticsNamespacedContext = require("@atlaskit/analytics-namespaced-context");
17
+
18
+ var _analyticsNext = require("@atlaskit/analytics-next");
19
+
20
+ var _components = require("../components");
21
+
22
+ var _ReactionConsumer = require("../store/ReactionConsumer");
23
+
24
+ var _ReactionStatus = require("../types/ReactionStatus");
25
+
26
+ var _ReactionsStore = require("../store/ReactionsStore");
27
+
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
+
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; }
31
+
32
+ var ReactionsView = function ReactionsView(props) {
33
+ // // compose a UFO experience object
34
+ var experienceInstance = (0, _react.useRef)();
35
+ var ari = props.ari,
36
+ createAnalyticsEvent = props.createAnalyticsEvent,
37
+ store = props.store;
38
+ (0, _react.useEffect)(function () {
39
+ experienceInstance.current = _ReactionsStore.ufoExperiences.render.getInstance(ari);
40
+ }, [ari]);
41
+ (0, _react.useEffect)(function () {
42
+ Promise.resolve(store).then(function (_store) {
43
+ if (_store.setCreateAnalyticsEvent && createAnalyticsEvent) {
44
+ _store.setCreateAnalyticsEvent(createAnalyticsEvent);
45
+ }
46
+ });
47
+ }, [createAnalyticsEvent, store]); // abort when component gets unmounted
48
+
49
+ (0, _react.useEffect)(function () {
50
+ return function () {
51
+ var _experienceInstance$c;
52
+
53
+ (_experienceInstance$c = experienceInstance.current) === null || _experienceInstance$c === void 0 ? void 0 : _experienceInstance$c.abort();
54
+ };
55
+ }, [experienceInstance]);
56
+
57
+ var renderChildren = function renderChildren(innerProps) {
58
+ var containerAri = props.containerAri,
59
+ ari = props.ari;
60
+ return /*#__PURE__*/_react.default.createElement(_analyticsNamespacedContext.FabricElementsAnalyticsContext, {
61
+ data: {
62
+ containerAri: containerAri,
63
+ ari: ari
64
+ }
65
+ }, /*#__PURE__*/_react.default.createElement(_components.Reactions, (0, _extends2.default)({
66
+ key: "".concat(props.containerAri, "|").concat(props.ari)
67
+ }, props, innerProps)));
68
+ };
69
+
70
+ var stateMapper = function stateMapper(state) {
71
+ var containerAri = props.containerAri,
72
+ ari = props.ari;
73
+ var reactionsState = state && state.reactions["".concat(containerAri, "|").concat(ari)];
74
+
75
+ if (!state || !reactionsState) {
76
+ return {
77
+ status: _ReactionStatus.ReactionStatus.notLoaded,
78
+ reactions: []
79
+ };
80
+ }
81
+
82
+ switch (reactionsState.status) {
83
+ case _ReactionStatus.ReactionStatus.ready:
84
+ return {
85
+ reactions: reactionsState.reactions,
86
+ status: reactionsState.status,
87
+ flash: state.flash["".concat(containerAri, "|").concat(ari)]
88
+ };
89
+
90
+ case _ReactionStatus.ReactionStatus.error:
91
+ return {
92
+ status: _ReactionStatus.ReactionStatus.error,
93
+ reactions: []
94
+ };
95
+
96
+ default:
97
+ return {
98
+ status: _ReactionStatus.ReactionStatus.loading,
99
+ reactions: []
100
+ };
101
+ }
102
+ };
103
+
104
+ var actionsMapper = function actionsMapper(actions) {
105
+ return {
106
+ loadReaction: function loadReaction() {
107
+ actions.getReactions(props.containerAri, props.ari);
108
+ },
109
+ onReactionClick: function onReactionClick(emojiId) {
110
+ actions.toggleReaction(props.containerAri, props.ari, emojiId);
111
+ },
112
+ onReactionHover: function onReactionHover(emojiId) {
113
+ actions.getDetailedReaction(props.containerAri, props.ari, emojiId);
114
+ },
115
+ onSelection: function onSelection(emojiId) {
116
+ actions.addReaction(props.containerAri, props.ari, emojiId);
117
+ }
118
+ };
119
+ };
120
+
121
+ return /*#__PURE__*/_react.default.createElement(_components.UfoErrorBoundary, {
122
+ experiences: experienceInstance.current ? [experienceInstance.current] : []
123
+ }, /*#__PURE__*/_react.default.createElement(_ReactionConsumer.ReactionConsumer, {
124
+ store: props.store,
125
+ actionsMapper: actionsMapper,
126
+ stateMapper: stateMapper
127
+ }, renderChildren));
128
+ };
129
+
130
+ var ConnectedReactionsView = (0, _analyticsNext.withAnalyticsEvents)()(ReactionsView);
131
+ exports.ConnectedReactionsView = ConnectedReactionsView;
@@ -1,23 +1,21 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
6
  Object.defineProperty(exports, "ConnectedReactionPicker", {
9
7
  enumerable: true,
10
8
  get: function get() {
11
- return _ReactionsPickerContainer.default;
9
+ return _ConnectedReactionPicker.ConnectedReactionPicker;
12
10
  }
13
11
  });
14
12
  Object.defineProperty(exports, "ConnectedReactionsView", {
15
13
  enumerable: true,
16
14
  get: function get() {
17
- return _ReactionsContainer.default;
15
+ return _ConnectedReactionsView.ConnectedReactionsView;
18
16
  }
19
17
  });
20
18
 
21
- var _ReactionsPickerContainer = _interopRequireDefault(require("./ReactionsPickerContainer"));
19
+ var _ConnectedReactionPicker = require("./ConnectedReactionPicker");
22
20
 
23
- var _ReactionsContainer = _interopRequireDefault(require("./ReactionsContainer"));
21
+ var _ConnectedReactionsView = require("./ConnectedReactionsView");
package/dist/cjs/index.js CHANGED
@@ -18,7 +18,7 @@ Object.defineProperty(exports, "ConnectedReactionsView", {
18
18
  Object.defineProperty(exports, "MemoryReactionsStore", {
19
19
  enumerable: true,
20
20
  get: function get() {
21
- return _reactionStore.MemoryReactionsStore;
21
+ return _store.MemoryReactionsStore;
22
22
  }
23
23
  });
24
24
  Object.defineProperty(exports, "Reaction", {
@@ -30,7 +30,7 @@ Object.defineProperty(exports, "Reaction", {
30
30
  Object.defineProperty(exports, "ReactionConsumer", {
31
31
  enumerable: true,
32
32
  get: function get() {
33
- return _reactionStore.ReactionConsumer;
33
+ return _store.ReactionConsumer;
34
34
  }
35
35
  });
36
36
  Object.defineProperty(exports, "ReactionPicker", {
@@ -51,6 +51,14 @@ Object.defineProperty(exports, "Reactions", {
51
51
  return _components.Reactions;
52
52
  }
53
53
  });
54
+ Object.defineProperty(exports, "UFO", {
55
+ enumerable: true,
56
+ get: function get() {
57
+ return _analytics.UFO;
58
+ }
59
+ });
60
+
61
+ var _analytics = require("./analytics");
54
62
 
55
63
  var _client = require("./client");
56
64
 
@@ -58,4 +66,4 @@ var _components = require("./components");
58
66
 
59
67
  var _containers = require("./containers");
60
68
 
61
- var _reactionStore = require("./reaction-store");
69
+ var _store = require("./store");