@atlaskit/editor-plugin-type-ahead 2.2.3 → 2.3.0

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,27 @@
1
1
  # @atlaskit/editor-plugin-type-ahead
2
2
 
3
+ ## 2.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#135301](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/135301)
8
+ [`282513a152fa2`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/282513a152fa2) -
9
+ [A11Y-9960] Extract the AssistiveText component from the typeahead plugin for reuse in other
10
+ editor plugins
11
+
12
+ ### Patch Changes
13
+
14
+ - Updated dependencies
15
+
16
+ ## 2.2.4
17
+
18
+ ### Patch Changes
19
+
20
+ - [#133624](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/133624)
21
+ [`0054ad6978c1b`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/0054ad6978c1b) -
22
+ Fixed issue when search term is added to document when opening view more from Quickinsert
23
+ - Updated dependencies
24
+
3
25
  ## 2.2.3
4
26
 
5
27
  ### Patch Changes
@@ -13,11 +13,11 @@ var _reactIntlNext = require("react-intl-next");
13
13
  var _w3cKeyname = require("w3c-keyname");
14
14
  var _browser = require("@atlaskit/editor-common/browser");
15
15
  var _typeAhead = require("@atlaskit/editor-common/type-ahead");
16
+ var _ui = require("@atlaskit/editor-common/ui");
16
17
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
17
18
  var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
18
19
  var _constants = require("../pm-plugins/constants");
19
20
  var _utils = require("../pm-plugins/utils");
20
- var _AssistiveText = require("./AssistiveText");
21
21
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
22
22
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
23
23
  /**
@@ -450,7 +450,7 @@ var InputQuery = exports.InputQuery = /*#__PURE__*/_react.default.memo(function
450
450
  style: {
451
451
  display: 'none'
452
452
  }
453
- }, intl.formatMessage(_typeAhead.typeAheadListMessages.inputQueryAssistiveLabel)), (0, _react2.jsx)(_AssistiveText.AssistiveText, {
453
+ }, intl.formatMessage(_typeAhead.typeAheadListMessages.inputQueryAssistiveLabel)), (0, _react2.jsx)(_ui.AssistiveText, {
454
454
  assistiveText: items.length === 0 ? intl.formatMessage(_typeAhead.typeAheadListMessages.noSearchResultsLabel, {
455
455
  itemsLength: items.length
456
456
  }) : '',
@@ -14,13 +14,13 @@ var _CellMeasurer = require("react-virtualized/dist/commonjs/CellMeasurer");
14
14
  var _List = require("react-virtualized/dist/commonjs/List");
15
15
  var _messages = require("@atlaskit/editor-common/messages");
16
16
  var _typeAhead = require("@atlaskit/editor-common/type-ahead");
17
+ var _ui = require("@atlaskit/editor-common/ui");
17
18
  var _menu = require("@atlaskit/menu");
18
19
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
19
20
  var _primitives = require("@atlaskit/primitives");
20
21
  var _updateSelectedIndex = require("../pm-plugins/commands/update-selected-index");
21
22
  var _constants = require("../pm-plugins/constants");
22
23
  var _utils = require("../pm-plugins/utils");
23
- var _AssistiveText = require("./AssistiveText");
24
24
  var _ListRow = require("./ListRow");
25
25
  var _TypeAheadListItem = require("./TypeAheadListItem");
26
26
  var _ViewMore = require("./ViewMore");
@@ -44,7 +44,7 @@ var list = (0, _react2.css)({
44
44
  var TypeaheadAssistiveTextPureComponent = /*#__PURE__*/_react.default.memo(function (_ref) {
45
45
  var numberOfResults = _ref.numberOfResults;
46
46
  var intl = (0, _reactIntlNext.useIntl)();
47
- return (0, _react2.jsx)(_AssistiveText.AssistiveText, {
47
+ return (0, _react2.jsx)(_ui.AssistiveText, {
48
48
  assistiveText: intl.formatMessage(_typeAhead.typeAheadListMessages.searchResultsLabel, {
49
49
  itemsLength: numberOfResults
50
50
  })
@@ -17,6 +17,7 @@ var _ui = require("@atlaskit/editor-common/ui");
17
17
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
18
18
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
19
19
  var _colors = require("@atlaskit/theme/colors");
20
+ var _closeTypeAhead = require("../pm-plugins/commands/close-type-ahead");
20
21
  var _constants = require("../pm-plugins/constants");
21
22
  var _TypeAheadErrorFallback = require("./TypeAheadErrorFallback");
22
23
  var _TypeAheadList = require("./TypeAheadList");
@@ -293,16 +294,27 @@ var TypeAheadPopup = exports.TypeAheadPopup = /*#__PURE__*/_react.default.memo(f
293
294
 
294
295
  // @ts-ignore
295
296
  var openElementBrowserModal = triggerHandler === null || triggerHandler === void 0 ? void 0 : triggerHandler.openElementBrowserModal;
297
+ var close = function close(editorView) {
298
+ var tr = editorView.state.tr;
299
+ (0, _closeTypeAhead.closeTypeAhead)(tr);
300
+ editorView.dispatch(tr);
301
+ };
296
302
  var onViewMoreClick = (0, _react.useCallback)(function () {
303
+ if ((0, _platformFeatureFlags.fg)('platform_editor_controls_patch_1')) {
304
+ close(editorView);
305
+ }
306
+
297
307
  // TODO: ED-26959 - when clean up, remove config in quick insert plugin
298
308
  // platform/packages/editor/editor-plugin-quick-insert/src/quickInsertPlugin.tsx (typeAhead.openElementBrowserModal)
299
309
  openElementBrowserModal === null || openElementBrowserModal === void 0 || openElementBrowserModal();
300
- cancel({
301
- addPrefixTrigger: false,
302
- setSelectionAt: _constants.CloseSelectionOptions.AFTER_TEXT_INSERTED,
303
- forceFocusOnEditor: false
304
- });
305
- }, [openElementBrowserModal, cancel]);
310
+ if (!(0, _platformFeatureFlags.fg)('platform_editor_controls_patch_1')) {
311
+ cancel({
312
+ addPrefixTrigger: false,
313
+ setSelectionAt: _constants.CloseSelectionOptions.AFTER_TEXT_INSERTED,
314
+ forceFocusOnEditor: false
315
+ });
316
+ }
317
+ }, [cancel, editorView, openElementBrowserModal]);
306
318
  return (0, _react2.jsx)(_ui.Popup, {
307
319
  zIndex: _editorSharedStyles.akEditorFloatingDialogZIndex,
308
320
  target: anchorElement,
@@ -10,11 +10,11 @@ import { useIntl } from 'react-intl-next';
10
10
  import { keyName as keyNameNormalized } from 'w3c-keyname';
11
11
  import { browser } from '@atlaskit/editor-common/browser';
12
12
  import { SelectItemMode, typeAheadListMessages } from '@atlaskit/editor-common/type-ahead';
13
+ import { AssistiveText } from '@atlaskit/editor-common/ui';
13
14
  import { blockNodesVerticalMargin } from '@atlaskit/editor-shared-styles';
14
15
  import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
15
16
  import { CloseSelectionOptions, TYPE_AHEAD_DECORATION_ELEMENT_ID, TYPE_AHEAD_POPUP_CONTENT_CLASS } from '../pm-plugins/constants';
16
17
  import { getPluginState } from '../pm-plugins/utils';
17
- import { AssistiveText } from './AssistiveText';
18
18
  const placeholderStyles = css({
19
19
  '&::after': {
20
20
  content: 'attr(data-place-holder)',
@@ -12,13 +12,13 @@ import { CellMeasurer, CellMeasurerCache } from 'react-virtualized/dist/commonjs
12
12
  import { List } from 'react-virtualized/dist/commonjs/List';
13
13
  import { toolbarInsertBlockMessages as messages } from '@atlaskit/editor-common/messages';
14
14
  import { SelectItemMode, typeAheadListMessages } from '@atlaskit/editor-common/type-ahead';
15
+ import { AssistiveText } from '@atlaskit/editor-common/ui';
15
16
  import { MenuGroup } from '@atlaskit/menu';
16
17
  import { fg } from '@atlaskit/platform-feature-flags';
17
18
  import { Text, Box } from '@atlaskit/primitives';
18
19
  import { updateSelectedIndex } from '../pm-plugins/commands/update-selected-index';
19
20
  import { TYPE_AHEAD_DECORATION_ELEMENT_ID } from '../pm-plugins/constants';
20
21
  import { getTypeAheadListAriaLabels, moveSelectedIndex } from '../pm-plugins/utils';
21
- import { AssistiveText } from './AssistiveText';
22
22
  import { ListRow } from './ListRow';
23
23
  import { TypeAheadListItem } from './TypeAheadListItem';
24
24
  import { ViewMore } from './ViewMore';
@@ -14,6 +14,7 @@ import { findOverflowScrollParent, Popup } from '@atlaskit/editor-common/ui';
14
14
  import { akEditorFloatingDialogZIndex } from '@atlaskit/editor-shared-styles';
15
15
  import { fg } from '@atlaskit/platform-feature-flags';
16
16
  import { N0, N50A, N60A } from '@atlaskit/theme/colors';
17
+ import { closeTypeAhead } from '../pm-plugins/commands/close-type-ahead';
17
18
  import { CloseSelectionOptions, TYPE_AHEAD_DECORATION_DATA_ATTRIBUTE, TYPE_AHEAD_POPUP_CONTENT_CLASS } from '../pm-plugins/constants';
18
19
  import { TypeAheadErrorFallback } from './TypeAheadErrorFallback';
19
20
  import { TypeAheadList } from './TypeAheadList';
@@ -286,16 +287,31 @@ export const TypeAheadPopup = /*#__PURE__*/React.memo(props => {
286
287
 
287
288
  // @ts-ignore
288
289
  const openElementBrowserModal = triggerHandler === null || triggerHandler === void 0 ? void 0 : triggerHandler.openElementBrowserModal;
290
+ const close = editorView => {
291
+ const {
292
+ state: {
293
+ tr
294
+ }
295
+ } = editorView;
296
+ closeTypeAhead(tr);
297
+ editorView.dispatch(tr);
298
+ };
289
299
  const onViewMoreClick = useCallback(() => {
300
+ if (fg('platform_editor_controls_patch_1')) {
301
+ close(editorView);
302
+ }
303
+
290
304
  // TODO: ED-26959 - when clean up, remove config in quick insert plugin
291
305
  // platform/packages/editor/editor-plugin-quick-insert/src/quickInsertPlugin.tsx (typeAhead.openElementBrowserModal)
292
306
  openElementBrowserModal === null || openElementBrowserModal === void 0 ? void 0 : openElementBrowserModal();
293
- cancel({
294
- addPrefixTrigger: false,
295
- setSelectionAt: CloseSelectionOptions.AFTER_TEXT_INSERTED,
296
- forceFocusOnEditor: false
297
- });
298
- }, [openElementBrowserModal, cancel]);
307
+ if (!fg('platform_editor_controls_patch_1')) {
308
+ cancel({
309
+ addPrefixTrigger: false,
310
+ setSelectionAt: CloseSelectionOptions.AFTER_TEXT_INSERTED,
311
+ forceFocusOnEditor: false
312
+ });
313
+ }
314
+ }, [cancel, editorView, openElementBrowserModal]);
299
315
  return jsx(Popup, {
300
316
  zIndex: akEditorFloatingDialogZIndex,
301
317
  target: anchorElement,
@@ -11,11 +11,11 @@ import { useIntl } from 'react-intl-next';
11
11
  import { keyName as keyNameNormalized } from 'w3c-keyname';
12
12
  import { browser } from '@atlaskit/editor-common/browser';
13
13
  import { SelectItemMode, typeAheadListMessages } from '@atlaskit/editor-common/type-ahead';
14
+ import { AssistiveText } from '@atlaskit/editor-common/ui';
14
15
  import { blockNodesVerticalMargin } from '@atlaskit/editor-shared-styles';
15
16
  import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
16
17
  import { CloseSelectionOptions, TYPE_AHEAD_DECORATION_ELEMENT_ID, TYPE_AHEAD_POPUP_CONTENT_CLASS } from '../pm-plugins/constants';
17
18
  import { getPluginState } from '../pm-plugins/utils';
18
- import { AssistiveText } from './AssistiveText';
19
19
  var placeholderStyles = css({
20
20
  '&::after': {
21
21
  content: 'attr(data-place-holder)',
@@ -13,13 +13,13 @@ import { CellMeasurer, CellMeasurerCache } from 'react-virtualized/dist/commonjs
13
13
  import { List } from 'react-virtualized/dist/commonjs/List';
14
14
  import { toolbarInsertBlockMessages as messages } from '@atlaskit/editor-common/messages';
15
15
  import { SelectItemMode, typeAheadListMessages } from '@atlaskit/editor-common/type-ahead';
16
+ import { AssistiveText } from '@atlaskit/editor-common/ui';
16
17
  import { MenuGroup } from '@atlaskit/menu';
17
18
  import { fg } from '@atlaskit/platform-feature-flags';
18
19
  import { Text, Box } from '@atlaskit/primitives';
19
20
  import { updateSelectedIndex } from '../pm-plugins/commands/update-selected-index';
20
21
  import { TYPE_AHEAD_DECORATION_ELEMENT_ID } from '../pm-plugins/constants';
21
22
  import { getTypeAheadListAriaLabels, moveSelectedIndex } from '../pm-plugins/utils';
22
- import { AssistiveText } from './AssistiveText';
23
23
  import { ListRow } from './ListRow';
24
24
  import { TypeAheadListItem } from './TypeAheadListItem';
25
25
  import { ViewMore } from './ViewMore';
@@ -15,6 +15,7 @@ import { findOverflowScrollParent, Popup } from '@atlaskit/editor-common/ui';
15
15
  import { akEditorFloatingDialogZIndex } from '@atlaskit/editor-shared-styles';
16
16
  import { fg } from '@atlaskit/platform-feature-flags';
17
17
  import { N0, N50A, N60A } from '@atlaskit/theme/colors';
18
+ import { closeTypeAhead } from '../pm-plugins/commands/close-type-ahead';
18
19
  import { CloseSelectionOptions, TYPE_AHEAD_DECORATION_DATA_ATTRIBUTE, TYPE_AHEAD_POPUP_CONTENT_CLASS } from '../pm-plugins/constants';
19
20
  import { TypeAheadErrorFallback } from './TypeAheadErrorFallback';
20
21
  import { TypeAheadList } from './TypeAheadList';
@@ -282,16 +283,27 @@ export var TypeAheadPopup = /*#__PURE__*/React.memo(function (props) {
282
283
 
283
284
  // @ts-ignore
284
285
  var openElementBrowserModal = triggerHandler === null || triggerHandler === void 0 ? void 0 : triggerHandler.openElementBrowserModal;
286
+ var close = function close(editorView) {
287
+ var tr = editorView.state.tr;
288
+ closeTypeAhead(tr);
289
+ editorView.dispatch(tr);
290
+ };
285
291
  var onViewMoreClick = useCallback(function () {
292
+ if (fg('platform_editor_controls_patch_1')) {
293
+ close(editorView);
294
+ }
295
+
286
296
  // TODO: ED-26959 - when clean up, remove config in quick insert plugin
287
297
  // platform/packages/editor/editor-plugin-quick-insert/src/quickInsertPlugin.tsx (typeAhead.openElementBrowserModal)
288
298
  openElementBrowserModal === null || openElementBrowserModal === void 0 || openElementBrowserModal();
289
- cancel({
290
- addPrefixTrigger: false,
291
- setSelectionAt: CloseSelectionOptions.AFTER_TEXT_INSERTED,
292
- forceFocusOnEditor: false
293
- });
294
- }, [openElementBrowserModal, cancel]);
299
+ if (!fg('platform_editor_controls_patch_1')) {
300
+ cancel({
301
+ addPrefixTrigger: false,
302
+ setSelectionAt: CloseSelectionOptions.AFTER_TEXT_INSERTED,
303
+ forceFocusOnEditor: false
304
+ });
305
+ }
306
+ }, [cancel, editorView, openElementBrowserModal]);
295
307
  return jsx(Popup, {
296
308
  zIndex: akEditorFloatingDialogZIndex,
297
309
  target: anchorElement,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-type-ahead",
3
- "version": "2.2.3",
3
+ "version": "2.3.0",
4
4
  "description": "Type-ahead plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -34,7 +34,7 @@
34
34
  },
35
35
  "dependencies": {
36
36
  "@atlaskit/adf-schema": "^47.6.0",
37
- "@atlaskit/editor-common": "^102.13.0",
37
+ "@atlaskit/editor-common": "^102.18.0",
38
38
  "@atlaskit/editor-element-browser": "^0.1.0",
39
39
  "@atlaskit/editor-plugin-analytics": "^2.2.0",
40
40
  "@atlaskit/editor-plugin-connectivity": "^2.0.0",
@@ -42,14 +42,14 @@
42
42
  "@atlaskit/editor-prosemirror": "7.0.0",
43
43
  "@atlaskit/editor-shared-styles": "^3.4.0",
44
44
  "@atlaskit/heading": "^5.1.0",
45
- "@atlaskit/icon": "^25.2.0",
45
+ "@atlaskit/icon": "^25.5.0",
46
46
  "@atlaskit/menu": "^3.2.0",
47
47
  "@atlaskit/platform-feature-flags": "^1.1.0",
48
- "@atlaskit/primitives": "^14.2.0",
48
+ "@atlaskit/primitives": "^14.3.0",
49
49
  "@atlaskit/prosemirror-input-rules": "^3.3.0",
50
50
  "@atlaskit/theme": "^18.0.0",
51
- "@atlaskit/tmp-editor-statsig": "^4.4.0",
52
- "@atlaskit/tokens": "^4.5.0",
51
+ "@atlaskit/tmp-editor-statsig": "^4.6.0",
52
+ "@atlaskit/tokens": "^4.6.0",
53
53
  "@babel/runtime": "^7.0.0",
54
54
  "@emotion/react": "^11.7.1",
55
55
  "lodash": "^4.17.21",
@@ -106,6 +106,9 @@
106
106
  },
107
107
  "platform_editor_typeahead_dynamic_height_fix": {
108
108
  "type": "boolean"
109
+ },
110
+ "platform_editor_controls_patch_1": {
111
+ "type": "boolean"
109
112
  }
110
113
  }
111
114
  }
@@ -1,94 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.AssistiveText = void 0;
8
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
- var _react = require("react");
10
- var _react2 = require("@emotion/react");
11
- var _debounce = _interopRequireDefault(require("lodash/debounce"));
12
- /**
13
- * @jsxRuntime classic
14
- * @jsx jsx
15
- */
16
-
17
- // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
18
-
19
- var assitiveTextStyles = (0, _react2.css)({
20
- border: 0,
21
- clip: 'rect(0 0 0 0)',
22
- height: '1px',
23
- marginbottom: '-1px',
24
- marginright: '-1px',
25
- overflow: 'hidden',
26
- padding: 0,
27
- position: 'absolute',
28
- whitespace: 'nowrap',
29
- width: '1px'
30
- });
31
- var AssistiveText = exports.AssistiveText = function AssistiveText(_ref) {
32
- var _ref$assistiveText = _ref.assistiveText,
33
- assistiveText = _ref$assistiveText === void 0 ? '' : _ref$assistiveText,
34
- _ref$isInFocus = _ref.isInFocus,
35
- isInFocus = _ref$isInFocus === void 0 ? false : _ref$isInFocus,
36
- _ref$id = _ref.id,
37
- id = _ref$id === void 0 ? '' : _ref$id,
38
- _ref$statusDebounceMi = _ref.statusDebounceMillis,
39
- statusDebounceMillis = _ref$statusDebounceMi === void 0 ? 1400 : _ref$statusDebounceMi;
40
- var _useState = (0, _react.useState)(false),
41
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
42
- bump = _useState2[0],
43
- setBump = _useState2[1];
44
- var _useState3 = (0, _react.useState)(false),
45
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
46
- debounced = _useState4[0],
47
- setDebounced = _useState4[1];
48
- var _useState5 = (0, _react.useState)(false),
49
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
50
- silenced = _useState6[0],
51
- setSilenced = _useState6[1];
52
- var debounceStatusUpdate = (0, _react.useMemo)(function () {
53
- return (0, _debounce.default)(function () {
54
- var shouldSilence = !isInFocus;
55
- setBump(function (prevBump) {
56
- return !prevBump;
57
- });
58
- setDebounced(true);
59
- setSilenced(shouldSilence);
60
- });
61
- }, [isInFocus]);
62
- (0, _react.useEffect)(function () {
63
- if (!debounced) {
64
- debounceStatusUpdate();
65
- return function () {
66
- debounceStatusUpdate.cancel();
67
- };
68
- }
69
- }, [assistiveText, isInFocus, debounced, debounceStatusUpdate]);
70
- (0, _react.useEffect)(function () {
71
- if (debounced) {
72
- setBump(function (prevBump) {
73
- return !prevBump;
74
- });
75
- setDebounced(true);
76
- setSilenced(!isInFocus);
77
- }
78
- }, [assistiveText, isInFocus, debounced]);
79
- return (0, _react2.jsx)("div", {
80
- css: assitiveTextStyles
81
- }, (0, _react2.jsx)("div", {
82
- "data-testid": id + '__status--A',
83
- id: id + '__status--A',
84
- role: "status",
85
- "aria-atomic": "true",
86
- "aria-live": "polite"
87
- }, !silenced && debounced && bump ? assistiveText : ''), (0, _react2.jsx)("div", {
88
- "data-testid": id + '__status--B',
89
- id: id + '__status--B',
90
- role: "status",
91
- "aria-atomic": "true",
92
- "aria-live": "polite"
93
- }, !silenced && debounced && !bump ? assistiveText : ''));
94
- };
@@ -1,68 +0,0 @@
1
- /**
2
- * @jsxRuntime classic
3
- * @jsx jsx
4
- */
5
-
6
- import { useEffect, useMemo, useState } from 'react';
7
-
8
- // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
9
- import { css, jsx } from '@emotion/react';
10
- import debounce from 'lodash/debounce';
11
- const assitiveTextStyles = css({
12
- border: 0,
13
- clip: 'rect(0 0 0 0)',
14
- height: '1px',
15
- marginbottom: '-1px',
16
- marginright: '-1px',
17
- overflow: 'hidden',
18
- padding: 0,
19
- position: 'absolute',
20
- whitespace: 'nowrap',
21
- width: '1px'
22
- });
23
- export const AssistiveText = ({
24
- assistiveText = '',
25
- isInFocus = false,
26
- id = '',
27
- statusDebounceMillis = 1400
28
- }) => {
29
- const [bump, setBump] = useState(false);
30
- const [debounced, setDebounced] = useState(false);
31
- const [silenced, setSilenced] = useState(false);
32
- const debounceStatusUpdate = useMemo(() => debounce(() => {
33
- const shouldSilence = !isInFocus;
34
- setBump(prevBump => !prevBump);
35
- setDebounced(true);
36
- setSilenced(shouldSilence);
37
- }), [isInFocus]);
38
- useEffect(() => {
39
- if (!debounced) {
40
- debounceStatusUpdate();
41
- return () => {
42
- debounceStatusUpdate.cancel();
43
- };
44
- }
45
- }, [assistiveText, isInFocus, debounced, debounceStatusUpdate]);
46
- useEffect(() => {
47
- if (debounced) {
48
- setBump(prevBump => !prevBump);
49
- setDebounced(true);
50
- setSilenced(!isInFocus);
51
- }
52
- }, [assistiveText, isInFocus, debounced]);
53
- return jsx("div", {
54
- css: assitiveTextStyles
55
- }, jsx("div", {
56
- "data-testid": id + '__status--A',
57
- id: id + '__status--A',
58
- role: "status",
59
- "aria-atomic": "true",
60
- "aria-live": "polite"
61
- }, !silenced && debounced && bump ? assistiveText : ''), jsx("div", {
62
- "data-testid": id + '__status--B',
63
- id: id + '__status--B',
64
- role: "status",
65
- "aria-atomic": "true",
66
- "aria-live": "polite"
67
- }, !silenced && debounced && !bump ? assistiveText : ''));
68
- };
@@ -1,87 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- /**
3
- * @jsxRuntime classic
4
- * @jsx jsx
5
- */
6
-
7
- import { useEffect, useMemo, useState } from 'react';
8
-
9
- // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
10
- import { css, jsx } from '@emotion/react';
11
- import debounce from 'lodash/debounce';
12
- var assitiveTextStyles = css({
13
- border: 0,
14
- clip: 'rect(0 0 0 0)',
15
- height: '1px',
16
- marginbottom: '-1px',
17
- marginright: '-1px',
18
- overflow: 'hidden',
19
- padding: 0,
20
- position: 'absolute',
21
- whitespace: 'nowrap',
22
- width: '1px'
23
- });
24
- export var AssistiveText = function AssistiveText(_ref) {
25
- var _ref$assistiveText = _ref.assistiveText,
26
- assistiveText = _ref$assistiveText === void 0 ? '' : _ref$assistiveText,
27
- _ref$isInFocus = _ref.isInFocus,
28
- isInFocus = _ref$isInFocus === void 0 ? false : _ref$isInFocus,
29
- _ref$id = _ref.id,
30
- id = _ref$id === void 0 ? '' : _ref$id,
31
- _ref$statusDebounceMi = _ref.statusDebounceMillis,
32
- statusDebounceMillis = _ref$statusDebounceMi === void 0 ? 1400 : _ref$statusDebounceMi;
33
- var _useState = useState(false),
34
- _useState2 = _slicedToArray(_useState, 2),
35
- bump = _useState2[0],
36
- setBump = _useState2[1];
37
- var _useState3 = useState(false),
38
- _useState4 = _slicedToArray(_useState3, 2),
39
- debounced = _useState4[0],
40
- setDebounced = _useState4[1];
41
- var _useState5 = useState(false),
42
- _useState6 = _slicedToArray(_useState5, 2),
43
- silenced = _useState6[0],
44
- setSilenced = _useState6[1];
45
- var debounceStatusUpdate = useMemo(function () {
46
- return debounce(function () {
47
- var shouldSilence = !isInFocus;
48
- setBump(function (prevBump) {
49
- return !prevBump;
50
- });
51
- setDebounced(true);
52
- setSilenced(shouldSilence);
53
- });
54
- }, [isInFocus]);
55
- useEffect(function () {
56
- if (!debounced) {
57
- debounceStatusUpdate();
58
- return function () {
59
- debounceStatusUpdate.cancel();
60
- };
61
- }
62
- }, [assistiveText, isInFocus, debounced, debounceStatusUpdate]);
63
- useEffect(function () {
64
- if (debounced) {
65
- setBump(function (prevBump) {
66
- return !prevBump;
67
- });
68
- setDebounced(true);
69
- setSilenced(!isInFocus);
70
- }
71
- }, [assistiveText, isInFocus, debounced]);
72
- return jsx("div", {
73
- css: assitiveTextStyles
74
- }, jsx("div", {
75
- "data-testid": id + '__status--A',
76
- id: id + '__status--A',
77
- role: "status",
78
- "aria-atomic": "true",
79
- "aria-live": "polite"
80
- }, !silenced && debounced && bump ? assistiveText : ''), jsx("div", {
81
- "data-testid": id + '__status--B',
82
- id: id + '__status--B',
83
- role: "status",
84
- "aria-atomic": "true",
85
- "aria-live": "polite"
86
- }, !silenced && debounced && !bump ? assistiveText : ''));
87
- };
@@ -1,14 +0,0 @@
1
- /**
2
- * @jsxRuntime classic
3
- * @jsx jsx
4
- */
5
- import { jsx } from '@emotion/react';
6
- type AssistiveTextProps = {
7
- assistiveText: string;
8
- isInFocus: boolean;
9
- id: string;
10
- statusDebounceMillis?: number;
11
- debounce?: boolean;
12
- };
13
- export declare const AssistiveText: ({ assistiveText, isInFocus, id, statusDebounceMillis, }: AssistiveTextProps) => jsx.JSX.Element;
14
- export {};
@@ -1,14 +0,0 @@
1
- /**
2
- * @jsxRuntime classic
3
- * @jsx jsx
4
- */
5
- import { jsx } from '@emotion/react';
6
- type AssistiveTextProps = {
7
- assistiveText: string;
8
- isInFocus: boolean;
9
- id: string;
10
- statusDebounceMillis?: number;
11
- debounce?: boolean;
12
- };
13
- export declare const AssistiveText: ({ assistiveText, isInFocus, id, statusDebounceMillis, }: AssistiveTextProps) => jsx.JSX.Element;
14
- export {};