@atlaskit/analytics-next 8.3.0 → 8.3.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.
Files changed (31) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/cjs/components/AnalyticsErrorBoundary.js +2 -2
  3. package/dist/cjs/events/AnalyticsEvent.js +3 -3
  4. package/dist/cjs/events/UIAnalyticsEvent.js +1 -1
  5. package/dist/cjs/hocs/withAnalyticsContext.js +5 -3
  6. package/dist/cjs/hooks/usePatchedProps.js +2 -2
  7. package/dist/cjs/hooks/usePlatformLeafEventHandler.js +2 -2
  8. package/dist/cjs/hooks/usePlatformLeafSyntheticEventHandler.js +2 -2
  9. package/dist/cjs/index.js +24 -24
  10. package/dist/cjs/utils/cleanProps.js +3 -1
  11. package/dist/cjs/version.json +1 -1
  12. package/dist/es2019/version.json +1 -1
  13. package/dist/esm/components/AnalyticsErrorBoundary.js +2 -2
  14. package/dist/esm/events/AnalyticsEvent.js +2 -2
  15. package/dist/esm/hocs/withAnalyticsContext.js +4 -3
  16. package/dist/esm/hooks/usePatchedProps.js +2 -2
  17. package/dist/esm/hooks/usePlatformLeafEventHandler.js +2 -2
  18. package/dist/esm/hooks/usePlatformLeafSyntheticEventHandler.js +2 -2
  19. package/dist/esm/utils/cleanProps.js +2 -1
  20. package/dist/esm/version.json +1 -1
  21. package/dist/types/components/AnalyticsContext/LegacyAnalyticsContext.d.ts +4 -4
  22. package/dist/types/components/AnalyticsErrorBoundary.d.ts +1 -1
  23. package/dist/types/components/AnalyticsListener/LegacyAnalyticsListener.d.ts +4 -4
  24. package/dist/types/hocs/withAnalyticsContext.d.ts +22 -1
  25. package/dist/types/hocs/withAnalyticsEvents.d.ts +22 -1
  26. package/dist/types/hooks/usePatchedProps.d.ts +1 -1
  27. package/dist/types/performance/examples.d.ts +1 -0
  28. package/package.json +5 -6
  29. package/dist/cjs/performance/examples.js +0 -258
  30. package/dist/es2019/performance/examples.js +0 -197
  31. package/dist/esm/performance/examples.js +0 -228
@@ -1,258 +0,0 @@
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.HOCSTest = exports.UseCallbackWithAnalyticsHookTest = exports.UseAnalyticsEventHookTest = exports.UsePlatformLeafEventHandlerHookTest = void 0;
11
-
12
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
-
14
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
-
16
- var _react = _interopRequireWildcard(require("react"));
17
-
18
- var _react2 = require("@testing-library/react");
19
-
20
- var _AnalyticsListener = _interopRequireDefault(require("../components/AnalyticsListener"));
21
-
22
- var _withAnalyticsContext = _interopRequireDefault(require("../hocs/withAnalyticsContext"));
23
-
24
- var _withAnalyticsEvents = _interopRequireDefault(require("../hocs/withAnalyticsEvents"));
25
-
26
- var _useAnalyticsEvents2 = require("../hooks/useAnalyticsEvents");
27
-
28
- var _useCallbackWithAnalytics = require("../hooks/useCallbackWithAnalytics");
29
-
30
- var _usePlatformLeafEventHandler = require("../hooks/usePlatformLeafEventHandler");
31
-
32
- var _createAndFireEvent = _interopRequireDefault(require("../utils/createAndFireEvent"));
33
-
34
- 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); }
35
-
36
- 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; }
37
-
38
- var ButtonWithUsePlatformLeafEventHandlerHook = function ButtonWithUsePlatformLeafEventHandlerHook(_ref) {
39
- var providedOnClick = _ref.onClick;
40
- var onClick = (0, _usePlatformLeafEventHandler.usePlatformLeafEventHandler)({
41
- fn: providedOnClick,
42
- componentName: 'perf-test-button',
43
- packageName: '@atlaskit/perf-test-button',
44
- packageVersion: '0.1.0',
45
- action: 'clicked',
46
- analyticsData: {
47
- additionalData: true
48
- }
49
- });
50
- return /*#__PURE__*/_react.default.createElement("button", {
51
- onClick: onClick,
52
- "data-testid": "button"
53
- }, "Click me");
54
- };
55
-
56
- var ButtonWithUseAnalyticsEventHook = (0, _withAnalyticsContext.default)({
57
- componentName: 'perf-test-button',
58
- packageName: '@atlaskit/perf-test-button',
59
- packageVersion: '0.1.0',
60
- additionalData: true
61
- })(function (_ref2) {
62
- var providedOnClick = _ref2.onClick;
63
-
64
- var _useAnalyticsEvents = (0, _useAnalyticsEvents2.useAnalyticsEvents)(),
65
- createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
66
-
67
- var onClick = (0, _react.useCallback)(function (mouseEvt) {
68
- var analyticsEvent = createAnalyticsEvent({
69
- action: 'clicked',
70
- actionSubject: 'perf-test-button',
71
- attributes: {
72
- componentName: 'perf-test-button',
73
- packageName: '@atlaskit/perf-test-button',
74
- packageVersion: '0.1.0'
75
- }
76
- });
77
- analyticsEvent.fire('atlaskit');
78
- providedOnClick(mouseEvt);
79
- }, [providedOnClick, createAnalyticsEvent]);
80
- return /*#__PURE__*/_react.default.createElement("button", {
81
- onClick: onClick,
82
- "data-testid": "button"
83
- }, "Click me");
84
- });
85
- var ButtonWithUseCallbackWithAnalyticsHook = (0, _withAnalyticsContext.default)({
86
- componentName: 'perf-test-button',
87
- packageName: '@atlaskit/perf-test-button',
88
- packageVersion: '0.1.0',
89
- additionalData: true
90
- })(function (_ref3) {
91
- var providedOnClick = _ref3.onClick;
92
- var onClick = (0, _useCallbackWithAnalytics.useCallbackWithAnalytics)(providedOnClick, {
93
- action: 'clicked',
94
- actionSubject: 'perf-test-button',
95
- attributes: {
96
- componentName: 'perf-test-button',
97
- packageName: '@atlaskit/perf-test-button',
98
- packageVersion: '0.1.0'
99
- }
100
- }, 'atlaskit');
101
- return /*#__PURE__*/_react.default.createElement("button", {
102
- onClick: onClick,
103
- "data-testid": "button"
104
- }, "Click me");
105
- });
106
- var ButtonWithHOCs = (0, _withAnalyticsContext.default)({
107
- componentName: 'perf-test-button',
108
- packageName: '@atlaskit/perf-test-button',
109
- packageVersion: '0.1.0',
110
- additionalData: true
111
- })((0, _withAnalyticsEvents.default)({
112
- onClick: (0, _createAndFireEvent.default)('atlaskit')({
113
- action: 'clicked',
114
- actionSubject: 'perf-test-button',
115
- attributes: {
116
- componentName: 'perf-test-button',
117
- packageName: '@atlaskit/perf-test-button',
118
- packageVersion: '0.1.0'
119
- }
120
- })
121
- })(function (_ref4) {
122
- var onClick = _ref4.onClick;
123
- return /*#__PURE__*/_react.default.createElement("button", {
124
- onClick: onClick,
125
- "data-testid": "button"
126
- }, "Click me");
127
- }));
128
-
129
- var createEventHandler = function createEventHandler() {
130
- var done = function done() {};
131
-
132
- var promise;
133
-
134
- var onEvent = function onEvent() {
135
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
136
- args[_key] = arguments[_key];
137
- }
138
-
139
- done(args);
140
- };
141
-
142
- var create = function create() {
143
- promise = new Promise(function (resolve) {
144
- done = resolve;
145
- });
146
- };
147
-
148
- var getPromise = function getPromise() {
149
- return promise;
150
- };
151
-
152
- return {
153
- onEvent: onEvent,
154
- create: create,
155
- getPromise: getPromise
156
- };
157
- };
158
-
159
- var eventHandler = createEventHandler();
160
-
161
- var WithListener = function WithListener(Component) {
162
- return function () {
163
- eventHandler.create();
164
- var onEvent = eventHandler.onEvent;
165
-
166
- var onClick = function onClick() {};
167
-
168
- return /*#__PURE__*/_react.default.createElement(_AnalyticsListener.default, {
169
- channel: "atlaskit",
170
- onEvent: onEvent
171
- }, /*#__PURE__*/_react.default.createElement(Component, {
172
- onClick: onClick
173
- }));
174
- };
175
- };
176
-
177
- var interactionTasks = [{
178
- name: 'Dispatch event',
179
- description: 'Recording how long it takes to fire and receive an event on the listener',
180
- run: function () {
181
- var _run = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref5) {
182
- var container, button;
183
- return _regenerator.default.wrap(function _callee$(_context) {
184
- while (1) {
185
- switch (_context.prev = _context.next) {
186
- case 0:
187
- container = _ref5.container;
188
- button = container.querySelector('button');
189
-
190
- if (!(button == null)) {
191
- _context.next = 4;
192
- break;
193
- }
194
-
195
- throw new Error('Could not find button element');
196
-
197
- case 4:
198
- _react2.fireEvent.click(button);
199
-
200
- _context.next = 7;
201
- return eventHandler.getPromise();
202
-
203
- case 7:
204
- case "end":
205
- return _context.stop();
206
- }
207
- }
208
- }, _callee);
209
- }));
210
-
211
- function run(_x) {
212
- return _run.apply(this, arguments);
213
- }
214
-
215
- return run;
216
- }()
217
- }];
218
- var UsePlatformLeafEventHandlerHookTest = WithListener(ButtonWithUsePlatformLeafEventHandlerHook);
219
- exports.UsePlatformLeafEventHandlerHookTest = UsePlatformLeafEventHandlerHookTest;
220
- var UseAnalyticsEventHookTest = WithListener(ButtonWithUseAnalyticsEventHook);
221
- exports.UseAnalyticsEventHookTest = UseAnalyticsEventHookTest;
222
- var UseCallbackWithAnalyticsHookTest = WithListener(ButtonWithUseCallbackWithAnalyticsHook);
223
- exports.UseCallbackWithAnalyticsHookTest = UseCallbackWithAnalyticsHookTest;
224
- var HOCSTest = WithListener(ButtonWithHOCs);
225
- exports.HOCSTest = HOCSTest;
226
- UsePlatformLeafEventHandlerHookTest.story = {
227
- name: 'usePlatformLeafEventHandler based component',
228
- component: UsePlatformLeafEventHandlerHookTest,
229
- parameters: {
230
- performance: {
231
- interactions: interactionTasks
232
- }
233
- }
234
- };
235
- UseAnalyticsEventHookTest.story = {
236
- name: 'useAnalyticsEvent based component',
237
- parameters: {
238
- performance: {
239
- interactions: interactionTasks
240
- }
241
- }
242
- };
243
- UseCallbackWithAnalyticsHookTest.story = {
244
- name: 'useCallbackWithAnalytics based component',
245
- parameters: {
246
- performance: {
247
- interactions: interactionTasks
248
- }
249
- }
250
- };
251
- HOCSTest.story = {
252
- name: 'HOC based component',
253
- parameters: {
254
- performance: {
255
- interactions: interactionTasks
256
- }
257
- }
258
- };
@@ -1,197 +0,0 @@
1
- import React, { useCallback } from 'react';
2
- import { fireEvent } from '@testing-library/react';
3
- import AnalyticsListener from '../components/AnalyticsListener';
4
- import withAnalyticsContext from '../hocs/withAnalyticsContext';
5
- import withAnalyticsEvents from '../hocs/withAnalyticsEvents';
6
- import { useAnalyticsEvents } from '../hooks/useAnalyticsEvents';
7
- import { useCallbackWithAnalytics } from '../hooks/useCallbackWithAnalytics';
8
- import { usePlatformLeafEventHandler } from '../hooks/usePlatformLeafEventHandler';
9
- import createAndFireEvent from '../utils/createAndFireEvent';
10
-
11
- const ButtonWithUsePlatformLeafEventHandlerHook = ({
12
- onClick: providedOnClick
13
- }) => {
14
- const onClick = usePlatformLeafEventHandler({
15
- fn: providedOnClick,
16
- componentName: 'perf-test-button',
17
- packageName: '@atlaskit/perf-test-button',
18
- packageVersion: '0.1.0',
19
- action: 'clicked',
20
- analyticsData: {
21
- additionalData: true
22
- }
23
- });
24
- return /*#__PURE__*/React.createElement("button", {
25
- onClick: onClick,
26
- "data-testid": "button"
27
- }, "Click me");
28
- };
29
-
30
- const ButtonWithUseAnalyticsEventHook = withAnalyticsContext({
31
- componentName: 'perf-test-button',
32
- packageName: '@atlaskit/perf-test-button',
33
- packageVersion: '0.1.0',
34
- additionalData: true
35
- })(({
36
- onClick: providedOnClick
37
- }) => {
38
- const {
39
- createAnalyticsEvent
40
- } = useAnalyticsEvents();
41
- const onClick = useCallback(mouseEvt => {
42
- const analyticsEvent = createAnalyticsEvent({
43
- action: 'clicked',
44
- actionSubject: 'perf-test-button',
45
- attributes: {
46
- componentName: 'perf-test-button',
47
- packageName: '@atlaskit/perf-test-button',
48
- packageVersion: '0.1.0'
49
- }
50
- });
51
- analyticsEvent.fire('atlaskit');
52
- providedOnClick(mouseEvt);
53
- }, [providedOnClick, createAnalyticsEvent]);
54
- return /*#__PURE__*/React.createElement("button", {
55
- onClick: onClick,
56
- "data-testid": "button"
57
- }, "Click me");
58
- });
59
- const ButtonWithUseCallbackWithAnalyticsHook = withAnalyticsContext({
60
- componentName: 'perf-test-button',
61
- packageName: '@atlaskit/perf-test-button',
62
- packageVersion: '0.1.0',
63
- additionalData: true
64
- })(({
65
- onClick: providedOnClick
66
- }) => {
67
- const onClick = useCallbackWithAnalytics(providedOnClick, {
68
- action: 'clicked',
69
- actionSubject: 'perf-test-button',
70
- attributes: {
71
- componentName: 'perf-test-button',
72
- packageName: '@atlaskit/perf-test-button',
73
- packageVersion: '0.1.0'
74
- }
75
- }, 'atlaskit');
76
- return /*#__PURE__*/React.createElement("button", {
77
- onClick: onClick,
78
- "data-testid": "button"
79
- }, "Click me");
80
- });
81
- const ButtonWithHOCs = withAnalyticsContext({
82
- componentName: 'perf-test-button',
83
- packageName: '@atlaskit/perf-test-button',
84
- packageVersion: '0.1.0',
85
- additionalData: true
86
- })(withAnalyticsEvents({
87
- onClick: createAndFireEvent('atlaskit')({
88
- action: 'clicked',
89
- actionSubject: 'perf-test-button',
90
- attributes: {
91
- componentName: 'perf-test-button',
92
- packageName: '@atlaskit/perf-test-button',
93
- packageVersion: '0.1.0'
94
- }
95
- })
96
- })(({
97
- onClick
98
- }) => {
99
- return /*#__PURE__*/React.createElement("button", {
100
- onClick: onClick,
101
- "data-testid": "button"
102
- }, "Click me");
103
- }));
104
-
105
- const createEventHandler = () => {
106
- let done = (...args) => {};
107
-
108
- let promise;
109
-
110
- const onEvent = (...args) => {
111
- done(args);
112
- };
113
-
114
- const create = () => {
115
- promise = new Promise(resolve => {
116
- done = resolve;
117
- });
118
- };
119
-
120
- const getPromise = () => promise;
121
-
122
- return {
123
- onEvent,
124
- create,
125
- getPromise
126
- };
127
- };
128
-
129
- const eventHandler = createEventHandler();
130
-
131
- const WithListener = Component => () => {
132
- eventHandler.create();
133
- const onEvent = eventHandler.onEvent;
134
-
135
- const onClick = () => {};
136
-
137
- return /*#__PURE__*/React.createElement(AnalyticsListener, {
138
- channel: "atlaskit",
139
- onEvent: onEvent
140
- }, /*#__PURE__*/React.createElement(Component, {
141
- onClick: onClick
142
- }));
143
- };
144
-
145
- const interactionTasks = [{
146
- name: 'Dispatch event',
147
- description: 'Recording how long it takes to fire and receive an event on the listener',
148
- run: async ({
149
- container
150
- }) => {
151
- const button = container.querySelector('button');
152
-
153
- if (button == null) {
154
- throw new Error('Could not find button element');
155
- }
156
-
157
- fireEvent.click(button);
158
- await eventHandler.getPromise();
159
- }
160
- }];
161
- export const UsePlatformLeafEventHandlerHookTest = WithListener(ButtonWithUsePlatformLeafEventHandlerHook);
162
- export const UseAnalyticsEventHookTest = WithListener(ButtonWithUseAnalyticsEventHook);
163
- export const UseCallbackWithAnalyticsHookTest = WithListener(ButtonWithUseCallbackWithAnalyticsHook);
164
- export const HOCSTest = WithListener(ButtonWithHOCs);
165
- UsePlatformLeafEventHandlerHookTest.story = {
166
- name: 'usePlatformLeafEventHandler based component',
167
- component: UsePlatformLeafEventHandlerHookTest,
168
- parameters: {
169
- performance: {
170
- interactions: interactionTasks
171
- }
172
- }
173
- };
174
- UseAnalyticsEventHookTest.story = {
175
- name: 'useAnalyticsEvent based component',
176
- parameters: {
177
- performance: {
178
- interactions: interactionTasks
179
- }
180
- }
181
- };
182
- UseCallbackWithAnalyticsHookTest.story = {
183
- name: 'useCallbackWithAnalytics based component',
184
- parameters: {
185
- performance: {
186
- interactions: interactionTasks
187
- }
188
- }
189
- };
190
- HOCSTest.story = {
191
- name: 'HOC based component',
192
- parameters: {
193
- performance: {
194
- interactions: interactionTasks
195
- }
196
- }
197
- };
@@ -1,228 +0,0 @@
1
- import _regeneratorRuntime from "@babel/runtime/regenerator";
2
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
- import React, { useCallback } from 'react';
4
- import { fireEvent } from '@testing-library/react';
5
- import AnalyticsListener from '../components/AnalyticsListener';
6
- import withAnalyticsContext from '../hocs/withAnalyticsContext';
7
- import withAnalyticsEvents from '../hocs/withAnalyticsEvents';
8
- import { useAnalyticsEvents } from '../hooks/useAnalyticsEvents';
9
- import { useCallbackWithAnalytics } from '../hooks/useCallbackWithAnalytics';
10
- import { usePlatformLeafEventHandler } from '../hooks/usePlatformLeafEventHandler';
11
- import createAndFireEvent from '../utils/createAndFireEvent';
12
-
13
- var ButtonWithUsePlatformLeafEventHandlerHook = function ButtonWithUsePlatformLeafEventHandlerHook(_ref) {
14
- var providedOnClick = _ref.onClick;
15
- var onClick = usePlatformLeafEventHandler({
16
- fn: providedOnClick,
17
- componentName: 'perf-test-button',
18
- packageName: '@atlaskit/perf-test-button',
19
- packageVersion: '0.1.0',
20
- action: 'clicked',
21
- analyticsData: {
22
- additionalData: true
23
- }
24
- });
25
- return /*#__PURE__*/React.createElement("button", {
26
- onClick: onClick,
27
- "data-testid": "button"
28
- }, "Click me");
29
- };
30
-
31
- var ButtonWithUseAnalyticsEventHook = withAnalyticsContext({
32
- componentName: 'perf-test-button',
33
- packageName: '@atlaskit/perf-test-button',
34
- packageVersion: '0.1.0',
35
- additionalData: true
36
- })(function (_ref2) {
37
- var providedOnClick = _ref2.onClick;
38
-
39
- var _useAnalyticsEvents = useAnalyticsEvents(),
40
- createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
41
-
42
- var onClick = useCallback(function (mouseEvt) {
43
- var analyticsEvent = createAnalyticsEvent({
44
- action: 'clicked',
45
- actionSubject: 'perf-test-button',
46
- attributes: {
47
- componentName: 'perf-test-button',
48
- packageName: '@atlaskit/perf-test-button',
49
- packageVersion: '0.1.0'
50
- }
51
- });
52
- analyticsEvent.fire('atlaskit');
53
- providedOnClick(mouseEvt);
54
- }, [providedOnClick, createAnalyticsEvent]);
55
- return /*#__PURE__*/React.createElement("button", {
56
- onClick: onClick,
57
- "data-testid": "button"
58
- }, "Click me");
59
- });
60
- var ButtonWithUseCallbackWithAnalyticsHook = withAnalyticsContext({
61
- componentName: 'perf-test-button',
62
- packageName: '@atlaskit/perf-test-button',
63
- packageVersion: '0.1.0',
64
- additionalData: true
65
- })(function (_ref3) {
66
- var providedOnClick = _ref3.onClick;
67
- var onClick = useCallbackWithAnalytics(providedOnClick, {
68
- action: 'clicked',
69
- actionSubject: 'perf-test-button',
70
- attributes: {
71
- componentName: 'perf-test-button',
72
- packageName: '@atlaskit/perf-test-button',
73
- packageVersion: '0.1.0'
74
- }
75
- }, 'atlaskit');
76
- return /*#__PURE__*/React.createElement("button", {
77
- onClick: onClick,
78
- "data-testid": "button"
79
- }, "Click me");
80
- });
81
- var ButtonWithHOCs = withAnalyticsContext({
82
- componentName: 'perf-test-button',
83
- packageName: '@atlaskit/perf-test-button',
84
- packageVersion: '0.1.0',
85
- additionalData: true
86
- })(withAnalyticsEvents({
87
- onClick: createAndFireEvent('atlaskit')({
88
- action: 'clicked',
89
- actionSubject: 'perf-test-button',
90
- attributes: {
91
- componentName: 'perf-test-button',
92
- packageName: '@atlaskit/perf-test-button',
93
- packageVersion: '0.1.0'
94
- }
95
- })
96
- })(function (_ref4) {
97
- var onClick = _ref4.onClick;
98
- return /*#__PURE__*/React.createElement("button", {
99
- onClick: onClick,
100
- "data-testid": "button"
101
- }, "Click me");
102
- }));
103
-
104
- var createEventHandler = function createEventHandler() {
105
- var done = function done() {};
106
-
107
- var promise;
108
-
109
- var onEvent = function onEvent() {
110
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
111
- args[_key] = arguments[_key];
112
- }
113
-
114
- done(args);
115
- };
116
-
117
- var create = function create() {
118
- promise = new Promise(function (resolve) {
119
- done = resolve;
120
- });
121
- };
122
-
123
- var getPromise = function getPromise() {
124
- return promise;
125
- };
126
-
127
- return {
128
- onEvent: onEvent,
129
- create: create,
130
- getPromise: getPromise
131
- };
132
- };
133
-
134
- var eventHandler = createEventHandler();
135
-
136
- var WithListener = function WithListener(Component) {
137
- return function () {
138
- eventHandler.create();
139
- var onEvent = eventHandler.onEvent;
140
-
141
- var onClick = function onClick() {};
142
-
143
- return /*#__PURE__*/React.createElement(AnalyticsListener, {
144
- channel: "atlaskit",
145
- onEvent: onEvent
146
- }, /*#__PURE__*/React.createElement(Component, {
147
- onClick: onClick
148
- }));
149
- };
150
- };
151
-
152
- var interactionTasks = [{
153
- name: 'Dispatch event',
154
- description: 'Recording how long it takes to fire and receive an event on the listener',
155
- run: function () {
156
- var _run = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref5) {
157
- var container, button;
158
- return _regeneratorRuntime.wrap(function _callee$(_context) {
159
- while (1) {
160
- switch (_context.prev = _context.next) {
161
- case 0:
162
- container = _ref5.container;
163
- button = container.querySelector('button');
164
-
165
- if (!(button == null)) {
166
- _context.next = 4;
167
- break;
168
- }
169
-
170
- throw new Error('Could not find button element');
171
-
172
- case 4:
173
- fireEvent.click(button);
174
- _context.next = 7;
175
- return eventHandler.getPromise();
176
-
177
- case 7:
178
- case "end":
179
- return _context.stop();
180
- }
181
- }
182
- }, _callee);
183
- }));
184
-
185
- function run(_x) {
186
- return _run.apply(this, arguments);
187
- }
188
-
189
- return run;
190
- }()
191
- }];
192
- export var UsePlatformLeafEventHandlerHookTest = WithListener(ButtonWithUsePlatformLeafEventHandlerHook);
193
- export var UseAnalyticsEventHookTest = WithListener(ButtonWithUseAnalyticsEventHook);
194
- export var UseCallbackWithAnalyticsHookTest = WithListener(ButtonWithUseCallbackWithAnalyticsHook);
195
- export var HOCSTest = WithListener(ButtonWithHOCs);
196
- UsePlatformLeafEventHandlerHookTest.story = {
197
- name: 'usePlatformLeafEventHandler based component',
198
- component: UsePlatformLeafEventHandlerHookTest,
199
- parameters: {
200
- performance: {
201
- interactions: interactionTasks
202
- }
203
- }
204
- };
205
- UseAnalyticsEventHookTest.story = {
206
- name: 'useAnalyticsEvent based component',
207
- parameters: {
208
- performance: {
209
- interactions: interactionTasks
210
- }
211
- }
212
- };
213
- UseCallbackWithAnalyticsHookTest.story = {
214
- name: 'useCallbackWithAnalytics based component',
215
- parameters: {
216
- performance: {
217
- interactions: interactionTasks
218
- }
219
- }
220
- };
221
- HOCSTest.story = {
222
- name: 'HOC based component',
223
- parameters: {
224
- performance: {
225
- interactions: interactionTasks
226
- }
227
- }
228
- };