@atlaskit/emoji 72.4.11 → 72.4.13
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 +17 -0
- package/dist/cjs/components/common/ResourcedEmojiComponent.js +5 -12
- package/dist/cjs/util/analytics/createEvent.js +1 -1
- package/dist/cjs/util/teamoji26RefreshEmojiPicker.js +4 -3
- package/dist/es2019/components/common/ResourcedEmojiComponent.js +5 -12
- package/dist/es2019/util/analytics/createEvent.js +1 -1
- package/dist/es2019/util/teamoji26RefreshEmojiPicker.js +3 -2
- package/dist/esm/components/common/ResourcedEmojiComponent.js +5 -12
- package/dist/esm/util/analytics/createEvent.js +1 -1
- package/dist/esm/util/teamoji26RefreshEmojiPicker.js +3 -2
- package/dist/types/util/teamoji26RefreshEmojiPicker.d.ts +1 -0
- package/package.json +6 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# @atlaskit/emoji
|
|
2
2
|
|
|
3
|
+
## 72.4.13
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`c03298c2e2f68`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/c03298c2e2f68) -
|
|
8
|
+
Cleanup `experiment` `platform_emoji_fetch_in_effect`. `ResourcedEmoji` now always fetches its
|
|
9
|
+
emoji from a layout effect instead of during render, so only committed renders fetch and discarded
|
|
10
|
+
renders (for example a pass that suspends) no longer trigger emoji provider lookups.
|
|
11
|
+
|
|
12
|
+
## 72.4.12
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- [`8dc7c24a6415f`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/8dc7c24a6415f) -
|
|
17
|
+
Add gating for Canvas emojis
|
|
18
|
+
- Updated dependencies
|
|
19
|
+
|
|
3
20
|
## 72.4.11
|
|
4
21
|
|
|
5
22
|
### 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
|
|
182
|
-
//
|
|
183
|
-
//
|
|
184
|
-
//
|
|
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
|
|
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.
|
|
22
|
+
packageVersion: "72.4.12"
|
|
23
23
|
}, attributes)
|
|
24
24
|
};
|
|
25
25
|
};
|
|
@@ -3,16 +3,17 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.teamoji26RefreshEmojiPickerUserIdGateName = exports.teamoji26RefreshEmojiPickerShortNameAndOrderingGateName = exports.teamoji26RefreshEmojiPickerExperimentName = exports.isTeamoji26RefreshEmojiPickerEnabledNoExposure = exports.isTeamoji26RefreshEmojiPickerEnabled = void 0;
|
|
6
|
+
exports.teamoji26RefreshEmojiPickerUserIdGateName = exports.teamoji26RefreshEmojiPickerShortNameAndOrderingGateName = exports.teamoji26RefreshEmojiPickerExperimentName = exports.teamoji26RefreshEmojiPickerCanvasExperimentName = exports.isTeamoji26RefreshEmojiPickerEnabledNoExposure = exports.isTeamoji26RefreshEmojiPickerEnabled = void 0;
|
|
7
7
|
var _isExperimentEnabled = require("@atlaskit/platform-feature-experiments/is-experiment-enabled");
|
|
8
8
|
var _unsafeExpValNoExposure = require("@atlaskit/platform-feature-experiments/unsafe-exp-val-no-exposure");
|
|
9
9
|
var _fg = require("@atlaskit/platform-feature-flags/fg");
|
|
10
10
|
var teamoji26RefreshEmojiPickerExperimentName = exports.teamoji26RefreshEmojiPickerExperimentName = 'platform_teamoji_26_refresh_emoji_picker';
|
|
11
|
+
var teamoji26RefreshEmojiPickerCanvasExperimentName = exports.teamoji26RefreshEmojiPickerCanvasExperimentName = 'platform_teamoji_26_refresh_emoji_picker_canvas';
|
|
11
12
|
var teamoji26RefreshEmojiPickerUserIdGateName = exports.teamoji26RefreshEmojiPickerUserIdGateName = 'platform_teamoji_26_refresh_emoji_picker_user_id';
|
|
12
13
|
var teamoji26RefreshEmojiPickerShortNameAndOrderingGateName = exports.teamoji26RefreshEmojiPickerShortNameAndOrderingGateName = 'platform_bitbucket_fix_shortname_and_ordering';
|
|
13
14
|
var isTeamoji26RefreshEmojiPickerEnabled = exports.isTeamoji26RefreshEmojiPickerEnabled = function isTeamoji26RefreshEmojiPickerEnabled() {
|
|
14
|
-
return (0, _isExperimentEnabled.isExperimentEnabled)(teamoji26RefreshEmojiPickerExperimentName) || (0, _fg.fg)(teamoji26RefreshEmojiPickerUserIdGateName) || (0, _fg.fg)(teamoji26RefreshEmojiPickerShortNameAndOrderingGateName);
|
|
15
|
+
return (0, _isExperimentEnabled.isExperimentEnabled)(teamoji26RefreshEmojiPickerExperimentName) || (0, _isExperimentEnabled.isExperimentEnabled)(teamoji26RefreshEmojiPickerCanvasExperimentName) || (0, _fg.fg)(teamoji26RefreshEmojiPickerUserIdGateName) || (0, _fg.fg)(teamoji26RefreshEmojiPickerShortNameAndOrderingGateName);
|
|
15
16
|
};
|
|
16
17
|
var isTeamoji26RefreshEmojiPickerEnabledNoExposure = exports.isTeamoji26RefreshEmojiPickerEnabledNoExposure = function isTeamoji26RefreshEmojiPickerEnabledNoExposure() {
|
|
17
|
-
return (0, _unsafeExpValNoExposure.UNSAFE_expValNoExposure)(teamoji26RefreshEmojiPickerExperimentName, 'isEnabled', false) === true || (0, _fg.fg)(teamoji26RefreshEmojiPickerUserIdGateName) || (0, _fg.fg)(teamoji26RefreshEmojiPickerShortNameAndOrderingGateName);
|
|
18
|
+
return (0, _unsafeExpValNoExposure.UNSAFE_expValNoExposure)(teamoji26RefreshEmojiPickerExperimentName, 'isEnabled', false) === true || (0, _unsafeExpValNoExposure.UNSAFE_expValNoExposure)(teamoji26RefreshEmojiPickerCanvasExperimentName, 'isEnabled', false) === true || (0, _fg.fg)(teamoji26RefreshEmojiPickerUserIdGateName) || (0, _fg.fg)(teamoji26RefreshEmojiPickerShortNameAndOrderingGateName);
|
|
18
19
|
};
|
|
@@ -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
|
|
131
|
-
//
|
|
132
|
-
//
|
|
133
|
-
//
|
|
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
|
|
134
|
+
if (!resolvedEmojiProvider || !emojiId) {
|
|
142
135
|
return;
|
|
143
136
|
}
|
|
144
137
|
fetchOrGetEmoji(resolvedEmojiProvider, emojiId, optimistic);
|
|
@@ -2,11 +2,12 @@ import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-e
|
|
|
2
2
|
import { UNSAFE_expValNoExposure } from '@atlaskit/platform-feature-experiments/unsafe-exp-val-no-exposure';
|
|
3
3
|
import { fg } from '@atlaskit/platform-feature-flags/fg';
|
|
4
4
|
export const teamoji26RefreshEmojiPickerExperimentName = 'platform_teamoji_26_refresh_emoji_picker';
|
|
5
|
+
export const teamoji26RefreshEmojiPickerCanvasExperimentName = 'platform_teamoji_26_refresh_emoji_picker_canvas';
|
|
5
6
|
export const teamoji26RefreshEmojiPickerUserIdGateName = 'platform_teamoji_26_refresh_emoji_picker_user_id';
|
|
6
7
|
export const teamoji26RefreshEmojiPickerShortNameAndOrderingGateName = 'platform_bitbucket_fix_shortname_and_ordering';
|
|
7
8
|
export const isTeamoji26RefreshEmojiPickerEnabled = () => {
|
|
8
|
-
return isExperimentEnabled(teamoji26RefreshEmojiPickerExperimentName) || fg(teamoji26RefreshEmojiPickerUserIdGateName) || fg(teamoji26RefreshEmojiPickerShortNameAndOrderingGateName);
|
|
9
|
+
return isExperimentEnabled(teamoji26RefreshEmojiPickerExperimentName) || isExperimentEnabled(teamoji26RefreshEmojiPickerCanvasExperimentName) || fg(teamoji26RefreshEmojiPickerUserIdGateName) || fg(teamoji26RefreshEmojiPickerShortNameAndOrderingGateName);
|
|
9
10
|
};
|
|
10
11
|
export const isTeamoji26RefreshEmojiPickerEnabledNoExposure = () => {
|
|
11
|
-
return UNSAFE_expValNoExposure(teamoji26RefreshEmojiPickerExperimentName, 'isEnabled', false) === true || fg(teamoji26RefreshEmojiPickerUserIdGateName) || fg(teamoji26RefreshEmojiPickerShortNameAndOrderingGateName);
|
|
12
|
+
return UNSAFE_expValNoExposure(teamoji26RefreshEmojiPickerExperimentName, 'isEnabled', false) === true || UNSAFE_expValNoExposure(teamoji26RefreshEmojiPickerCanvasExperimentName, 'isEnabled', false) === true || fg(teamoji26RefreshEmojiPickerUserIdGateName) || fg(teamoji26RefreshEmojiPickerShortNameAndOrderingGateName);
|
|
12
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
|
|
173
|
-
//
|
|
174
|
-
//
|
|
175
|
-
//
|
|
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
|
|
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.
|
|
15
|
+
packageVersion: "72.4.12"
|
|
16
16
|
}, attributes)
|
|
17
17
|
};
|
|
18
18
|
};
|
|
@@ -2,11 +2,12 @@ import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-e
|
|
|
2
2
|
import { UNSAFE_expValNoExposure } from '@atlaskit/platform-feature-experiments/unsafe-exp-val-no-exposure';
|
|
3
3
|
import { fg } from '@atlaskit/platform-feature-flags/fg';
|
|
4
4
|
export var teamoji26RefreshEmojiPickerExperimentName = 'platform_teamoji_26_refresh_emoji_picker';
|
|
5
|
+
export var teamoji26RefreshEmojiPickerCanvasExperimentName = 'platform_teamoji_26_refresh_emoji_picker_canvas';
|
|
5
6
|
export var teamoji26RefreshEmojiPickerUserIdGateName = 'platform_teamoji_26_refresh_emoji_picker_user_id';
|
|
6
7
|
export var teamoji26RefreshEmojiPickerShortNameAndOrderingGateName = 'platform_bitbucket_fix_shortname_and_ordering';
|
|
7
8
|
export var isTeamoji26RefreshEmojiPickerEnabled = function isTeamoji26RefreshEmojiPickerEnabled() {
|
|
8
|
-
return isExperimentEnabled(teamoji26RefreshEmojiPickerExperimentName) || fg(teamoji26RefreshEmojiPickerUserIdGateName) || fg(teamoji26RefreshEmojiPickerShortNameAndOrderingGateName);
|
|
9
|
+
return isExperimentEnabled(teamoji26RefreshEmojiPickerExperimentName) || isExperimentEnabled(teamoji26RefreshEmojiPickerCanvasExperimentName) || fg(teamoji26RefreshEmojiPickerUserIdGateName) || fg(teamoji26RefreshEmojiPickerShortNameAndOrderingGateName);
|
|
9
10
|
};
|
|
10
11
|
export var isTeamoji26RefreshEmojiPickerEnabledNoExposure = function isTeamoji26RefreshEmojiPickerEnabledNoExposure() {
|
|
11
|
-
return UNSAFE_expValNoExposure(teamoji26RefreshEmojiPickerExperimentName, 'isEnabled', false) === true || fg(teamoji26RefreshEmojiPickerUserIdGateName) || fg(teamoji26RefreshEmojiPickerShortNameAndOrderingGateName);
|
|
12
|
+
return UNSAFE_expValNoExposure(teamoji26RefreshEmojiPickerExperimentName, 'isEnabled', false) === true || UNSAFE_expValNoExposure(teamoji26RefreshEmojiPickerCanvasExperimentName, 'isEnabled', false) === true || fg(teamoji26RefreshEmojiPickerUserIdGateName) || fg(teamoji26RefreshEmojiPickerShortNameAndOrderingGateName);
|
|
12
13
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const teamoji26RefreshEmojiPickerExperimentName = "platform_teamoji_26_refresh_emoji_picker";
|
|
2
|
+
export declare const teamoji26RefreshEmojiPickerCanvasExperimentName = "platform_teamoji_26_refresh_emoji_picker_canvas";
|
|
2
3
|
export declare const teamoji26RefreshEmojiPickerUserIdGateName = "platform_teamoji_26_refresh_emoji_picker_user_id";
|
|
3
4
|
export declare const teamoji26RefreshEmojiPickerShortNameAndOrderingGateName = "platform_bitbucket_fix_shortname_and_ordering";
|
|
4
5
|
export declare const isTeamoji26RefreshEmojiPickerEnabled: () => boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/emoji",
|
|
3
|
-
"version": "72.4.
|
|
3
|
+
"version": "72.4.13",
|
|
4
4
|
"description": "Fabric emoji React components",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"@atlaskit/afm-i18n-platform-elements-emoji": "2.249.0",
|
|
36
36
|
"@atlaskit/analytics-next": "^12.5.0",
|
|
37
37
|
"@atlaskit/browser-apis": "^1.2.0",
|
|
38
|
-
"@atlaskit/button": "^25.
|
|
38
|
+
"@atlaskit/button": "^25.4.0",
|
|
39
39
|
"@atlaskit/css": "^1.1.0",
|
|
40
40
|
"@atlaskit/feature-gate-js-client": "^6.0.0",
|
|
41
41
|
"@atlaskit/form": "^17.2.0",
|
|
@@ -150,6 +150,10 @@
|
|
|
150
150
|
"platform_teamoji_26_refresh_emoji_picker": {
|
|
151
151
|
"param": "isEnabled",
|
|
152
152
|
"defaultValue": false
|
|
153
|
+
},
|
|
154
|
+
"platform_teamoji_26_refresh_emoji_picker_canvas": {
|
|
155
|
+
"param": "isEnabled",
|
|
156
|
+
"defaultValue": false
|
|
153
157
|
}
|
|
154
158
|
},
|
|
155
159
|
"scripts": {
|