@atlaskit/emoji 72.3.9 → 72.3.11
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 +16 -0
- package/dist/cjs/components/common/ResourcedEmojiComponent.js +13 -1
- package/dist/cjs/util/analytics/createEvent.js +1 -1
- package/dist/es2019/components/common/ResourcedEmojiComponent.js +14 -2
- package/dist/es2019/util/analytics/createEvent.js +1 -1
- package/dist/esm/components/common/ResourcedEmojiComponent.js +14 -2
- package/dist/esm/util/analytics/createEvent.js +1 -1
- package/package.json +3 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atlaskit/emoji
|
|
2
2
|
|
|
3
|
+
## 72.3.11
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
|
|
9
|
+
## 72.3.10
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`590c70ad5d166`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/590c70ad5d166) -
|
|
14
|
+
Behind the `platform_emoji_fetch_in_effect` experiment, `ResourcedEmoji` resolves its emoji from a
|
|
15
|
+
layout effect instead of a `useMemo` that ran during render. A render React discards (for example
|
|
16
|
+
a pass that suspends) no longer creates a fetch whose promise callbacks set state and schedule
|
|
17
|
+
another render. With the experiment off the fetch still happens during render as before.
|
|
18
|
+
|
|
3
19
|
## 72.3.9
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -14,6 +14,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
14
14
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
15
15
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
16
16
|
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
+
var _isExperimentEnabled = require("@atlaskit/platform-feature-experiments/is-experiment-enabled");
|
|
17
18
|
var _fg = require("@atlaskit/platform-feature-flags/fg");
|
|
18
19
|
var _expValEqualsNoExposure = require("@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure");
|
|
19
20
|
var _EmojiCommonProvider = require("../../context/EmojiCommonProvider");
|
|
@@ -176,8 +177,19 @@ var ResourcedEmojiComponent = exports.ResourcedEmojiComponent = function Resourc
|
|
|
176
177
|
(0, _sampledUfoRenderedEmoji.sampledUfoRenderedEmoji)(emojiId).markFMP();
|
|
177
178
|
}
|
|
178
179
|
}, [emojiId]);
|
|
180
|
+
|
|
181
|
+
// Fetching from `useMemo` runs during render, so a render React later discards (for example a
|
|
182
|
+
// pass that suspends) still creates a promise whose callbacks set state and schedule yet another
|
|
183
|
+
// render. The layout effect only runs for committed renders, and being pre-paint it keeps the
|
|
184
|
+
// synchronous cache-hit path from flashing the placeholder.
|
|
179
185
|
(0, _react.useMemo)(function () {
|
|
180
|
-
if (!resolvedEmojiProvider || !emojiId) {
|
|
186
|
+
if (!resolvedEmojiProvider || !emojiId || (0, _isExperimentEnabled.isExperimentEnabled)('platform_emoji_fetch_in_effect')) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
fetchOrGetEmoji(resolvedEmojiProvider, emojiId, optimistic);
|
|
190
|
+
}, [resolvedEmojiProvider, emojiId, optimistic, fetchOrGetEmoji]);
|
|
191
|
+
(0, _react.useLayoutEffect)(function () {
|
|
192
|
+
if (!resolvedEmojiProvider || !emojiId || !(0, _isExperimentEnabled.isExperimentEnabled)('platform_emoji_fetch_in_effect')) {
|
|
181
193
|
return;
|
|
182
194
|
}
|
|
183
195
|
fetchOrGetEmoji(resolvedEmojiProvider, emojiId, optimistic);
|
|
@@ -19,7 +19,7 @@ var createEvent = exports.createEvent = function createEvent(eventType, action,
|
|
|
19
19
|
actionSubjectId: actionSubjectId,
|
|
20
20
|
attributes: _objectSpread({
|
|
21
21
|
packageName: "@atlaskit/emoji",
|
|
22
|
-
packageVersion: "72.3.
|
|
22
|
+
packageVersion: "72.3.10"
|
|
23
23
|
}, attributes)
|
|
24
24
|
};
|
|
25
25
|
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/* ResourcedEmojiComponent.tsx generated by @compiled/babel-plugin v2.0.0 */
|
|
2
2
|
import "./ResourcedEmojiComponent.compiled.css";
|
|
3
3
|
import { ax, ix } from "@compiled/react/runtime";
|
|
4
|
-
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
4
|
+
import React, { useCallback, useEffect, useLayoutEffect, useMemo, useState } from 'react';
|
|
5
|
+
import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
|
|
5
6
|
import { fg } from '@atlaskit/platform-feature-flags/fg';
|
|
6
7
|
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
7
8
|
import { EmojiCommonProvider } from '../../context/EmojiCommonProvider';
|
|
@@ -125,8 +126,19 @@ export const ResourcedEmojiComponent = ({
|
|
|
125
126
|
sampledUfoRenderedEmoji(emojiId).markFMP();
|
|
126
127
|
}
|
|
127
128
|
}, [emojiId]);
|
|
129
|
+
|
|
130
|
+
// Fetching from `useMemo` runs during render, so a render React later discards (for example a
|
|
131
|
+
// pass that suspends) still creates a promise whose callbacks set state and schedule yet another
|
|
132
|
+
// render. The layout effect only runs for committed renders, and being pre-paint it keeps the
|
|
133
|
+
// synchronous cache-hit path from flashing the placeholder.
|
|
128
134
|
useMemo(() => {
|
|
129
|
-
if (!resolvedEmojiProvider || !emojiId) {
|
|
135
|
+
if (!resolvedEmojiProvider || !emojiId || isExperimentEnabled('platform_emoji_fetch_in_effect')) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
fetchOrGetEmoji(resolvedEmojiProvider, emojiId, optimistic);
|
|
139
|
+
}, [resolvedEmojiProvider, emojiId, optimistic, fetchOrGetEmoji]);
|
|
140
|
+
useLayoutEffect(() => {
|
|
141
|
+
if (!resolvedEmojiProvider || !emojiId || !isExperimentEnabled('platform_emoji_fetch_in_effect')) {
|
|
130
142
|
return;
|
|
131
143
|
}
|
|
132
144
|
fetchOrGetEmoji(resolvedEmojiProvider, emojiId, optimistic);
|
|
@@ -7,7 +7,8 @@ import { ax, ix } from "@compiled/react/runtime";
|
|
|
7
7
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
8
8
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
9
9
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
10
|
-
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
10
|
+
import React, { useCallback, useEffect, useLayoutEffect, useMemo, useState } from 'react';
|
|
11
|
+
import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
|
|
11
12
|
import { fg } from '@atlaskit/platform-feature-flags/fg';
|
|
12
13
|
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
13
14
|
import { EmojiCommonProvider } from '../../context/EmojiCommonProvider';
|
|
@@ -167,8 +168,19 @@ export var ResourcedEmojiComponent = function ResourcedEmojiComponent(_ref) {
|
|
|
167
168
|
sampledUfoRenderedEmoji(emojiId).markFMP();
|
|
168
169
|
}
|
|
169
170
|
}, [emojiId]);
|
|
171
|
+
|
|
172
|
+
// Fetching from `useMemo` runs during render, so a render React later discards (for example a
|
|
173
|
+
// pass that suspends) still creates a promise whose callbacks set state and schedule yet another
|
|
174
|
+
// render. The layout effect only runs for committed renders, and being pre-paint it keeps the
|
|
175
|
+
// synchronous cache-hit path from flashing the placeholder.
|
|
170
176
|
useMemo(function () {
|
|
171
|
-
if (!resolvedEmojiProvider || !emojiId) {
|
|
177
|
+
if (!resolvedEmojiProvider || !emojiId || isExperimentEnabled('platform_emoji_fetch_in_effect')) {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
fetchOrGetEmoji(resolvedEmojiProvider, emojiId, optimistic);
|
|
181
|
+
}, [resolvedEmojiProvider, emojiId, optimistic, fetchOrGetEmoji]);
|
|
182
|
+
useLayoutEffect(function () {
|
|
183
|
+
if (!resolvedEmojiProvider || !emojiId || !isExperimentEnabled('platform_emoji_fetch_in_effect')) {
|
|
172
184
|
return;
|
|
173
185
|
}
|
|
174
186
|
fetchOrGetEmoji(resolvedEmojiProvider, emojiId, optimistic);
|
|
@@ -12,7 +12,7 @@ export var createEvent = function createEvent(eventType, action, actionSubject,
|
|
|
12
12
|
actionSubjectId: actionSubjectId,
|
|
13
13
|
attributes: _objectSpread({
|
|
14
14
|
packageName: "@atlaskit/emoji",
|
|
15
|
-
packageVersion: "72.3.
|
|
15
|
+
packageVersion: "72.3.10"
|
|
16
16
|
}, attributes)
|
|
17
17
|
};
|
|
18
18
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/emoji",
|
|
3
|
-
"version": "72.3.
|
|
3
|
+
"version": "72.3.11",
|
|
4
4
|
"description": "Fabric emoji React components",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@atlaskit/icon-lab": "^7.8.0",
|
|
42
42
|
"@atlaskit/image": "^5.2.0",
|
|
43
43
|
"@atlaskit/logo": "^21.6.0",
|
|
44
|
-
"@atlaskit/media-client": "^38.
|
|
44
|
+
"@atlaskit/media-client": "^38.1.0",
|
|
45
45
|
"@atlaskit/media-client-react": "^6.4.0",
|
|
46
46
|
"@atlaskit/platform-feature-experiments": "^0.3.0",
|
|
47
47
|
"@atlaskit/platform-feature-flags": "^2.2.0",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"@atlaskit/spinner": "^20.4.0",
|
|
52
52
|
"@atlaskit/textfield": "^10.2.0",
|
|
53
53
|
"@atlaskit/theme": "^28.2.0",
|
|
54
|
-
"@atlaskit/tmp-editor-statsig": "^
|
|
54
|
+
"@atlaskit/tmp-editor-statsig": "^183.0.0",
|
|
55
55
|
"@atlaskit/tokens": "^16.11.0",
|
|
56
56
|
"@atlaskit/tooltip": "^24.3.0",
|
|
57
57
|
"@atlaskit/ufo": "^1.2.0",
|
|
@@ -88,11 +88,9 @@
|
|
|
88
88
|
"@testing-library/jest-dom": "^6.4.5",
|
|
89
89
|
"@testing-library/react": "^16.3.0",
|
|
90
90
|
"@testing-library/user-event": "^14.4.3",
|
|
91
|
-
"@types/enzyme": "3.1.15",
|
|
92
91
|
"@types/js-search": "^1.4.0",
|
|
93
92
|
"@types/react-test-renderer": "^18.0.6",
|
|
94
93
|
"dotenv": "^12.0.4",
|
|
95
|
-
"enzyme": "^3.10.0",
|
|
96
94
|
"es6-promise": "^4.0.5",
|
|
97
95
|
"fetch-mock": "^8.0.0",
|
|
98
96
|
"jest-axe": "^10.0.0",
|