@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.
- package/CHANGELOG.md +6 -0
- package/dist/cjs/components/AnalyticsErrorBoundary.js +2 -2
- package/dist/cjs/events/AnalyticsEvent.js +3 -3
- package/dist/cjs/events/UIAnalyticsEvent.js +1 -1
- package/dist/cjs/hocs/withAnalyticsContext.js +5 -3
- package/dist/cjs/hooks/usePatchedProps.js +2 -2
- package/dist/cjs/hooks/usePlatformLeafEventHandler.js +2 -2
- package/dist/cjs/hooks/usePlatformLeafSyntheticEventHandler.js +2 -2
- package/dist/cjs/index.js +24 -24
- package/dist/cjs/utils/cleanProps.js +3 -1
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/components/AnalyticsErrorBoundary.js +2 -2
- package/dist/esm/events/AnalyticsEvent.js +2 -2
- package/dist/esm/hocs/withAnalyticsContext.js +4 -3
- package/dist/esm/hooks/usePatchedProps.js +2 -2
- package/dist/esm/hooks/usePlatformLeafEventHandler.js +2 -2
- package/dist/esm/hooks/usePlatformLeafSyntheticEventHandler.js +2 -2
- package/dist/esm/utils/cleanProps.js +2 -1
- package/dist/esm/version.json +1 -1
- package/dist/types/components/AnalyticsContext/LegacyAnalyticsContext.d.ts +4 -4
- package/dist/types/components/AnalyticsErrorBoundary.d.ts +1 -1
- package/dist/types/components/AnalyticsListener/LegacyAnalyticsListener.d.ts +4 -4
- package/dist/types/hocs/withAnalyticsContext.d.ts +22 -1
- package/dist/types/hocs/withAnalyticsEvents.d.ts +22 -1
- package/dist/types/hooks/usePatchedProps.d.ts +1 -1
- package/dist/types/performance/examples.d.ts +1 -0
- package/package.json +5 -6
- package/dist/cjs/performance/examples.js +0 -258
- package/dist/es2019/performance/examples.js +0 -197
- 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
|
-
};
|