@atlaskit/editor-plugin-media 10.0.9 → 10.0.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 CHANGED
@@ -1,5 +1,22 @@
1
1
  # @atlaskit/editor-plugin-media
2
2
 
3
+ ## 10.0.11
4
+
5
+ ### Patch Changes
6
+
7
+ - [`0d04e250bdf4b`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/0d04e250bdf4b) -
8
+ [ux] Making submenus for media (color/size) and table (background color) consistent with ADS and
9
+ fixing incorrect gate mocking in editor-plugin-ai-tests
10
+ - Updated dependencies
11
+
12
+ ## 10.0.10
13
+
14
+ ### Patch Changes
15
+
16
+ - [`46ff42199054d`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/46ff42199054d) -
17
+ Cleans up experiment platform_editor_eslint_suppression_fix
18
+ - Updated dependencies
19
+
3
20
  ## 10.0.9
4
21
 
5
22
  ### Patch Changes
@@ -448,9 +448,6 @@ var MediaSingleNodeNext = exports.MediaSingleNodeNext = function MediaSingleNode
448
448
  (_captionPlaceHolderRe = captionPlaceHolderRef.current) === null || _captionPlaceHolderRe === void 0 || _captionPlaceHolderRe.click();
449
449
  }, [mediaSingleWrapperRef, captionPlaceHolderRef]);
450
450
  var onMediaSingleKeyDown = _react.default.useCallback(function (event) {
451
- if (!(0, _expValEquals.expValEquals)('platform_editor_eslint_suppression_fix', 'isEnabled', true)) {
452
- return;
453
- }
454
451
  if (mediaSingleWrapperRef.current !== event.target) {
455
452
  return;
456
453
  }
@@ -479,7 +476,7 @@ var MediaSingleNodeNext = exports.MediaSingleNodeNext = function MediaSingleNode
479
476
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
480
477
  ,
481
478
  className: _styles.MediaSingleNodeSelector,
482
- onClick: notIos && (0, _expValEquals.expValEquals)('platform_editor_eslint_suppression_fix', 'isEnabled', true) ? undefined : onMediaSingleClicked,
479
+ onClick: notIos ? undefined : onMediaSingleClicked,
483
480
  onKeyDown: notIos ? undefined : onMediaSingleKeyDown
484
481
  }, (0, _react2.jsx)(_mediaSingle.MediaBadges, {
485
482
  mediaElement: currentMediaElement(),
@@ -97,12 +97,20 @@ var ImageBorder = function ImageBorder(_ref) {
97
97
  ref.style.left = "-".concat(rect.width, "px");
98
98
  }
99
99
  };
100
- var handleTriggerByKeyboard = function handleTriggerByKeyboard(event, callback) {
101
- if (event.key === 'Enter' || event.key === ' ') {
102
- event.preventDefault();
103
- callback();
104
- setIsOpenedByKeyboard(true);
100
+ var handleTriggerByKeyboard = function handleTriggerByKeyboard(event, allowedKeys, callback) {
101
+ if (!allowedKeys.includes(event.key)) {
102
+ return;
105
103
  }
104
+ event.preventDefault();
105
+ callback();
106
+ setIsOpenedByKeyboard(true);
107
+ };
108
+ var handleTriggerToolbarByKeyboard = function handleTriggerToolbarByKeyboard(event, callback) {
109
+ handleTriggerByKeyboard(event, ['Enter', ' '], callback);
110
+ };
111
+ var handleTriggerSubmenuByKeyboard = function handleTriggerSubmenuByKeyboard(event, callback) {
112
+ var keys = (0, _expValEquals.expValEquals)('platform_editor_toolbar_submenu_open_click', 'isEnabled', true) ? ['Enter', 'ArrowRight'] : ['Enter', ' '];
113
+ handleTriggerByKeyboard(event, keys, callback);
106
114
  };
107
115
  (0, _react.useEffect)(function () {
108
116
  var focusFirstOption = function focusFirstOption(submenuRef, isOpen) {
@@ -149,8 +157,18 @@ var ImageBorder = function ImageBorder(_ref) {
149
157
  _styles2.dropdownOptionButton,
150
158
  "aria-expanded": isColorSubmenuOpen,
151
159
  onKeyDown: function onKeyDown(e) {
152
- return handleTriggerByKeyboard(e, function () {
153
- return setIsColorSubmenuOpen(!isColorSubmenuOpen);
160
+ return handleTriggerSubmenuByKeyboard(e, function () {
161
+ if ((0, _expValEquals.expValEquals)('platform_editor_toolbar_submenu_open_click', 'isEnabled', true)) {
162
+ setIsColorSubmenuOpen(function (prev) {
163
+ var next = !prev;
164
+ if (next) {
165
+ setIsSizeSubmenuOpen(false);
166
+ }
167
+ return next;
168
+ });
169
+ } else {
170
+ setIsColorSubmenuOpen(!isColorSubmenuOpen);
171
+ }
154
172
  });
155
173
  }
156
174
  }, (0, _react2.jsx)(_compiled.Text, null, formatMessage(_media.imageBorderMessages.borderColor)), (0, _react2.jsx)("div", {
@@ -216,8 +234,18 @@ var ImageBorder = function ImageBorder(_ref) {
216
234
  "aria-expanded": isSizeSubmenuOpen,
217
235
  ref: dropDownSizeOptionButton,
218
236
  onKeyDown: function onKeyDown(e) {
219
- return handleTriggerByKeyboard(e, function () {
220
- return setIsSizeSubmenuOpen(!isSizeSubmenuOpen);
237
+ return handleTriggerSubmenuByKeyboard(e, function () {
238
+ if ((0, _expValEquals.expValEquals)('platform_editor_toolbar_submenu_open_click', 'isEnabled', true)) {
239
+ setIsSizeSubmenuOpen(function (prev) {
240
+ var next = !prev;
241
+ if (next) {
242
+ setIsColorSubmenuOpen(false);
243
+ }
244
+ return next;
245
+ });
246
+ } else {
247
+ setIsSizeSubmenuOpen(!isSizeSubmenuOpen);
248
+ }
221
249
  });
222
250
  }
223
251
  }, (0, _react2.jsx)(_compiled.Text, null, formatMessage(_media.imageBorderMessages.borderSize)), (0, _react2.jsx)("div", {
@@ -346,7 +374,7 @@ var ImageBorder = function ImageBorder(_ref) {
346
374
  setIsOpenedByKeyboard(false);
347
375
  },
348
376
  onKeyDown: function onKeyDown(e) {
349
- return handleTriggerByKeyboard(e, function () {
377
+ return handleTriggerToolbarByKeyboard(e, function () {
350
378
  return setIsOpen(!isOpen);
351
379
  });
352
380
  }
@@ -357,7 +385,7 @@ var ImageBorder = function ImageBorder(_ref) {
357
385
  forcePlacement: true,
358
386
  stick: true
359
387
  }, (0, _react2.jsx)("div", {
360
- onMouseLeave: (0, _expValEquals.expValEquals)('platform_editor_eslint_suppression_fix', 'isEnabled', true) ? undefined : function () {
388
+ onMouseLeave: (0, _expValEquals.expValEquals)('platform_editor_toolbar_submenu_open_click', 'isEnabled', true) ? undefined : function () {
361
389
  setIsColorSubmenuOpen(false);
362
390
  setIsSizeSubmenuOpen(false);
363
391
  }
@@ -395,30 +423,54 @@ var ImageBorder = function ImageBorder(_ref) {
395
423
  onItemActivated: function onItemActivated(_ref3) {
396
424
  var item = _ref3.item;
397
425
  if (item.value.name === 'color') {
398
- setIsColorSubmenuOpen(!isColorSubmenuOpen);
426
+ if ((0, _expValEquals.expValEquals)('platform_editor_toolbar_submenu_open_click', 'isEnabled', true)) {
427
+ setIsColorSubmenuOpen(function (prev) {
428
+ var next = !prev;
429
+ if (next) {
430
+ setIsSizeSubmenuOpen(false);
431
+ }
432
+ return next;
433
+ });
434
+ } else {
435
+ setIsColorSubmenuOpen(!isColorSubmenuOpen);
436
+ }
399
437
  }
400
438
  if (item.value.name === 'size') {
401
- setIsSizeSubmenuOpen(!isSizeSubmenuOpen);
439
+ if ((0, _expValEquals.expValEquals)('platform_editor_toolbar_submenu_open_click', 'isEnabled', true)) {
440
+ setIsSizeSubmenuOpen(function (prev) {
441
+ var next = !prev;
442
+ if (next) {
443
+ setIsColorSubmenuOpen(false);
444
+ }
445
+ return next;
446
+ });
447
+ } else {
448
+ setIsSizeSubmenuOpen(!isSizeSubmenuOpen);
449
+ }
402
450
  }
403
451
  },
404
452
  onMouseEnter: function onMouseEnter(_ref4) {
405
453
  var item = _ref4.item;
406
- if (item.value.name === 'color') {
407
- setIsColorSubmenuOpen(true);
408
- setIsOpenedByKeyboard(false);
409
- }
410
- if (item.value.name === 'size') {
411
- setIsSizeSubmenuOpen(true);
412
- setIsOpenedByKeyboard(false);
454
+ if (!(0, _expValEquals.expValEquals)('platform_editor_toolbar_submenu_open_click', 'isEnabled', true)) {
455
+ if (item.value.name === 'color') {
456
+ setIsColorSubmenuOpen(true);
457
+ setIsOpenedByKeyboard(false);
458
+ }
459
+ if (item.value.name === 'size') {
460
+ setIsSizeSubmenuOpen(true);
461
+ setIsOpenedByKeyboard(false);
462
+ }
413
463
  }
414
464
  },
415
465
  onMouseLeave: function onMouseLeave(_ref5) {
416
466
  var item = _ref5.item;
417
- if (item.value.name === 'color') {
418
- setIsColorSubmenuOpen(false);
419
- }
420
- if (item.value.name === 'size') {
421
- setIsSizeSubmenuOpen(false);
467
+ if (!(0, _expValEquals.expValEquals)('platform_editor_toolbar_submenu_open_click', 'isEnabled', true)) {
468
+ if (item.value.name === 'color') {
469
+ setIsColorSubmenuOpen(false);
470
+ }
471
+ if (item.value.name === 'size') {
472
+ setIsSizeSubmenuOpen(false);
473
+ }
422
474
  }
423
475
  },
424
476
  fitWidth: fitWidth + fitTolerance,
@@ -9,7 +9,6 @@ exports.MediaViewerContainer = void 0;
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
  var _react2 = require("@emotion/react");
12
- var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
13
12
  var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
14
13
  var _isType = require("../../pm-plugins/utils/is-type");
15
14
  var _utils = require("../../ui/toolbar/utils");
@@ -54,22 +53,16 @@ var MediaViewerContainer = exports.MediaViewerContainer = function MediaViewerCo
54
53
  };
55
54
  var isVideoMedia = (0, _isType.isVideo)((_mediaNode$firstChild = mediaNode.firstChild) === null || _mediaNode$firstChild === void 0 ? void 0 : _mediaNode$firstChild.attrs.__fileMimeType);
56
55
  var shouldShowViewer = isEditorViewMode && showViewer && selectedNodeAttrs && mediaClientConfig && !isVideoMedia && (0, _experiments.editorExperiment)('platform_editor_controls', 'control');
57
- return (0, _react2.jsx)(_react.Fragment, null, isEditorViewMode ? (0, _react2.jsx)(_react.Fragment, null, isInline ?
58
- // remove eslint disable when platform_editor_eslint_suppression_fix has been cleaned up
59
- // eslint-disable-next-line @atlassian/a11y/click-events-have-key-events, @atlassian/a11y/interactive-element-not-keyboard-focusable, @atlassian/a11y/no-static-element-interactions
60
- (0, _react2.jsx)("span", {
56
+ return (0, _react2.jsx)(_react.Fragment, null, isEditorViewMode ? (0, _react2.jsx)(_react.Fragment, null, isInline ? (0, _react2.jsx)("span", {
61
57
  onClick: showMediaViewer,
62
58
  css: interactiveStyles,
63
59
  "data-testid": mediaViewerContainerTestID,
64
- role: (0, _expValEquals.expValEquals)('platform_editor_eslint_suppression_fix', 'isEnabled', true) ? 'none' : undefined
65
- }, children) :
66
- // remove eslint disable when platform_editor_eslint_suppression_fix has been cleaned up
67
- // eslint-disable-next-line @atlassian/a11y/click-events-have-key-events, @atlassian/a11y/interactive-element-not-keyboard-focusable, @atlassian/a11y/no-static-element-interactions
68
- (0, _react2.jsx)("div", {
60
+ role: "none"
61
+ }, children) : (0, _react2.jsx)("div", {
69
62
  onClick: showMediaViewer,
70
63
  css: interactiveStyles,
71
64
  "data-testid": mediaViewerContainerTestID,
72
- role: (0, _expValEquals.expValEquals)('platform_editor_eslint_suppression_fix', 'isEnabled', true) ? 'none' : undefined
65
+ role: "none"
73
66
  }, children), shouldShowViewer && (0, _react2.jsx)(_PortalWrapper.RenderMediaViewer, {
74
67
  selectedNodeAttrs: selectedNodeAttrs,
75
68
  mediaClientConfig: mediaClientConfig,
@@ -408,9 +408,6 @@ export const MediaSingleNodeNext = mediaSingleNodeNextProps => {
408
408
  (_captionPlaceHolderRe = captionPlaceHolderRef.current) === null || _captionPlaceHolderRe === void 0 ? void 0 : _captionPlaceHolderRe.click();
409
409
  }, [mediaSingleWrapperRef, captionPlaceHolderRef]);
410
410
  const onMediaSingleKeyDown = React.useCallback(event => {
411
- if (!expValEquals('platform_editor_eslint_suppression_fix', 'isEnabled', true)) {
412
- return;
413
- }
414
411
  if (mediaSingleWrapperRef.current !== event.target) {
415
412
  return;
416
413
  }
@@ -439,7 +436,7 @@ export const MediaSingleNodeNext = mediaSingleNodeNextProps => {
439
436
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
440
437
  ,
441
438
  className: MediaSingleNodeSelector,
442
- onClick: notIos && expValEquals('platform_editor_eslint_suppression_fix', 'isEnabled', true) ? undefined : onMediaSingleClicked,
439
+ onClick: notIos ? undefined : onMediaSingleClicked,
443
440
  onKeyDown: notIos ? undefined : onMediaSingleKeyDown
444
441
  }, jsx(MediaBadges, {
445
442
  mediaElement: currentMediaElement(),
@@ -79,12 +79,20 @@ const ImageBorder = ({
79
79
  ref.style.left = `-${rect.width}px`;
80
80
  }
81
81
  };
82
- const handleTriggerByKeyboard = (event, callback) => {
83
- if (event.key === 'Enter' || event.key === ' ') {
84
- event.preventDefault();
85
- callback();
86
- setIsOpenedByKeyboard(true);
82
+ const handleTriggerByKeyboard = (event, allowedKeys, callback) => {
83
+ if (!allowedKeys.includes(event.key)) {
84
+ return;
87
85
  }
86
+ event.preventDefault();
87
+ callback();
88
+ setIsOpenedByKeyboard(true);
89
+ };
90
+ const handleTriggerToolbarByKeyboard = (event, callback) => {
91
+ handleTriggerByKeyboard(event, ['Enter', ' '], callback);
92
+ };
93
+ const handleTriggerSubmenuByKeyboard = (event, callback) => {
94
+ const keys = expValEquals('platform_editor_toolbar_submenu_open_click', 'isEnabled', true) ? ['Enter', 'ArrowRight'] : ['Enter', ' '];
95
+ handleTriggerByKeyboard(event, keys, callback);
88
96
  };
89
97
  useEffect(() => {
90
98
  const focusFirstOption = (submenuRef, isOpen) => {
@@ -130,7 +138,19 @@ const ImageBorder = ({
130
138
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
131
139
  dropdownOptionButton,
132
140
  "aria-expanded": isColorSubmenuOpen,
133
- onKeyDown: e => handleTriggerByKeyboard(e, () => setIsColorSubmenuOpen(!isColorSubmenuOpen))
141
+ onKeyDown: e => handleTriggerSubmenuByKeyboard(e, () => {
142
+ if (expValEquals('platform_editor_toolbar_submenu_open_click', 'isEnabled', true)) {
143
+ setIsColorSubmenuOpen(prev => {
144
+ const next = !prev;
145
+ if (next) {
146
+ setIsSizeSubmenuOpen(false);
147
+ }
148
+ return next;
149
+ });
150
+ } else {
151
+ setIsColorSubmenuOpen(!isColorSubmenuOpen);
152
+ }
153
+ })
134
154
  }, jsx(Text, null, formatMessage(messages.borderColor)), jsx("div", {
135
155
  css: contextualMenuArrow
136
156
  })), jsx("div", {
@@ -193,7 +213,19 @@ const ImageBorder = ({
193
213
  dropdownOptionButton,
194
214
  "aria-expanded": isSizeSubmenuOpen,
195
215
  ref: dropDownSizeOptionButton,
196
- onKeyDown: e => handleTriggerByKeyboard(e, () => setIsSizeSubmenuOpen(!isSizeSubmenuOpen))
216
+ onKeyDown: e => handleTriggerSubmenuByKeyboard(e, () => {
217
+ if (expValEquals('platform_editor_toolbar_submenu_open_click', 'isEnabled', true)) {
218
+ setIsSizeSubmenuOpen(prev => {
219
+ const next = !prev;
220
+ if (next) {
221
+ setIsColorSubmenuOpen(false);
222
+ }
223
+ return next;
224
+ });
225
+ } else {
226
+ setIsSizeSubmenuOpen(!isSizeSubmenuOpen);
227
+ }
228
+ })
197
229
  }, jsx(Text, null, formatMessage(messages.borderSize)), jsx("div", {
198
230
  css: contextualMenuArrow
199
231
  })), jsx("div", {
@@ -320,7 +352,7 @@ const ImageBorder = ({
320
352
  setIsOpen(!isOpen);
321
353
  setIsOpenedByKeyboard(false);
322
354
  },
323
- onKeyDown: e => handleTriggerByKeyboard(e, () => setIsOpen(!isOpen))
355
+ onKeyDown: e => handleTriggerToolbarByKeyboard(e, () => setIsOpen(!isOpen))
324
356
  }))), jsx(Popup, {
325
357
  target: popupTarget.current ? popupTarget.current : undefined,
326
358
  fitWidth: fitWidth + fitTolerance,
@@ -328,7 +360,7 @@ const ImageBorder = ({
328
360
  forcePlacement: true,
329
361
  stick: true
330
362
  }, jsx("div", {
331
- onMouseLeave: expValEquals('platform_editor_eslint_suppression_fix', 'isEnabled', true) ? undefined : () => {
363
+ onMouseLeave: expValEquals('platform_editor_toolbar_submenu_open_click', 'isEnabled', true) ? undefined : () => {
332
364
  setIsColorSubmenuOpen(false);
333
365
  setIsSizeSubmenuOpen(false);
334
366
  }
@@ -365,32 +397,56 @@ const ImageBorder = ({
365
397
  item
366
398
  }) => {
367
399
  if (item.value.name === 'color') {
368
- setIsColorSubmenuOpen(!isColorSubmenuOpen);
400
+ if (expValEquals('platform_editor_toolbar_submenu_open_click', 'isEnabled', true)) {
401
+ setIsColorSubmenuOpen(prev => {
402
+ const next = !prev;
403
+ if (next) {
404
+ setIsSizeSubmenuOpen(false);
405
+ }
406
+ return next;
407
+ });
408
+ } else {
409
+ setIsColorSubmenuOpen(!isColorSubmenuOpen);
410
+ }
369
411
  }
370
412
  if (item.value.name === 'size') {
371
- setIsSizeSubmenuOpen(!isSizeSubmenuOpen);
413
+ if (expValEquals('platform_editor_toolbar_submenu_open_click', 'isEnabled', true)) {
414
+ setIsSizeSubmenuOpen(prev => {
415
+ const next = !prev;
416
+ if (next) {
417
+ setIsColorSubmenuOpen(false);
418
+ }
419
+ return next;
420
+ });
421
+ } else {
422
+ setIsSizeSubmenuOpen(!isSizeSubmenuOpen);
423
+ }
372
424
  }
373
425
  },
374
426
  onMouseEnter: ({
375
427
  item
376
428
  }) => {
377
- if (item.value.name === 'color') {
378
- setIsColorSubmenuOpen(true);
379
- setIsOpenedByKeyboard(false);
380
- }
381
- if (item.value.name === 'size') {
382
- setIsSizeSubmenuOpen(true);
383
- setIsOpenedByKeyboard(false);
429
+ if (!expValEquals('platform_editor_toolbar_submenu_open_click', 'isEnabled', true)) {
430
+ if (item.value.name === 'color') {
431
+ setIsColorSubmenuOpen(true);
432
+ setIsOpenedByKeyboard(false);
433
+ }
434
+ if (item.value.name === 'size') {
435
+ setIsSizeSubmenuOpen(true);
436
+ setIsOpenedByKeyboard(false);
437
+ }
384
438
  }
385
439
  },
386
440
  onMouseLeave: ({
387
441
  item
388
442
  }) => {
389
- if (item.value.name === 'color') {
390
- setIsColorSubmenuOpen(false);
391
- }
392
- if (item.value.name === 'size') {
393
- setIsSizeSubmenuOpen(false);
443
+ if (!expValEquals('platform_editor_toolbar_submenu_open_click', 'isEnabled', true)) {
444
+ if (item.value.name === 'color') {
445
+ setIsColorSubmenuOpen(false);
446
+ }
447
+ if (item.value.name === 'size') {
448
+ setIsSizeSubmenuOpen(false);
449
+ }
394
450
  }
395
451
  },
396
452
  fitWidth: fitWidth + fitTolerance,
@@ -6,7 +6,6 @@ import React, { Fragment, useEffect, useState } from 'react';
6
6
 
7
7
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled, @typescript-eslint/consistent-type-imports
8
8
  import { css, jsx } from '@emotion/react';
9
- import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
10
9
  import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
11
10
  import { isVideo } from '../../pm-plugins/utils/is-type';
12
11
  import { getSelectedNearestMediaContainerNodeAttrsFunction } from '../../ui/toolbar/utils';
@@ -38,22 +37,16 @@ export const MediaViewerContainer = ({
38
37
  };
39
38
  const isVideoMedia = isVideo((_mediaNode$firstChild = mediaNode.firstChild) === null || _mediaNode$firstChild === void 0 ? void 0 : _mediaNode$firstChild.attrs.__fileMimeType);
40
39
  const shouldShowViewer = isEditorViewMode && showViewer && selectedNodeAttrs && mediaClientConfig && !isVideoMedia && editorExperiment('platform_editor_controls', 'control');
41
- return jsx(Fragment, null, isEditorViewMode ? jsx(Fragment, null, isInline ?
42
- // remove eslint disable when platform_editor_eslint_suppression_fix has been cleaned up
43
- // eslint-disable-next-line @atlassian/a11y/click-events-have-key-events, @atlassian/a11y/interactive-element-not-keyboard-focusable, @atlassian/a11y/no-static-element-interactions
44
- jsx("span", {
40
+ return jsx(Fragment, null, isEditorViewMode ? jsx(Fragment, null, isInline ? jsx("span", {
45
41
  onClick: showMediaViewer,
46
42
  css: interactiveStyles,
47
43
  "data-testid": mediaViewerContainerTestID,
48
- role: expValEquals('platform_editor_eslint_suppression_fix', 'isEnabled', true) ? 'none' : undefined
49
- }, children) :
50
- // remove eslint disable when platform_editor_eslint_suppression_fix has been cleaned up
51
- // eslint-disable-next-line @atlassian/a11y/click-events-have-key-events, @atlassian/a11y/interactive-element-not-keyboard-focusable, @atlassian/a11y/no-static-element-interactions
52
- jsx("div", {
44
+ role: "none"
45
+ }, children) : jsx("div", {
53
46
  onClick: showMediaViewer,
54
47
  css: interactiveStyles,
55
48
  "data-testid": mediaViewerContainerTestID,
56
- role: expValEquals('platform_editor_eslint_suppression_fix', 'isEnabled', true) ? 'none' : undefined
49
+ role: "none"
57
50
  }, children), shouldShowViewer && jsx(RenderMediaViewer, {
58
51
  selectedNodeAttrs: selectedNodeAttrs,
59
52
  mediaClientConfig: mediaClientConfig,
@@ -442,9 +442,6 @@ export var MediaSingleNodeNext = function MediaSingleNodeNext(mediaSingleNodeNex
442
442
  (_captionPlaceHolderRe = captionPlaceHolderRef.current) === null || _captionPlaceHolderRe === void 0 || _captionPlaceHolderRe.click();
443
443
  }, [mediaSingleWrapperRef, captionPlaceHolderRef]);
444
444
  var onMediaSingleKeyDown = React.useCallback(function (event) {
445
- if (!expValEquals('platform_editor_eslint_suppression_fix', 'isEnabled', true)) {
446
- return;
447
- }
448
445
  if (mediaSingleWrapperRef.current !== event.target) {
449
446
  return;
450
447
  }
@@ -473,7 +470,7 @@ export var MediaSingleNodeNext = function MediaSingleNodeNext(mediaSingleNodeNex
473
470
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
474
471
  ,
475
472
  className: MediaSingleNodeSelector,
476
- onClick: notIos && expValEquals('platform_editor_eslint_suppression_fix', 'isEnabled', true) ? undefined : onMediaSingleClicked,
473
+ onClick: notIos ? undefined : onMediaSingleClicked,
477
474
  onKeyDown: notIos ? undefined : onMediaSingleKeyDown
478
475
  }, jsx(MediaBadges, {
479
476
  mediaElement: currentMediaElement(),
@@ -89,12 +89,20 @@ var ImageBorder = function ImageBorder(_ref) {
89
89
  ref.style.left = "-".concat(rect.width, "px");
90
90
  }
91
91
  };
92
- var handleTriggerByKeyboard = function handleTriggerByKeyboard(event, callback) {
93
- if (event.key === 'Enter' || event.key === ' ') {
94
- event.preventDefault();
95
- callback();
96
- setIsOpenedByKeyboard(true);
92
+ var handleTriggerByKeyboard = function handleTriggerByKeyboard(event, allowedKeys, callback) {
93
+ if (!allowedKeys.includes(event.key)) {
94
+ return;
97
95
  }
96
+ event.preventDefault();
97
+ callback();
98
+ setIsOpenedByKeyboard(true);
99
+ };
100
+ var handleTriggerToolbarByKeyboard = function handleTriggerToolbarByKeyboard(event, callback) {
101
+ handleTriggerByKeyboard(event, ['Enter', ' '], callback);
102
+ };
103
+ var handleTriggerSubmenuByKeyboard = function handleTriggerSubmenuByKeyboard(event, callback) {
104
+ var keys = expValEquals('platform_editor_toolbar_submenu_open_click', 'isEnabled', true) ? ['Enter', 'ArrowRight'] : ['Enter', ' '];
105
+ handleTriggerByKeyboard(event, keys, callback);
98
106
  };
99
107
  useEffect(function () {
100
108
  var focusFirstOption = function focusFirstOption(submenuRef, isOpen) {
@@ -141,8 +149,18 @@ var ImageBorder = function ImageBorder(_ref) {
141
149
  dropdownOptionButton,
142
150
  "aria-expanded": isColorSubmenuOpen,
143
151
  onKeyDown: function onKeyDown(e) {
144
- return handleTriggerByKeyboard(e, function () {
145
- return setIsColorSubmenuOpen(!isColorSubmenuOpen);
152
+ return handleTriggerSubmenuByKeyboard(e, function () {
153
+ if (expValEquals('platform_editor_toolbar_submenu_open_click', 'isEnabled', true)) {
154
+ setIsColorSubmenuOpen(function (prev) {
155
+ var next = !prev;
156
+ if (next) {
157
+ setIsSizeSubmenuOpen(false);
158
+ }
159
+ return next;
160
+ });
161
+ } else {
162
+ setIsColorSubmenuOpen(!isColorSubmenuOpen);
163
+ }
146
164
  });
147
165
  }
148
166
  }, jsx(Text, null, formatMessage(messages.borderColor)), jsx("div", {
@@ -208,8 +226,18 @@ var ImageBorder = function ImageBorder(_ref) {
208
226
  "aria-expanded": isSizeSubmenuOpen,
209
227
  ref: dropDownSizeOptionButton,
210
228
  onKeyDown: function onKeyDown(e) {
211
- return handleTriggerByKeyboard(e, function () {
212
- return setIsSizeSubmenuOpen(!isSizeSubmenuOpen);
229
+ return handleTriggerSubmenuByKeyboard(e, function () {
230
+ if (expValEquals('platform_editor_toolbar_submenu_open_click', 'isEnabled', true)) {
231
+ setIsSizeSubmenuOpen(function (prev) {
232
+ var next = !prev;
233
+ if (next) {
234
+ setIsColorSubmenuOpen(false);
235
+ }
236
+ return next;
237
+ });
238
+ } else {
239
+ setIsSizeSubmenuOpen(!isSizeSubmenuOpen);
240
+ }
213
241
  });
214
242
  }
215
243
  }, jsx(Text, null, formatMessage(messages.borderSize)), jsx("div", {
@@ -338,7 +366,7 @@ var ImageBorder = function ImageBorder(_ref) {
338
366
  setIsOpenedByKeyboard(false);
339
367
  },
340
368
  onKeyDown: function onKeyDown(e) {
341
- return handleTriggerByKeyboard(e, function () {
369
+ return handleTriggerToolbarByKeyboard(e, function () {
342
370
  return setIsOpen(!isOpen);
343
371
  });
344
372
  }
@@ -349,7 +377,7 @@ var ImageBorder = function ImageBorder(_ref) {
349
377
  forcePlacement: true,
350
378
  stick: true
351
379
  }, jsx("div", {
352
- onMouseLeave: expValEquals('platform_editor_eslint_suppression_fix', 'isEnabled', true) ? undefined : function () {
380
+ onMouseLeave: expValEquals('platform_editor_toolbar_submenu_open_click', 'isEnabled', true) ? undefined : function () {
353
381
  setIsColorSubmenuOpen(false);
354
382
  setIsSizeSubmenuOpen(false);
355
383
  }
@@ -387,30 +415,54 @@ var ImageBorder = function ImageBorder(_ref) {
387
415
  onItemActivated: function onItemActivated(_ref3) {
388
416
  var item = _ref3.item;
389
417
  if (item.value.name === 'color') {
390
- setIsColorSubmenuOpen(!isColorSubmenuOpen);
418
+ if (expValEquals('platform_editor_toolbar_submenu_open_click', 'isEnabled', true)) {
419
+ setIsColorSubmenuOpen(function (prev) {
420
+ var next = !prev;
421
+ if (next) {
422
+ setIsSizeSubmenuOpen(false);
423
+ }
424
+ return next;
425
+ });
426
+ } else {
427
+ setIsColorSubmenuOpen(!isColorSubmenuOpen);
428
+ }
391
429
  }
392
430
  if (item.value.name === 'size') {
393
- setIsSizeSubmenuOpen(!isSizeSubmenuOpen);
431
+ if (expValEquals('platform_editor_toolbar_submenu_open_click', 'isEnabled', true)) {
432
+ setIsSizeSubmenuOpen(function (prev) {
433
+ var next = !prev;
434
+ if (next) {
435
+ setIsColorSubmenuOpen(false);
436
+ }
437
+ return next;
438
+ });
439
+ } else {
440
+ setIsSizeSubmenuOpen(!isSizeSubmenuOpen);
441
+ }
394
442
  }
395
443
  },
396
444
  onMouseEnter: function onMouseEnter(_ref4) {
397
445
  var item = _ref4.item;
398
- if (item.value.name === 'color') {
399
- setIsColorSubmenuOpen(true);
400
- setIsOpenedByKeyboard(false);
401
- }
402
- if (item.value.name === 'size') {
403
- setIsSizeSubmenuOpen(true);
404
- setIsOpenedByKeyboard(false);
446
+ if (!expValEquals('platform_editor_toolbar_submenu_open_click', 'isEnabled', true)) {
447
+ if (item.value.name === 'color') {
448
+ setIsColorSubmenuOpen(true);
449
+ setIsOpenedByKeyboard(false);
450
+ }
451
+ if (item.value.name === 'size') {
452
+ setIsSizeSubmenuOpen(true);
453
+ setIsOpenedByKeyboard(false);
454
+ }
405
455
  }
406
456
  },
407
457
  onMouseLeave: function onMouseLeave(_ref5) {
408
458
  var item = _ref5.item;
409
- if (item.value.name === 'color') {
410
- setIsColorSubmenuOpen(false);
411
- }
412
- if (item.value.name === 'size') {
413
- setIsSizeSubmenuOpen(false);
459
+ if (!expValEquals('platform_editor_toolbar_submenu_open_click', 'isEnabled', true)) {
460
+ if (item.value.name === 'color') {
461
+ setIsColorSubmenuOpen(false);
462
+ }
463
+ if (item.value.name === 'size') {
464
+ setIsSizeSubmenuOpen(false);
465
+ }
414
466
  }
415
467
  },
416
468
  fitWidth: fitWidth + fitTolerance,
@@ -7,7 +7,6 @@ import React, { Fragment, useEffect, useState } from 'react';
7
7
 
8
8
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled, @typescript-eslint/consistent-type-imports
9
9
  import { css, jsx } from '@emotion/react';
10
- import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
11
10
  import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
12
11
  import { isVideo } from '../../pm-plugins/utils/is-type';
13
12
  import { getSelectedNearestMediaContainerNodeAttrsFunction } from '../../ui/toolbar/utils';
@@ -44,22 +43,16 @@ export var MediaViewerContainer = function MediaViewerContainer(_ref) {
44
43
  };
45
44
  var isVideoMedia = isVideo((_mediaNode$firstChild = mediaNode.firstChild) === null || _mediaNode$firstChild === void 0 ? void 0 : _mediaNode$firstChild.attrs.__fileMimeType);
46
45
  var shouldShowViewer = isEditorViewMode && showViewer && selectedNodeAttrs && mediaClientConfig && !isVideoMedia && editorExperiment('platform_editor_controls', 'control');
47
- return jsx(Fragment, null, isEditorViewMode ? jsx(Fragment, null, isInline ?
48
- // remove eslint disable when platform_editor_eslint_suppression_fix has been cleaned up
49
- // eslint-disable-next-line @atlassian/a11y/click-events-have-key-events, @atlassian/a11y/interactive-element-not-keyboard-focusable, @atlassian/a11y/no-static-element-interactions
50
- jsx("span", {
46
+ return jsx(Fragment, null, isEditorViewMode ? jsx(Fragment, null, isInline ? jsx("span", {
51
47
  onClick: showMediaViewer,
52
48
  css: interactiveStyles,
53
49
  "data-testid": mediaViewerContainerTestID,
54
- role: expValEquals('platform_editor_eslint_suppression_fix', 'isEnabled', true) ? 'none' : undefined
55
- }, children) :
56
- // remove eslint disable when platform_editor_eslint_suppression_fix has been cleaned up
57
- // eslint-disable-next-line @atlassian/a11y/click-events-have-key-events, @atlassian/a11y/interactive-element-not-keyboard-focusable, @atlassian/a11y/no-static-element-interactions
58
- jsx("div", {
50
+ role: "none"
51
+ }, children) : jsx("div", {
59
52
  onClick: showMediaViewer,
60
53
  css: interactiveStyles,
61
54
  "data-testid": mediaViewerContainerTestID,
62
- role: expValEquals('platform_editor_eslint_suppression_fix', 'isEnabled', true) ? 'none' : undefined
55
+ role: "none"
63
56
  }, children), shouldShowViewer && jsx(RenderMediaViewer, {
64
57
  selectedNodeAttrs: selectedNodeAttrs,
65
58
  mediaClientConfig: mediaClientConfig,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-media",
3
- "version": "10.0.9",
3
+ "version": "10.0.11",
4
4
  "description": "Media plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -66,7 +66,7 @@
66
66
  "@atlaskit/primitives": "^18.0.0",
67
67
  "@atlaskit/textfield": "^8.2.0",
68
68
  "@atlaskit/theme": "^22.0.0",
69
- "@atlaskit/tmp-editor-statsig": "^41.0.0",
69
+ "@atlaskit/tmp-editor-statsig": "^43.0.0",
70
70
  "@atlaskit/tokens": "^11.1.0",
71
71
  "@atlaskit/tooltip": "^21.0.0",
72
72
  "@babel/runtime": "^7.0.0",
@@ -78,7 +78,7 @@
78
78
  "uuid": "^3.1.0"
79
79
  },
80
80
  "peerDependencies": {
81
- "@atlaskit/editor-common": "^112.6.0",
81
+ "@atlaskit/editor-common": "^112.7.0",
82
82
  "@atlaskit/media-core": "^37.0.0",
83
83
  "react": "^18.2.0",
84
84
  "react-dom": "^18.2.0",