@atlaskit/emoji 72.4.12 → 72.4.14

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 CHANGED
@@ -1,5 +1,20 @@
1
1
  # @atlaskit/emoji
2
2
 
3
+ ## 72.4.14
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies
8
+
9
+ ## 72.4.13
10
+
11
+ ### Patch Changes
12
+
13
+ - [`c03298c2e2f68`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/c03298c2e2f68) -
14
+ Cleanup `experiment` `platform_emoji_fetch_in_effect`. `ResourcedEmoji` now always fetches its
15
+ emoji from a layout effect instead of during render, so only committed renders fetch and discarded
16
+ renders (for example a pass that suspends) no longer trigger emoji provider lookups.
17
+
3
18
  ## 72.4.12
4
19
 
5
20
  ### Patch Changes
@@ -14,7 +14,6 @@ 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");
18
17
  var _fg = require("@atlaskit/platform-feature-flags/fg");
19
18
  var _expValEqualsNoExposure = require("@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure");
20
19
  var _EmojiCommonProvider = require("../../context/EmojiCommonProvider");
@@ -178,18 +177,12 @@ var ResourcedEmojiComponent = exports.ResourcedEmojiComponent = function Resourc
178
177
  }
179
178
  }, [emojiId]);
180
179
 
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.
185
- (0, _react.useMemo)(function () {
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]);
180
+ // Fetching during render means a render React later discards (for example a pass that suspends)
181
+ // still creates a promise whose callbacks set state and schedule yet another render. This layout
182
+ // effect only runs for committed renders, and being pre-paint it keeps the synchronous cache-hit
183
+ // path from flashing the placeholder.
191
184
  (0, _react.useLayoutEffect)(function () {
192
- if (!resolvedEmojiProvider || !emojiId || !(0, _isExperimentEnabled.isExperimentEnabled)('platform_emoji_fetch_in_effect')) {
185
+ if (!resolvedEmojiProvider || !emojiId) {
193
186
  return;
194
187
  }
195
188
  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.4.11"
22
+ packageVersion: "72.4.13"
23
23
  }, attributes)
24
24
  };
25
25
  };
@@ -2,7 +2,6 @@
2
2
  import "./ResourcedEmojiComponent.compiled.css";
3
3
  import { ax, ix } from "@compiled/react/runtime";
4
4
  import React, { useCallback, useEffect, useLayoutEffect, useMemo, useState } from 'react';
5
- import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
6
5
  import { fg } from '@atlaskit/platform-feature-flags/fg';
7
6
  import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
8
7
  import { EmojiCommonProvider } from '../../context/EmojiCommonProvider';
@@ -127,18 +126,12 @@ export const ResourcedEmojiComponent = ({
127
126
  }
128
127
  }, [emojiId]);
129
128
 
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.
134
- useMemo(() => {
135
- if (!resolvedEmojiProvider || !emojiId || isExperimentEnabled('platform_emoji_fetch_in_effect')) {
136
- return;
137
- }
138
- fetchOrGetEmoji(resolvedEmojiProvider, emojiId, optimistic);
139
- }, [resolvedEmojiProvider, emojiId, optimistic, fetchOrGetEmoji]);
129
+ // Fetching during render means a render React later discards (for example a pass that suspends)
130
+ // still creates a promise whose callbacks set state and schedule yet another render. This layout
131
+ // effect only runs for committed renders, and being pre-paint it keeps the synchronous cache-hit
132
+ // path from flashing the placeholder.
140
133
  useLayoutEffect(() => {
141
- if (!resolvedEmojiProvider || !emojiId || !isExperimentEnabled('platform_emoji_fetch_in_effect')) {
134
+ if (!resolvedEmojiProvider || !emojiId) {
142
135
  return;
143
136
  }
144
137
  fetchOrGetEmoji(resolvedEmojiProvider, emojiId, optimistic);
@@ -7,7 +7,7 @@ export const createEvent = (eventType, action, actionSubject, actionSubjectId, a
7
7
  actionSubjectId,
8
8
  attributes: {
9
9
  packageName: "@atlaskit/emoji",
10
- packageVersion: "72.4.11",
10
+ packageVersion: "72.4.13",
11
11
  ...attributes
12
12
  }
13
13
  });
@@ -8,7 +8,6 @@ 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
10
  import React, { useCallback, useEffect, useLayoutEffect, useMemo, useState } from 'react';
11
- import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
12
11
  import { fg } from '@atlaskit/platform-feature-flags/fg';
13
12
  import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
14
13
  import { EmojiCommonProvider } from '../../context/EmojiCommonProvider';
@@ -169,18 +168,12 @@ export var ResourcedEmojiComponent = function ResourcedEmojiComponent(_ref) {
169
168
  }
170
169
  }, [emojiId]);
171
170
 
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.
176
- useMemo(function () {
177
- if (!resolvedEmojiProvider || !emojiId || isExperimentEnabled('platform_emoji_fetch_in_effect')) {
178
- return;
179
- }
180
- fetchOrGetEmoji(resolvedEmojiProvider, emojiId, optimistic);
181
- }, [resolvedEmojiProvider, emojiId, optimistic, fetchOrGetEmoji]);
171
+ // Fetching during render means a render React later discards (for example a pass that suspends)
172
+ // still creates a promise whose callbacks set state and schedule yet another render. This layout
173
+ // effect only runs for committed renders, and being pre-paint it keeps the synchronous cache-hit
174
+ // path from flashing the placeholder.
182
175
  useLayoutEffect(function () {
183
- if (!resolvedEmojiProvider || !emojiId || !isExperimentEnabled('platform_emoji_fetch_in_effect')) {
176
+ if (!resolvedEmojiProvider || !emojiId) {
184
177
  return;
185
178
  }
186
179
  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.4.11"
15
+ packageVersion: "72.4.13"
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.4.12",
3
+ "version": "72.4.14",
4
4
  "description": "Fabric emoji React components",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -54,7 +54,7 @@
54
54
  "@atlaskit/spinner": "^20.4.0",
55
55
  "@atlaskit/textfield": "^10.2.0",
56
56
  "@atlaskit/theme": "^28.2.0",
57
- "@atlaskit/tmp-editor-statsig": "^201.0.0",
57
+ "@atlaskit/tmp-editor-statsig": "^202.0.0",
58
58
  "@atlaskit/tokens": "^18.2.0",
59
59
  "@atlaskit/tooltip": "^24.3.0",
60
60
  "@atlaskit/ufo": "^1.2.0",