@atlaskit/link-picker 1.25.4 → 1.25.5

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.
Files changed (110) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/cjs/common/constants.js +4 -2
  3. package/dist/cjs/i18n/en.js +2 -1
  4. package/dist/cjs/i18n/en_GB.js +2 -1
  5. package/dist/cjs/i18n/en_ZZ.js +2 -1
  6. package/dist/cjs/ui/link-picker/index.js +24 -56
  7. package/dist/cjs/ui/link-picker/search-results/index.js +90 -0
  8. package/dist/cjs/ui/link-picker/{link-search-error → search-results/link-search-error}/index.js +1 -1
  9. package/dist/cjs/ui/link-picker/{link-search-list → search-results/link-search-list}/index.js +1 -1
  10. package/dist/cjs/ui/link-picker/{link-search-list → search-results/link-search-list}/list-item/index.js +1 -2
  11. package/dist/cjs/ui/link-picker/{link-search-list → search-results/link-search-list}/list-item/styled.js +2 -2
  12. package/dist/cjs/ui/link-picker/{link-search-list → search-results/link-search-list}/styled.js +1 -1
  13. package/dist/cjs/ui/link-picker/{link-search-list → search-results/link-search-list}/use-track-results-shown/index.js +2 -2
  14. package/dist/cjs/ui/link-picker/search-results/styled.js +16 -0
  15. package/dist/cjs/ui/link-picker/{track-tab-viewed → search-results/track-tab-viewed}/index.js +2 -2
  16. package/dist/cjs/version.json +1 -1
  17. package/dist/es2019/common/constants.js +2 -1
  18. package/dist/es2019/i18n/en.js +2 -1
  19. package/dist/es2019/i18n/en_GB.js +2 -1
  20. package/dist/es2019/i18n/en_ZZ.js +2 -1
  21. package/dist/es2019/ui/link-picker/index.js +23 -50
  22. package/dist/es2019/ui/link-picker/search-results/index.js +77 -0
  23. package/dist/es2019/ui/link-picker/{link-search-error → search-results/link-search-error}/index.js +1 -1
  24. package/dist/es2019/ui/link-picker/{link-search-list → search-results/link-search-list}/index.js +1 -1
  25. package/dist/es2019/ui/link-picker/{link-search-list → search-results/link-search-list}/list-item/index.js +1 -2
  26. package/dist/es2019/ui/link-picker/{link-search-list → search-results/link-search-list}/list-item/styled.js +2 -2
  27. package/dist/es2019/ui/link-picker/{link-search-list → search-results/link-search-list}/styled.js +1 -1
  28. package/dist/es2019/ui/link-picker/{link-search-list → search-results/link-search-list}/use-track-results-shown/index.js +2 -2
  29. package/dist/es2019/ui/link-picker/search-results/styled.js +17 -0
  30. package/dist/es2019/ui/link-picker/{track-tab-viewed → search-results/track-tab-viewed}/index.js +2 -2
  31. package/dist/es2019/version.json +1 -1
  32. package/dist/esm/common/constants.js +2 -1
  33. package/dist/esm/i18n/en.js +2 -1
  34. package/dist/esm/i18n/en_GB.js +2 -1
  35. package/dist/esm/i18n/en_ZZ.js +2 -1
  36. package/dist/esm/ui/link-picker/index.js +23 -52
  37. package/dist/esm/ui/link-picker/search-results/index.js +79 -0
  38. package/dist/esm/ui/link-picker/{link-search-error → search-results/link-search-error}/index.js +1 -1
  39. package/dist/esm/ui/link-picker/{link-search-list → search-results/link-search-list}/index.js +1 -1
  40. package/dist/esm/ui/link-picker/{link-search-list → search-results/link-search-list}/list-item/index.js +1 -2
  41. package/dist/esm/ui/link-picker/{link-search-list → search-results/link-search-list}/list-item/styled.js +2 -2
  42. package/dist/esm/ui/link-picker/{link-search-list → search-results/link-search-list}/styled.js +1 -1
  43. package/dist/esm/ui/link-picker/{link-search-list → search-results/link-search-list}/use-track-results-shown/index.js +2 -2
  44. package/dist/esm/ui/link-picker/search-results/styled.js +6 -0
  45. package/dist/esm/ui/link-picker/{track-tab-viewed → search-results/track-tab-viewed}/index.js +2 -2
  46. package/dist/esm/version.json +1 -1
  47. package/dist/types/common/constants.d.ts +1 -0
  48. package/dist/types/i18n/en.d.ts +1 -0
  49. package/dist/types/i18n/en_GB.d.ts +1 -0
  50. package/dist/types/i18n/en_ZZ.d.ts +1 -0
  51. package/dist/types/ui/link-picker/index.d.ts +6 -6
  52. package/dist/types/ui/link-picker/search-results/index.d.ts +40 -0
  53. package/dist/{types-ts4.5/ui/link-picker → types/ui/link-picker/search-results}/link-search-list/index.d.ts +1 -1
  54. package/dist/{types-ts4.5/ui/link-picker → types/ui/link-picker/search-results}/link-search-list/list-item/index.d.ts +1 -1
  55. package/dist/types/ui/link-picker/{link-search-list → search-results/link-search-list}/use-track-results-shown/index.d.ts +1 -1
  56. package/dist/types/ui/link-picker/search-results/styled.d.ts +3 -0
  57. package/dist/types/ui/link-picker/{track-tab-viewed → search-results/track-tab-viewed}/index.d.ts +1 -1
  58. package/dist/types-ts4.5/common/constants.d.ts +1 -0
  59. package/dist/types-ts4.5/i18n/en.d.ts +1 -0
  60. package/dist/types-ts4.5/i18n/en_GB.d.ts +1 -0
  61. package/dist/types-ts4.5/i18n/en_ZZ.d.ts +1 -0
  62. package/dist/types-ts4.5/ui/link-picker/index.d.ts +6 -6
  63. package/dist/types-ts4.5/ui/link-picker/search-results/index.d.ts +40 -0
  64. package/dist/{types/ui/link-picker → types-ts4.5/ui/link-picker/search-results}/link-search-list/index.d.ts +1 -1
  65. package/dist/{types/ui/link-picker → types-ts4.5/ui/link-picker/search-results}/link-search-list/list-item/index.d.ts +1 -1
  66. package/dist/types-ts4.5/ui/link-picker/{link-search-list → search-results/link-search-list}/use-track-results-shown/index.d.ts +1 -1
  67. package/dist/types-ts4.5/ui/link-picker/search-results/styled.d.ts +3 -0
  68. package/dist/types-ts4.5/ui/link-picker/{track-tab-viewed → search-results/track-tab-viewed}/index.d.ts +1 -1
  69. package/package.json +4 -3
  70. /package/dist/cjs/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/index.js +0 -0
  71. /package/dist/cjs/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/no-results-svg/index.js +0 -0
  72. /package/dist/cjs/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/no-results-svg/styled.js +0 -0
  73. /package/dist/cjs/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/styled.js +0 -0
  74. /package/dist/cjs/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/index.js +0 -0
  75. /package/dist/cjs/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/scrolling-tabs.js +0 -0
  76. /package/dist/cjs/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/styles.js +0 -0
  77. /package/dist/es2019/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/index.js +0 -0
  78. /package/dist/es2019/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/no-results-svg/index.js +0 -0
  79. /package/dist/es2019/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/no-results-svg/styled.js +0 -0
  80. /package/dist/es2019/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/styled.js +0 -0
  81. /package/dist/es2019/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/index.js +0 -0
  82. /package/dist/es2019/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/scrolling-tabs.js +0 -0
  83. /package/dist/es2019/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/styles.js +0 -0
  84. /package/dist/esm/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/index.js +0 -0
  85. /package/dist/esm/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/no-results-svg/index.js +0 -0
  86. /package/dist/esm/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/no-results-svg/styled.js +0 -0
  87. /package/dist/esm/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/styled.js +0 -0
  88. /package/dist/esm/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/index.js +0 -0
  89. /package/dist/esm/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/scrolling-tabs.js +0 -0
  90. /package/dist/esm/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/styles.js +0 -0
  91. /package/dist/types/ui/link-picker/{link-search-error → search-results/link-search-error}/index.d.ts +0 -0
  92. /package/dist/types/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/index.d.ts +0 -0
  93. /package/dist/types/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/no-results-svg/index.d.ts +0 -0
  94. /package/dist/types/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/no-results-svg/styled.d.ts +0 -0
  95. /package/dist/types/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/styled.d.ts +0 -0
  96. /package/dist/types/ui/link-picker/{link-search-list → search-results/link-search-list}/list-item/styled.d.ts +0 -0
  97. /package/dist/types/ui/link-picker/{link-search-list → search-results/link-search-list}/styled.d.ts +0 -0
  98. /package/dist/types/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/index.d.ts +0 -0
  99. /package/dist/types/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/scrolling-tabs.d.ts +0 -0
  100. /package/dist/types/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/styles.d.ts +0 -0
  101. /package/dist/types-ts4.5/ui/link-picker/{link-search-error → search-results/link-search-error}/index.d.ts +0 -0
  102. /package/dist/types-ts4.5/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/index.d.ts +0 -0
  103. /package/dist/types-ts4.5/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/no-results-svg/index.d.ts +0 -0
  104. /package/dist/types-ts4.5/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/no-results-svg/styled.d.ts +0 -0
  105. /package/dist/types-ts4.5/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/styled.d.ts +0 -0
  106. /package/dist/types-ts4.5/ui/link-picker/{link-search-list → search-results/link-search-list}/list-item/styled.d.ts +0 -0
  107. /package/dist/types-ts4.5/ui/link-picker/{link-search-list → search-results/link-search-list}/styled.d.ts +0 -0
  108. /package/dist/types-ts4.5/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/index.d.ts +0 -0
  109. /package/dist/types-ts4.5/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/scrolling-tabs.d.ts +0 -0
  110. /package/dist/types-ts4.5/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/styles.d.ts +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @atlaskit/link-picker
2
2
 
3
+ ## 1.25.5
4
+
5
+ ### Patch Changes
6
+
7
+ - [`27f7faa992f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/27f7faa992f) - Minor internal refactor with no expected functional changes.
8
+
3
9
  ## 1.25.4
4
10
 
5
11
  ### Patch Changes
@@ -3,10 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.RECENT_SEARCH_LIST_SIZE = exports.COMPONENT_NAME = exports.ANALYTICS_CHANNEL = void 0;
6
+ exports.RECENT_SEARCH_LIST_SIZE = exports.LINK_PICKER_WIDTH_IN_PX = exports.COMPONENT_NAME = exports.ANALYTICS_CHANNEL = void 0;
7
7
  var ANALYTICS_CHANNEL = 'media';
8
8
  exports.ANALYTICS_CHANNEL = ANALYTICS_CHANNEL;
9
9
  var COMPONENT_NAME = 'linkPicker';
10
10
  exports.COMPONENT_NAME = COMPONENT_NAME;
11
11
  var RECENT_SEARCH_LIST_SIZE = 5;
12
- exports.RECENT_SEARCH_LIST_SIZE = RECENT_SEARCH_LIST_SIZE;
12
+ exports.RECENT_SEARCH_LIST_SIZE = RECENT_SEARCH_LIST_SIZE;
13
+ var LINK_PICKER_WIDTH_IN_PX = 342;
14
+ exports.LINK_PICKER_WIDTH_IN_PX = LINK_PICKER_WIDTH_IN_PX;
@@ -38,6 +38,7 @@ var _default = {
38
38
  'fabric.linkPicker.time.message.updated': 'Updated {time}',
39
39
  'fabric.linkPicker.time.message.viewed': 'Viewed {time}',
40
40
  'fabric.linkPicker.unhandledError.description': 'Try reloading the page.',
41
- 'fabric.linkPicker.unhandledError.heading': 'Something went wrong!'
41
+ 'fabric.linkPicker.unhandledError.heading': 'Something went wrong!',
42
+ foo: 'Default string'
42
43
  };
43
44
  exports.default = _default;
@@ -38,6 +38,7 @@ var _default = {
38
38
  'fabric.linkPicker.time.message.updated': 'Updated {time}',
39
39
  'fabric.linkPicker.time.message.viewed': 'Viewed {time}',
40
40
  'fabric.linkPicker.unhandledError.description': 'Try reloading the page.',
41
- 'fabric.linkPicker.unhandledError.heading': 'Something went wrong!'
41
+ 'fabric.linkPicker.unhandledError.heading': 'Something went wrong!',
42
+ foo: 'Default string'
42
43
  };
43
44
  exports.default = _default;
@@ -38,6 +38,7 @@ var _default = {
38
38
  'fabric.linkPicker.time.message.updated': '⁣⁢Updated {time}‌‍⁡؜؜⁠‌⁣⁤',
39
39
  'fabric.linkPicker.time.message.viewed': '⁣⁢Viewed {time}‌⁡؜‌‍‍؜؜⁠‍‍‌⁣⁤',
40
40
  'fabric.linkPicker.unhandledError.description': '⁣⁢Try reloading the page.‌‍⁡‌⁠‍⁠‍⁠⁠؜؜‍⁣⁤',
41
- 'fabric.linkPicker.unhandledError.heading': '⁣⁢Something went wrong!؜⁠‌⁠⁠‍⁠⁡⁠⁣⁤'
41
+ 'fabric.linkPicker.unhandledError.heading': '⁣⁢Something went wrong!؜⁠‌⁠⁠‍⁠⁡⁠⁣⁤',
42
+ foo: '⁣⁢Default string⁡‍⁡⁠‍‍⁡‌⁠⁡⁡‌⁠⁣⁤'
42
43
  };
43
44
  exports.default = _default;
@@ -1,12 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.testIds = exports.LinkPicker = void 0;
9
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
10
  var _react = require("react");
@@ -15,41 +13,29 @@ var _reactIntlNext = require("react-intl-next");
15
13
  var _analyticsNext = require("@atlaskit/analytics-next");
16
14
  var _url2 = require("@atlaskit/linking-common/url");
17
15
  var _userAgent = require("@atlaskit/linking-common/user-agent");
18
- var _spinner = _interopRequireDefault(require("@atlaskit/spinner/spinner"));
19
- var _tabs = _interopRequireWildcard(require("@atlaskit/tabs"));
20
16
  var _visuallyHidden = _interopRequireDefault(require("@atlaskit/visually-hidden"));
21
17
  var _analytics = require("../../common/analytics");
22
18
  var _constants = require("../../common/constants");
23
19
  var _analytics2 = _interopRequireDefault(require("../../common/utils/analytics/analytics.codegen"));
24
20
  var _handleNavKeyDown = require("../../common/utils/handleNavKeyDown");
25
- var _useFixHeight = require("../../controllers/use-fix-height");
26
21
  var _usePlugins2 = require("../../services/use-plugins");
27
22
  var _useSearchQuery = require("../../services/use-search-query");
28
23
  var _announcer = require("./announcer");
29
24
  var _formFooter = require("./form-footer");
30
- var _linkSearchError = require("./link-search-error");
31
- var _linkSearchList = require("./link-search-list");
32
- var _styled = require("./link-search-list/styled");
33
25
  var _messages = require("./messages");
34
- var _scrollingTabs = require("./scrolling-tabs");
35
- var _styled2 = require("./styled");
26
+ var _searchResults = require("./search-results");
27
+ var _styled = require("./styled");
36
28
  var _textInput = require("./text-input");
37
29
  var _trackMount = require("./track-mount");
38
- var _trackTabViewed = require("./track-tab-viewed");
39
30
  var _utils = require("./utils");
40
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
41
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
42
31
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
43
32
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } /** @jsx jsx */
44
- var testIds = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
33
+ var testIds = _objectSpread(_objectSpread(_objectSpread({
45
34
  linkPickerRoot: 'link-picker-root',
46
35
  linkPicker: 'link-picker',
47
36
  urlInputField: 'link-url',
48
37
  textInputField: 'link-text'
49
- }, _formFooter.testIds), _linkSearchError.testIds), _linkSearchList.testIds), _textInput.testIds), {}, {
50
- tabList: 'link-picker-tabs',
51
- tabItem: 'link-picker-tab'
52
- });
38
+ }, _searchResults.testIds), _formFooter.testIds), _textInput.testIds);
53
39
  exports.testIds = testIds;
54
40
  var initState = {
55
41
  url: '',
@@ -87,7 +73,6 @@ var LinkInputField = (0, _analytics.withInputFieldTracking)(_textInput.TextInput
87
73
  });
88
74
  var DisplayTextInputField = (0, _analytics.withInputFieldTracking)(_textInput.TextInput, 'displayText');
89
75
  var LinkPicker = (0, _analytics.withLinkPickerAnalyticsContext)( /*#__PURE__*/(0, _react.memo)(function (_ref) {
90
- var _activePlugin$errorFa, _activePlugin$errorFa2;
91
76
  var onSubmit = _ref.onSubmit,
92
77
  onCancel = _ref.onCancel,
93
78
  onContentResize = _ref.onContentResize,
@@ -123,7 +108,6 @@ var LinkPicker = (0, _analytics.withLinkPickerAnalyticsContext)( /*#__PURE__*/(0
123
108
  error = _usePlugins.error,
124
109
  retry = _usePlugins.retry,
125
110
  pluginAction = _usePlugins.pluginAction;
126
- var fixListHeightProps = (0, _useFixHeight.useFixHeight)(isLoadingResults);
127
111
  var isEditing = !!initUrl;
128
112
  var selectedItem = items === null || items === void 0 ? void 0 : items[selectedIndex];
129
113
  var isSelectedItem = (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.url) === url;
@@ -290,15 +274,9 @@ var LinkPicker = (0, _analytics.withLinkPickerAnalyticsContext)( /*#__PURE__*/(0
290
274
  // as the Aria design pattern for combobox does not work in this case
291
275
  // for details: https://a11y-internal.atlassian.net/browse/AK-740
292
276
  var screenReaderText = (0, _userAgent.browser)().safari && (0, _utils.getScreenReaderText)(items !== null && items !== void 0 ? items : [], selectedIndex, intl);
293
- var tabList = (0, _react2.jsx)(_tabs.TabList, null, tabs.map(function (tab) {
294
- return (0, _react2.jsx)(_tabs.Tab, {
295
- key: tab.tabTitle,
296
- testId: testIds.tabItem
297
- }, tab.tabTitle);
298
- }));
299
277
  return (0, _react2.jsx)("form", {
300
278
  "data-testid": testIds.linkPicker,
301
- css: _styled2.rootContainerStyles,
279
+ css: _styled.rootContainerStyles,
302
280
  onSubmit: handleSubmit
303
281
  }, (0, _react2.jsx)(_trackMount.TrackMount, null), screenReaderText && (0, _react2.jsx)(_announcer.Announcer, {
304
282
  ariaLive: "assertive",
@@ -338,35 +316,25 @@ var LinkPicker = (0, _analytics.withLinkPickerAnalyticsContext)( /*#__PURE__*/(0
338
316
  "aria-label": intl.formatMessage(_messages.linkTextMessages.linkTextAriaLabel),
339
317
  onClear: handleClear,
340
318
  onChange: handleChangeText
341
- }), isLoadingPlugins && !!queryState && (0, _react2.jsx)("div", {
342
- css: _styled.spinnerContainerStyles
343
- }, (0, _react2.jsx)(_spinner.default, {
344
- testId: testIds.tabsLoadingIndicator,
345
- size: "medium"
346
- })), !isLoadingPlugins && isActivePlugin && !!queryState && (0, _react2.jsx)(_react.Fragment, null, tabs.length > 0 && (0, _react2.jsx)("div", {
347
- css: _styled2.tabsWrapperStyles
348
- }, (0, _react2.jsx)(_tabs.default, {
349
- id: testIds.tabList,
350
- testId: testIds.tabList,
351
- selected: activeTab,
352
- onChange: handleTabChange
353
- }, featureFlags !== null && featureFlags !== void 0 && featureFlags.scrollingTabs ? (0, _react2.jsx)(_scrollingTabs.ScrollingTabList, null, tabList) : tabList), (0, _react2.jsx)(_trackTabViewed.TrackTabViewed, {
354
- activePlugin: activePlugin
355
- })), (0, _react2.jsx)("div", (0, _extends2.default)({
356
- css: _styled2.flexColumnStyles
357
- }, fixListHeightProps), !error && (0, _react2.jsx)(_linkSearchList.LinkSearchList, {
358
- id: linkSearchListId,
359
- role: "listbox",
360
- items: items,
361
- isLoading: isLoadingResults,
362
- selectedIndex: selectedIndex,
319
+ }), !!queryState && (0, _react2.jsx)(_searchResults.SearchResults, {
320
+ activeTab: activeTab,
321
+ tabs: tabs,
322
+ activePlugin: activePlugin,
323
+ isLoadingResults: isLoadingResults,
324
+ isLoadingPlugins: isLoadingPlugins,
325
+ linkSearchListId: linkSearchListId,
326
+ error: error,
327
+ featureFlags: featureFlags,
363
328
  activeIndex: activeIndex,
364
- onSelect: handleSelected,
365
- onChange: handleSearchListOnChange,
366
- onKeyDown: handleKeyDown,
367
- hasSearchTerm: !!(queryState !== null && queryState !== void 0 && queryState.query.length),
368
- activePlugin: activePlugin
369
- }), error && ((_activePlugin$errorFa = activePlugin === null || activePlugin === void 0 ? void 0 : (_activePlugin$errorFa2 = activePlugin.errorFallback) === null || _activePlugin$errorFa2 === void 0 ? void 0 : _activePlugin$errorFa2.call(activePlugin, error, retry)) !== null && _activePlugin$errorFa !== void 0 ? _activePlugin$errorFa : (0, _react2.jsx)(_linkSearchError.LinkSearchError, null)))), (0, _react2.jsx)(_formFooter.FormFooter, {
329
+ selectedIndex: selectedIndex,
330
+ items: items,
331
+ queryState: queryState,
332
+ handleKeyDown: handleKeyDown,
333
+ handleSelected: handleSelected,
334
+ handleTabChange: handleTabChange,
335
+ handleSearchListOnChange: handleSearchListOnChange,
336
+ retry: retry
337
+ }), (0, _react2.jsx)(_formFooter.FormFooter, {
370
338
  error: error,
371
339
  items: items
372
340
  /** If the results section appears to be loading, impact whether the submit button is disabled */,
@@ -376,7 +344,7 @@ var LinkPicker = (0, _analytics.withLinkPickerAnalyticsContext)( /*#__PURE__*/(0
376
344
  isEditing: isEditing,
377
345
  onCancel: onCancel,
378
346
  action: pluginAction,
379
- css: !queryState || !(plugins !== null && plugins !== void 0 && plugins.length) ? _styled2.formFooterMargin : undefined
347
+ css: !queryState || !(plugins !== null && plugins !== void 0 && plugins.length) ? _styled.formFooterMargin : undefined
380
348
  }));
381
349
  }));
382
350
  exports.LinkPicker = LinkPicker;
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.testIds = exports.SearchResults = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _react = require("react");
12
+ var _react2 = require("@emotion/react");
13
+ var _spinner = _interopRequireDefault(require("@atlaskit/spinner/spinner"));
14
+ var _tabs = _interopRequireWildcard(require("@atlaskit/tabs"));
15
+ var _useFixHeight = require("../../../controllers/use-fix-height");
16
+ var _linkSearchError = require("./link-search-error");
17
+ var _linkSearchList = require("./link-search-list");
18
+ var _scrollingTabs = require("./scrolling-tabs");
19
+ var _styled = require("./styled");
20
+ var _trackTabViewed = require("./track-tab-viewed");
21
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
24
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } /** @jsx jsx */
25
+ var testIds = _objectSpread(_objectSpread(_objectSpread({}, _linkSearchError.testIds), _linkSearchList.testIds), {}, {
26
+ tabsLoadingIndicator: 'link-picker.tabs-loading-indicator',
27
+ tabList: 'link-picker-tabs',
28
+ tabItem: 'link-picker-tab'
29
+ });
30
+ exports.testIds = testIds;
31
+ var SearchResults = function SearchResults(_ref) {
32
+ var _activePlugin$errorFa, _activePlugin$errorFa2;
33
+ var tabs = _ref.tabs,
34
+ activeTab = _ref.activeTab,
35
+ activePlugin = _ref.activePlugin,
36
+ isLoadingPlugins = _ref.isLoadingPlugins,
37
+ isLoadingResults = _ref.isLoadingResults,
38
+ handleTabChange = _ref.handleTabChange,
39
+ handleSearchListOnChange = _ref.handleSearchListOnChange,
40
+ featureFlags = _ref.featureFlags,
41
+ linkSearchListId = _ref.linkSearchListId,
42
+ error = _ref.error,
43
+ queryState = _ref.queryState,
44
+ items = _ref.items,
45
+ activeIndex = _ref.activeIndex,
46
+ selectedIndex = _ref.selectedIndex,
47
+ handleSelected = _ref.handleSelected,
48
+ handleKeyDown = _ref.handleKeyDown,
49
+ retry = _ref.retry;
50
+ var isActivePlugin = !!activePlugin;
51
+
52
+ // This will be redundant if we move towards fixed height search results section
53
+ var fixListHeightProps = (0, _useFixHeight.useFixHeight)(isLoadingResults);
54
+ var tabList = (0, _react2.jsx)(_tabs.TabList, null, tabs.map(function (tab) {
55
+ return (0, _react2.jsx)(_tabs.Tab, {
56
+ key: tab.tabTitle,
57
+ testId: testIds.tabItem
58
+ }, tab.tabTitle);
59
+ }));
60
+ return (0, _react2.jsx)(_react.Fragment, null, isLoadingPlugins && !!queryState && (0, _react2.jsx)("div", {
61
+ css: _styled.spinnerContainerStyles
62
+ }, (0, _react2.jsx)(_spinner.default, {
63
+ testId: testIds.tabsLoadingIndicator,
64
+ size: "medium"
65
+ })), !isLoadingPlugins && isActivePlugin && !!queryState && (0, _react2.jsx)(_react.Fragment, null, tabs.length > 0 && (0, _react2.jsx)("div", {
66
+ css: _styled.tabsWrapperStyles
67
+ }, (0, _react2.jsx)(_tabs.default, {
68
+ id: testIds.tabList,
69
+ testId: testIds.tabList,
70
+ selected: activeTab,
71
+ onChange: handleTabChange
72
+ }, featureFlags !== null && featureFlags !== void 0 && featureFlags.scrollingTabs ? (0, _react2.jsx)(_scrollingTabs.ScrollingTabList, null, tabList) : tabList), (0, _react2.jsx)(_trackTabViewed.TrackTabViewed, {
73
+ activePlugin: activePlugin
74
+ })), (0, _react2.jsx)("div", (0, _extends2.default)({
75
+ css: _styled.flexColumnStyles
76
+ }, fixListHeightProps), !error && (0, _react2.jsx)(_linkSearchList.LinkSearchList, {
77
+ id: linkSearchListId,
78
+ role: "listbox",
79
+ items: items,
80
+ isLoading: isLoadingResults,
81
+ selectedIndex: selectedIndex,
82
+ activeIndex: activeIndex,
83
+ onSelect: handleSelected,
84
+ onChange: handleSearchListOnChange,
85
+ onKeyDown: handleKeyDown,
86
+ hasSearchTerm: !!(queryState !== null && queryState !== void 0 && queryState.query.length),
87
+ activePlugin: activePlugin
88
+ }), error && ((_activePlugin$errorFa = activePlugin === null || activePlugin === void 0 ? void 0 : (_activePlugin$errorFa2 = activePlugin.errorFallback) === null || _activePlugin$errorFa2 === void 0 ? void 0 : _activePlugin$errorFa2.call(activePlugin, error, retry)) !== null && _activePlugin$errorFa !== void 0 ? _activePlugin$errorFa : (0, _react2.jsx)(_linkSearchError.LinkSearchError, null)))));
89
+ };
90
+ exports.SearchResults = SearchResults;
@@ -10,7 +10,7 @@ var _react = require("@emotion/react");
10
10
  var _reactIntlNext = require("react-intl-next");
11
11
  var _button = _interopRequireDefault(require("@atlaskit/button"));
12
12
  var _emptyState = _interopRequireDefault(require("@atlaskit/empty-state"));
13
- var _genericErrorSvg = require("../../../common/generic-error-svg");
13
+ var _genericErrorSvg = require("../../../../common/generic-error-svg");
14
14
  /** @jsx jsx */
15
15
 
16
16
  var CONTACT_SUPPORT_LINK = 'https://support.atlassian.com/contact/';
@@ -14,7 +14,7 @@ var _reactIntlNext = require("react-intl-next");
14
14
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
15
15
  var _spinner = _interopRequireDefault(require("@atlaskit/spinner"));
16
16
  var _visuallyHidden = _interopRequireDefault(require("@atlaskit/visually-hidden"));
17
- var _handleNavKeyDown = require("../../../common/utils/handleNavKeyDown");
17
+ var _handleNavKeyDown = require("../../../../common/utils/handleNavKeyDown");
18
18
  var _linkSearchNoResults = require("./link-search-no-results");
19
19
  var _styled = require("./link-search-no-results/styled");
20
20
  var _listItem = require("./list-item");
@@ -7,7 +7,7 @@ exports.testIds = exports.LinkSearchListItem = void 0;
7
7
  var _react = require("react");
8
8
  var _react2 = require("@emotion/react");
9
9
  var _reactIntlNext = require("react-intl-next");
10
- var _transformTimeStamp = require("../../transformTimeStamp");
10
+ var _transformTimeStamp = require("../../../transformTimeStamp");
11
11
  var _styled = require("./styled");
12
12
  /** @jsx jsx */
13
13
 
@@ -54,7 +54,6 @@ var ListItemIcon = function ListItemIcon(props) {
54
54
  var LinkSearchListItem = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
55
55
  var item = _ref.item,
56
56
  selected = _ref.selected,
57
- active = _ref.active,
58
57
  id = _ref.id,
59
58
  role = _ref.role,
60
59
  onSelect = _ref.onSelect,
@@ -23,7 +23,7 @@ var relativeFontSizeToBase16 = function relativeFontSizeToBase16(px) {
23
23
  return "".concat(px / 16, "rem");
24
24
  };
25
25
  exports.relativeFontSizeToBase16 = relativeFontSizeToBase16;
26
- var listItemBaseStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n padding: ", " ", ";\n margin: 0 calc(-1 * ", ");\n cursor: pointer;\n"])), "var(--ds-space-100, 8px)", "var(--ds-space-200, 16px)", "var(--ds-space-200, 16px)");
26
+ var listItemBaseStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n padding: ", " ", ";\n margin: 0;\n cursor: pointer;\n"])), "var(--ds-space-100, 8px)", "var(--ds-space-200, 16px)");
27
27
  var listItemFocusStyles = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px ", " inset;\n text-decoration: none;\n }\n"])), "var(--ds-border-focused, ".concat(_colors.B100, ")"));
28
28
  var listItemBoxShadow = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n box-shadow: inset 2px 0px 0px ", ";\n"])), "var(--ds-border-selected, ".concat(_colors.B400, ")"));
29
29
  var listItemActive = (0, _react.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n &:hover {\n background-color: ", ";\n ", ";\n }\n"])), "var(--ds-background-neutral-subtle-hovered, ".concat(_colors.N20, ")"), listItemBoxShadow);
@@ -43,7 +43,7 @@ var listItemContainerStyles = (0, _react.css)(_templateObject10 || (_templateObj
43
43
  exports.listItemContainerStyles = listItemContainerStyles;
44
44
  var listItemContainerInnerStyles = (0, _react.css)(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n white-space: nowrap;\n"])), "var(--ds-text-subtlest, ".concat(_colors.N200, ")"));
45
45
 
46
- // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage-spacing
46
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage
47
47
  exports.listItemContainerInnerStyles = listItemContainerInnerStyles;
48
48
  var itemIconStyles = (0, _react.css)(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2.default)(["\n min-width: ", ";\n margin-top: 3px;\n margin-right: ", ";\n"])), "var(--ds-space-200, 16px)", "var(--ds-space-150, 12px)");
49
49
  exports.itemIconStyles = itemIconStyles;
@@ -14,7 +14,7 @@ var listContainerStyles = (0, _react.css)(_templateObject || (_templateObject =
14
14
  exports.listContainerStyles = listContainerStyles;
15
15
  var spinnerContainerStyles = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n text-align: center;\n min-height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n"])));
16
16
  exports.spinnerContainerStyles = spinnerContainerStyles;
17
- var listStyles = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n padding: 0;\n margin: 0;\n list-style: none;\n"])));
17
+ var listStyles = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n padding: 0;\n margin: 0 calc(-1 * ", ");\n list-style: none;\n"])), "var(--ds-space-200, 16px)");
18
18
  exports.listStyles = listStyles;
19
19
  var listTitleStyles = (0, _react.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n text-transform: uppercase;\n margin-top: 0;\n margin-bottom: ", ";\n"])), _theme.typography.h100(), "var(--ds-space-050, 4px)");
20
20
  exports.listTitleStyles = listTitleStyles;
@@ -9,8 +9,8 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
9
9
  var _react = require("react");
10
10
  var _useDebounce3 = require("use-debounce");
11
11
  var _analyticsNext = require("@atlaskit/analytics-next");
12
- var _constants = require("../../../../common/constants");
13
- var _analytics = _interopRequireDefault(require("../../../../common/utils/analytics/analytics.codegen"));
12
+ var _constants = require("../../../../../common/constants");
13
+ var _analytics = _interopRequireDefault(require("../../../../../common/utils/analytics/analytics.codegen"));
14
14
  var DEBOUNCE_MS = 400;
15
15
  var useTrackResultsShown = function useTrackResultsShown(isLoading, items, hasSearchTerm) {
16
16
  var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.tabsWrapperStyles = exports.spinnerContainerStyles = exports.flexColumnStyles = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _react = require("@emotion/react");
10
+ var _templateObject, _templateObject2, _templateObject3;
11
+ var tabsWrapperStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n margin-top: ", ";\n margin-left: calc(-1 * ", ");\n margin-right: calc(-1 * ", ");\n"])), "var(--ds-space-150, 12px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)");
12
+ exports.tabsWrapperStyles = tabsWrapperStyles;
13
+ var spinnerContainerStyles = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n min-height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n"])));
14
+ exports.spinnerContainerStyles = spinnerContainerStyles;
15
+ var flexColumnStyles = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: column;\n"])));
16
+ exports.flexColumnStyles = flexColumnStyles;
@@ -7,8 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.TrackTabViewed = TrackTabViewed;
8
8
  var _react = require("react");
9
9
  var _analyticsNext = require("@atlaskit/analytics-next");
10
- var _constants = require("../../../common/constants");
11
- var _analytics = _interopRequireDefault(require("../../../common/utils/analytics/analytics.codegen"));
10
+ var _constants = require("../../../../common/constants");
11
+ var _analytics = _interopRequireDefault(require("../../../../common/utils/analytics/analytics.codegen"));
12
12
  /** @jsx jsx */
13
13
 
14
14
  function TrackTabViewed(_ref) {
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/link-picker",
3
- "version": "1.25.4",
3
+ "version": "1.25.5",
4
4
  "sideEffects": false
5
5
  }
@@ -1,3 +1,4 @@
1
1
  export const ANALYTICS_CHANNEL = 'media';
2
2
  export const COMPONENT_NAME = 'linkPicker';
3
- export const RECENT_SEARCH_LIST_SIZE = 5;
3
+ export const RECENT_SEARCH_LIST_SIZE = 5;
4
+ export const LINK_PICKER_WIDTH_IN_PX = 342;
@@ -32,5 +32,6 @@ export default {
32
32
  'fabric.linkPicker.time.message.updated': 'Updated {time}',
33
33
  'fabric.linkPicker.time.message.viewed': 'Viewed {time}',
34
34
  'fabric.linkPicker.unhandledError.description': 'Try reloading the page.',
35
- 'fabric.linkPicker.unhandledError.heading': 'Something went wrong!'
35
+ 'fabric.linkPicker.unhandledError.heading': 'Something went wrong!',
36
+ foo: 'Default string'
36
37
  };
@@ -32,5 +32,6 @@ export default {
32
32
  'fabric.linkPicker.time.message.updated': 'Updated {time}',
33
33
  'fabric.linkPicker.time.message.viewed': 'Viewed {time}',
34
34
  'fabric.linkPicker.unhandledError.description': 'Try reloading the page.',
35
- 'fabric.linkPicker.unhandledError.heading': 'Something went wrong!'
35
+ 'fabric.linkPicker.unhandledError.heading': 'Something went wrong!',
36
+ foo: 'Default string'
36
37
  };
@@ -32,5 +32,6 @@ export default {
32
32
  'fabric.linkPicker.time.message.updated': '⁣⁢Updated {time}‌‍⁡؜؜⁠‌⁣⁤',
33
33
  'fabric.linkPicker.time.message.viewed': '⁣⁢Viewed {time}‌⁡؜‌‍‍؜؜⁠‍‍‌⁣⁤',
34
34
  'fabric.linkPicker.unhandledError.description': '⁣⁢Try reloading the page.‌‍⁡‌⁠‍⁠‍⁠⁠؜؜‍⁣⁤',
35
- 'fabric.linkPicker.unhandledError.heading': '⁣⁢Something went wrong!؜⁠‌⁠⁠‍⁠⁡⁠⁣⁤'
35
+ 'fabric.linkPicker.unhandledError.heading': '⁣⁢Something went wrong!؜⁠‌⁠⁠‍⁠⁡⁠⁣⁤',
36
+ foo: '⁣⁢Default string⁡‍⁡⁠‍‍⁡‌⁠⁡⁡‌⁠⁣⁤'
36
37
  };
@@ -1,44 +1,33 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
1
  /** @jsx jsx */
3
- import { Fragment, memo, useCallback, useLayoutEffect, useReducer } from 'react';
2
+ import { memo, useCallback, useLayoutEffect, useReducer } from 'react';
4
3
  import { jsx } from '@emotion/react';
5
4
  import { FormattedMessage, useIntl } from 'react-intl-next';
6
5
  import { useAnalyticsEvents } from '@atlaskit/analytics-next';
7
6
  import { isSafeUrl, normalizeUrl } from '@atlaskit/linking-common/url';
8
7
  import { browser } from '@atlaskit/linking-common/user-agent';
9
- import Spinner from '@atlaskit/spinner/spinner';
10
- import Tabs, { Tab, TabList } from '@atlaskit/tabs';
11
8
  import VisuallyHidden from '@atlaskit/visually-hidden';
12
9
  import { useLinkPickerAnalytics, withInputFieldTracking, withLinkPickerAnalyticsContext } from '../../common/analytics';
13
10
  import { ANALYTICS_CHANNEL } from '../../common/constants';
14
11
  import createEventPayload from '../../common/utils/analytics/analytics.codegen';
15
12
  import { handleNavKeyDown } from '../../common/utils/handleNavKeyDown';
16
- import { useFixHeight } from '../../controllers/use-fix-height';
17
13
  import { usePlugins } from '../../services/use-plugins';
18
14
  import { useSearchQuery } from '../../services/use-search-query';
19
15
  import { Announcer } from './announcer';
20
16
  import { FormFooter, testIds as formFooterTestIds } from './form-footer';
21
- import { LinkSearchError, testIds as searchErrorTestIds } from './link-search-error';
22
- import { LinkSearchList, testIds as listTestIds } from './link-search-list';
23
- import { spinnerContainerStyles } from './link-search-list/styled';
24
17
  import { formMessages, linkMessages, linkTextMessages, searchMessages } from './messages';
25
- import { ScrollingTabList } from './scrolling-tabs';
26
- import { flexColumnStyles, formFooterMargin, rootContainerStyles, tabsWrapperStyles } from './styled';
18
+ import { SearchResults, testIds as searchTestIds } from './search-results';
19
+ import { formFooterMargin, rootContainerStyles } from './styled';
27
20
  import { testIds as textFieldTestIds, TextInput } from './text-input';
28
21
  import { TrackMount } from './track-mount';
29
- import { TrackTabViewed } from './track-tab-viewed';
30
22
  import { getDataSource, getScreenReaderText } from './utils';
31
23
  export const testIds = {
32
24
  linkPickerRoot: 'link-picker-root',
33
25
  linkPicker: 'link-picker',
34
26
  urlInputField: 'link-url',
35
27
  textInputField: 'link-text',
28
+ ...searchTestIds,
36
29
  ...formFooterTestIds,
37
- ...searchErrorTestIds,
38
- ...listTestIds,
39
- ...textFieldTestIds,
40
- tabList: 'link-picker-tabs',
41
- tabItem: 'link-picker-tab'
30
+ ...textFieldTestIds
42
31
  };
43
32
  const initState = {
44
33
  url: '',
@@ -90,7 +79,6 @@ export const LinkPicker = withLinkPickerAnalyticsContext( /*#__PURE__*/memo(({
90
79
  hideDisplayText,
91
80
  featureFlags
92
81
  }) => {
93
- var _activePlugin$errorFa, _activePlugin$errorFa2;
94
82
  const {
95
83
  createAnalyticsEvent
96
84
  } = useAnalyticsEvents();
@@ -119,7 +107,6 @@ export const LinkPicker = withLinkPickerAnalyticsContext( /*#__PURE__*/memo(({
119
107
  retry,
120
108
  pluginAction
121
109
  } = usePlugins(queryState, activeTab, plugins);
122
- const fixListHeightProps = useFixHeight(isLoadingResults);
123
110
  const isEditing = !!initUrl;
124
111
  const selectedItem = items === null || items === void 0 ? void 0 : items[selectedIndex];
125
112
  const isSelectedItem = (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.url) === url;
@@ -287,10 +274,6 @@ export const LinkPicker = withLinkPickerAnalyticsContext( /*#__PURE__*/memo(({
287
274
  // as the Aria design pattern for combobox does not work in this case
288
275
  // for details: https://a11y-internal.atlassian.net/browse/AK-740
289
276
  const screenReaderText = browser().safari && getScreenReaderText(items !== null && items !== void 0 ? items : [], selectedIndex, intl);
290
- const tabList = jsx(TabList, null, tabs.map(tab => jsx(Tab, {
291
- key: tab.tabTitle,
292
- testId: testIds.tabItem
293
- }, tab.tabTitle)));
294
277
  return jsx("form", {
295
278
  "data-testid": testIds.linkPicker,
296
279
  css: rootContainerStyles,
@@ -333,35 +316,25 @@ export const LinkPicker = withLinkPickerAnalyticsContext( /*#__PURE__*/memo(({
333
316
  "aria-label": intl.formatMessage(linkTextMessages.linkTextAriaLabel),
334
317
  onClear: handleClear,
335
318
  onChange: handleChangeText
336
- }), isLoadingPlugins && !!queryState && jsx("div", {
337
- css: spinnerContainerStyles
338
- }, jsx(Spinner, {
339
- testId: testIds.tabsLoadingIndicator,
340
- size: "medium"
341
- })), !isLoadingPlugins && isActivePlugin && !!queryState && jsx(Fragment, null, tabs.length > 0 && jsx("div", {
342
- css: tabsWrapperStyles
343
- }, jsx(Tabs, {
344
- id: testIds.tabList,
345
- testId: testIds.tabList,
346
- selected: activeTab,
347
- onChange: handleTabChange
348
- }, featureFlags !== null && featureFlags !== void 0 && featureFlags.scrollingTabs ? jsx(ScrollingTabList, null, tabList) : tabList), jsx(TrackTabViewed, {
349
- activePlugin: activePlugin
350
- })), jsx("div", _extends({
351
- css: flexColumnStyles
352
- }, fixListHeightProps), !error && jsx(LinkSearchList, {
353
- id: linkSearchListId,
354
- role: "listbox",
355
- items: items,
356
- isLoading: isLoadingResults,
357
- selectedIndex: selectedIndex,
319
+ }), !!queryState && jsx(SearchResults, {
320
+ activeTab: activeTab,
321
+ tabs: tabs,
322
+ activePlugin: activePlugin,
323
+ isLoadingResults: isLoadingResults,
324
+ isLoadingPlugins: isLoadingPlugins,
325
+ linkSearchListId: linkSearchListId,
326
+ error: error,
327
+ featureFlags: featureFlags,
358
328
  activeIndex: activeIndex,
359
- onSelect: handleSelected,
360
- onChange: handleSearchListOnChange,
361
- onKeyDown: handleKeyDown,
362
- hasSearchTerm: !!(queryState !== null && queryState !== void 0 && queryState.query.length),
363
- activePlugin: activePlugin
364
- }), error && ((_activePlugin$errorFa = activePlugin === null || activePlugin === void 0 ? void 0 : (_activePlugin$errorFa2 = activePlugin.errorFallback) === null || _activePlugin$errorFa2 === void 0 ? void 0 : _activePlugin$errorFa2.call(activePlugin, error, retry)) !== null && _activePlugin$errorFa !== void 0 ? _activePlugin$errorFa : jsx(LinkSearchError, null)))), jsx(FormFooter, {
329
+ selectedIndex: selectedIndex,
330
+ items: items,
331
+ queryState: queryState,
332
+ handleKeyDown: handleKeyDown,
333
+ handleSelected: handleSelected,
334
+ handleTabChange: handleTabChange,
335
+ handleSearchListOnChange: handleSearchListOnChange,
336
+ retry: retry
337
+ }), jsx(FormFooter, {
365
338
  error: error,
366
339
  items: items
367
340
  /** If the results section appears to be loading, impact whether the submit button is disabled */,