@atlaskit/link-picker 1.25.4 → 1.25.6
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 +12 -0
- package/dist/cjs/common/constants.js +4 -2
- package/dist/cjs/i18n/en.js +2 -1
- package/dist/cjs/i18n/en_GB.js +2 -1
- package/dist/cjs/i18n/en_ZZ.js +2 -1
- package/dist/cjs/ui/link-picker/index.js +24 -56
- package/dist/cjs/ui/link-picker/search-results/index.js +90 -0
- package/dist/cjs/ui/link-picker/{link-search-error → search-results/link-search-error}/index.js +1 -1
- package/dist/cjs/ui/link-picker/{link-search-list → search-results/link-search-list}/index.js +5 -10
- package/dist/cjs/ui/link-picker/{link-search-list → search-results/link-search-list}/list-item/index.js +1 -2
- package/dist/cjs/ui/link-picker/{link-search-list → search-results/link-search-list}/list-item/styled.js +2 -2
- package/dist/cjs/ui/link-picker/{link-search-list → search-results/link-search-list}/styled.js +1 -1
- package/dist/cjs/ui/link-picker/{link-search-list → search-results/link-search-list}/use-track-results-shown/index.js +2 -2
- package/dist/cjs/ui/link-picker/search-results/styled.js +16 -0
- package/dist/cjs/ui/link-picker/{track-tab-viewed → search-results/track-tab-viewed}/index.js +2 -2
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/common/constants.js +2 -1
- package/dist/es2019/i18n/en.js +2 -1
- package/dist/es2019/i18n/en_GB.js +2 -1
- package/dist/es2019/i18n/en_ZZ.js +2 -1
- package/dist/es2019/ui/link-picker/index.js +23 -50
- package/dist/es2019/ui/link-picker/search-results/index.js +77 -0
- package/dist/es2019/ui/link-picker/{link-search-error → search-results/link-search-error}/index.js +1 -1
- package/dist/es2019/ui/link-picker/{link-search-list → search-results/link-search-list}/index.js +3 -10
- package/dist/es2019/ui/link-picker/{link-search-list → search-results/link-search-list}/list-item/index.js +1 -2
- package/dist/es2019/ui/link-picker/{link-search-list → search-results/link-search-list}/list-item/styled.js +2 -2
- package/dist/es2019/ui/link-picker/{link-search-list → search-results/link-search-list}/styled.js +1 -1
- package/dist/es2019/ui/link-picker/{link-search-list → search-results/link-search-list}/use-track-results-shown/index.js +2 -2
- package/dist/es2019/ui/link-picker/search-results/styled.js +17 -0
- package/dist/es2019/ui/link-picker/{track-tab-viewed → search-results/track-tab-viewed}/index.js +2 -2
- package/dist/es2019/version.json +1 -1
- package/dist/esm/common/constants.js +2 -1
- package/dist/esm/i18n/en.js +2 -1
- package/dist/esm/i18n/en_GB.js +2 -1
- package/dist/esm/i18n/en_ZZ.js +2 -1
- package/dist/esm/ui/link-picker/index.js +23 -52
- package/dist/esm/ui/link-picker/search-results/index.js +79 -0
- package/dist/esm/ui/link-picker/{link-search-error → search-results/link-search-error}/index.js +1 -1
- package/dist/esm/ui/link-picker/{link-search-list → search-results/link-search-list}/index.js +5 -10
- package/dist/esm/ui/link-picker/{link-search-list → search-results/link-search-list}/list-item/index.js +1 -2
- package/dist/esm/ui/link-picker/{link-search-list → search-results/link-search-list}/list-item/styled.js +2 -2
- package/dist/esm/ui/link-picker/{link-search-list → search-results/link-search-list}/styled.js +1 -1
- package/dist/esm/ui/link-picker/{link-search-list → search-results/link-search-list}/use-track-results-shown/index.js +2 -2
- package/dist/esm/ui/link-picker/search-results/styled.js +6 -0
- package/dist/esm/ui/link-picker/{track-tab-viewed → search-results/track-tab-viewed}/index.js +2 -2
- package/dist/esm/version.json +1 -1
- package/dist/types/common/constants.d.ts +1 -0
- package/dist/types/i18n/en.d.ts +1 -0
- package/dist/types/i18n/en_GB.d.ts +1 -0
- package/dist/types/i18n/en_ZZ.d.ts +1 -0
- package/dist/types/ui/link-picker/index.d.ts +6 -6
- package/dist/types/ui/link-picker/search-results/index.d.ts +40 -0
- package/dist/{types-ts4.5/ui/link-picker → types/ui/link-picker/search-results}/link-search-list/index.d.ts +1 -1
- package/dist/{types-ts4.5/ui/link-picker → types/ui/link-picker/search-results}/link-search-list/list-item/index.d.ts +1 -1
- package/dist/types/ui/link-picker/{link-search-list → search-results/link-search-list}/use-track-results-shown/index.d.ts +1 -1
- package/dist/types/ui/link-picker/search-results/styled.d.ts +3 -0
- package/dist/types/ui/link-picker/{track-tab-viewed → search-results/track-tab-viewed}/index.d.ts +1 -1
- package/dist/types-ts4.5/common/constants.d.ts +1 -0
- package/dist/types-ts4.5/i18n/en.d.ts +1 -0
- package/dist/types-ts4.5/i18n/en_GB.d.ts +1 -0
- package/dist/types-ts4.5/i18n/en_ZZ.d.ts +1 -0
- package/dist/types-ts4.5/ui/link-picker/index.d.ts +6 -6
- package/dist/types-ts4.5/ui/link-picker/search-results/index.d.ts +40 -0
- package/dist/{types/ui/link-picker → types-ts4.5/ui/link-picker/search-results}/link-search-list/index.d.ts +1 -1
- package/dist/{types/ui/link-picker → types-ts4.5/ui/link-picker/search-results}/link-search-list/list-item/index.d.ts +1 -1
- 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
- package/dist/types-ts4.5/ui/link-picker/search-results/styled.d.ts +3 -0
- package/dist/types-ts4.5/ui/link-picker/{track-tab-viewed → search-results/track-tab-viewed}/index.d.ts +1 -1
- package/package.json +6 -5
- /package/dist/cjs/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/index.js +0 -0
- /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
- /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
- /package/dist/cjs/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/styled.js +0 -0
- /package/dist/cjs/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/index.js +0 -0
- /package/dist/cjs/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/scrolling-tabs.js +0 -0
- /package/dist/cjs/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/styles.js +0 -0
- /package/dist/es2019/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/index.js +0 -0
- /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
- /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
- /package/dist/es2019/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/styled.js +0 -0
- /package/dist/es2019/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/index.js +0 -0
- /package/dist/es2019/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/scrolling-tabs.js +0 -0
- /package/dist/es2019/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/styles.js +0 -0
- /package/dist/esm/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/index.js +0 -0
- /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
- /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
- /package/dist/esm/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/styled.js +0 -0
- /package/dist/esm/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/index.js +0 -0
- /package/dist/esm/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/scrolling-tabs.js +0 -0
- /package/dist/esm/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/styles.js +0 -0
- /package/dist/types/ui/link-picker/{link-search-error → search-results/link-search-error}/index.d.ts +0 -0
- /package/dist/types/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/index.d.ts +0 -0
- /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
- /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
- /package/dist/types/ui/link-picker/{link-search-list → search-results/link-search-list}/link-search-no-results/styled.d.ts +0 -0
- /package/dist/types/ui/link-picker/{link-search-list → search-results/link-search-list}/list-item/styled.d.ts +0 -0
- /package/dist/types/ui/link-picker/{link-search-list → search-results/link-search-list}/styled.d.ts +0 -0
- /package/dist/types/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/index.d.ts +0 -0
- /package/dist/types/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/scrolling-tabs.d.ts +0 -0
- /package/dist/types/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/styles.d.ts +0 -0
- /package/dist/types-ts4.5/ui/link-picker/{link-search-error → search-results/link-search-error}/index.d.ts +0 -0
- /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
- /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
- /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
- /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
- /package/dist/types-ts4.5/ui/link-picker/{link-search-list → search-results/link-search-list}/list-item/styled.d.ts +0 -0
- /package/dist/types-ts4.5/ui/link-picker/{link-search-list → search-results/link-search-list}/styled.d.ts +0 -0
- /package/dist/types-ts4.5/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/index.d.ts +0 -0
- /package/dist/types-ts4.5/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/scrolling-tabs.d.ts +0 -0
- /package/dist/types-ts4.5/ui/link-picker/{scrolling-tabs → search-results/scrolling-tabs}/styles.d.ts +0 -0
|
@@ -1,44 +1,33 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/extends";
|
|
2
1
|
/** @jsx jsx */
|
|
3
|
-
import {
|
|
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 {
|
|
26
|
-
import {
|
|
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
|
-
...
|
|
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
|
-
}),
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
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
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
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 */,
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
/** @jsx jsx */
|
|
3
|
+
import { Fragment } from 'react';
|
|
4
|
+
import { jsx } from '@emotion/react';
|
|
5
|
+
import Spinner from '@atlaskit/spinner/spinner';
|
|
6
|
+
import Tabs, { Tab, TabList } from '@atlaskit/tabs';
|
|
7
|
+
import { useFixHeight } from '../../../controllers/use-fix-height';
|
|
8
|
+
import { LinkSearchError, testIds as searchErrorTestIds } from './link-search-error';
|
|
9
|
+
import { LinkSearchList, testIds as listTestIds } from './link-search-list';
|
|
10
|
+
import { ScrollingTabList } from './scrolling-tabs';
|
|
11
|
+
import { flexColumnStyles, spinnerContainerStyles, tabsWrapperStyles } from './styled';
|
|
12
|
+
import { TrackTabViewed } from './track-tab-viewed';
|
|
13
|
+
export const testIds = {
|
|
14
|
+
...searchErrorTestIds,
|
|
15
|
+
...listTestIds,
|
|
16
|
+
tabsLoadingIndicator: 'link-picker.tabs-loading-indicator',
|
|
17
|
+
tabList: 'link-picker-tabs',
|
|
18
|
+
tabItem: 'link-picker-tab'
|
|
19
|
+
};
|
|
20
|
+
export const SearchResults = ({
|
|
21
|
+
tabs,
|
|
22
|
+
activeTab,
|
|
23
|
+
activePlugin,
|
|
24
|
+
isLoadingPlugins,
|
|
25
|
+
isLoadingResults,
|
|
26
|
+
handleTabChange,
|
|
27
|
+
handleSearchListOnChange,
|
|
28
|
+
featureFlags,
|
|
29
|
+
linkSearchListId,
|
|
30
|
+
error,
|
|
31
|
+
queryState,
|
|
32
|
+
items,
|
|
33
|
+
activeIndex,
|
|
34
|
+
selectedIndex,
|
|
35
|
+
handleSelected,
|
|
36
|
+
handleKeyDown,
|
|
37
|
+
retry
|
|
38
|
+
}) => {
|
|
39
|
+
var _activePlugin$errorFa, _activePlugin$errorFa2;
|
|
40
|
+
const isActivePlugin = !!activePlugin;
|
|
41
|
+
|
|
42
|
+
// This will be redundant if we move towards fixed height search results section
|
|
43
|
+
const fixListHeightProps = useFixHeight(isLoadingResults);
|
|
44
|
+
const tabList = jsx(TabList, null, tabs.map(tab => jsx(Tab, {
|
|
45
|
+
key: tab.tabTitle,
|
|
46
|
+
testId: testIds.tabItem
|
|
47
|
+
}, tab.tabTitle)));
|
|
48
|
+
return jsx(Fragment, null, isLoadingPlugins && !!queryState && jsx("div", {
|
|
49
|
+
css: spinnerContainerStyles
|
|
50
|
+
}, jsx(Spinner, {
|
|
51
|
+
testId: testIds.tabsLoadingIndicator,
|
|
52
|
+
size: "medium"
|
|
53
|
+
})), !isLoadingPlugins && isActivePlugin && !!queryState && jsx(Fragment, null, tabs.length > 0 && jsx("div", {
|
|
54
|
+
css: tabsWrapperStyles
|
|
55
|
+
}, jsx(Tabs, {
|
|
56
|
+
id: testIds.tabList,
|
|
57
|
+
testId: testIds.tabList,
|
|
58
|
+
selected: activeTab,
|
|
59
|
+
onChange: handleTabChange
|
|
60
|
+
}, featureFlags !== null && featureFlags !== void 0 && featureFlags.scrollingTabs ? jsx(ScrollingTabList, null, tabList) : tabList), jsx(TrackTabViewed, {
|
|
61
|
+
activePlugin: activePlugin
|
|
62
|
+
})), jsx("div", _extends({
|
|
63
|
+
css: flexColumnStyles
|
|
64
|
+
}, fixListHeightProps), !error && jsx(LinkSearchList, {
|
|
65
|
+
id: linkSearchListId,
|
|
66
|
+
role: "listbox",
|
|
67
|
+
items: items,
|
|
68
|
+
isLoading: isLoadingResults,
|
|
69
|
+
selectedIndex: selectedIndex,
|
|
70
|
+
activeIndex: activeIndex,
|
|
71
|
+
onSelect: handleSelected,
|
|
72
|
+
onChange: handleSearchListOnChange,
|
|
73
|
+
onKeyDown: handleKeyDown,
|
|
74
|
+
hasSearchTerm: !!(queryState !== null && queryState !== void 0 && queryState.query.length),
|
|
75
|
+
activePlugin: activePlugin
|
|
76
|
+
}), 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)))));
|
|
77
|
+
};
|
package/dist/es2019/ui/link-picker/{link-search-error → search-results/link-search-error}/index.js
RENAMED
|
@@ -4,7 +4,7 @@ import { jsx } from '@emotion/react';
|
|
|
4
4
|
import { defineMessages, FormattedMessage, useIntl } from 'react-intl-next';
|
|
5
5
|
import Button from '@atlaskit/button';
|
|
6
6
|
import EmptyState from '@atlaskit/empty-state';
|
|
7
|
-
import { GenericErrorSVG } from '
|
|
7
|
+
import { GenericErrorSVG } from '../../../../common/generic-error-svg';
|
|
8
8
|
export const CONTACT_SUPPORT_LINK = 'https://support.atlassian.com/contact/';
|
|
9
9
|
export const messages = defineMessages({
|
|
10
10
|
searchErrorHeader: {
|
package/dist/es2019/ui/link-picker/{link-search-list → search-results/link-search-list}/index.js
RENAMED
|
@@ -6,7 +6,7 @@ import { defineMessages, FormattedMessage } from 'react-intl-next';
|
|
|
6
6
|
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
7
7
|
import Spinner from '@atlaskit/spinner';
|
|
8
8
|
import VisuallyHidden from '@atlaskit/visually-hidden';
|
|
9
|
-
import { handleNavKeyDown } from '
|
|
9
|
+
import { handleNavKeyDown } from '../../../../common/utils/handleNavKeyDown';
|
|
10
10
|
import { NoResults, testIds as noResultsTestIds } from './link-search-no-results';
|
|
11
11
|
import { emptyStateNoResultsWrapper } from './link-search-no-results/styled';
|
|
12
12
|
import { LinkSearchListItem, testIds as searchResultItemTestIds } from './list-item';
|
|
@@ -74,12 +74,6 @@ export const LinkSearchList = /*#__PURE__*/forwardRef(({
|
|
|
74
74
|
}
|
|
75
75
|
return -1;
|
|
76
76
|
}, [selectedIndex]);
|
|
77
|
-
const handleOnFocus = () => {
|
|
78
|
-
if (items && items.length > 0 && selectedIndex === -1) {
|
|
79
|
-
const item = items[0];
|
|
80
|
-
onChange(item.objectId);
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
77
|
const handleKeyDown = useCallback(event => {
|
|
84
78
|
let updatedIndex = activeIndex;
|
|
85
79
|
if (onKeyDown) {
|
|
@@ -91,13 +85,12 @@ export const LinkSearchList = /*#__PURE__*/forwardRef(({
|
|
|
91
85
|
updatedIndex = handleNavKeyDown(event, items.length, activeIndex);
|
|
92
86
|
const item = items === null || items === void 0 ? void 0 : items[updatedIndex];
|
|
93
87
|
if (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key) && item) {
|
|
94
|
-
onChange(item.objectId);
|
|
95
88
|
if (itemRefs.current) {
|
|
96
89
|
var _itemRefs$current$ite;
|
|
97
90
|
(_itemRefs$current$ite = itemRefs.current[item.objectId]) === null || _itemRefs$current$ite === void 0 ? void 0 : _itemRefs$current$ite.focus();
|
|
98
91
|
}
|
|
99
92
|
}
|
|
100
|
-
}, [activeIndex, items,
|
|
93
|
+
}, [activeIndex, items, onKeyDown]);
|
|
101
94
|
if ((items === null || items === void 0 ? void 0 : items.length) === 0) {
|
|
102
95
|
if (getBooleanFF('platform.linking-platform.link-picker.enable-empty-state')) {
|
|
103
96
|
if (hasSearchTerm) {
|
|
@@ -137,7 +130,7 @@ export const LinkSearchList = /*#__PURE__*/forwardRef(({
|
|
|
137
130
|
item: item,
|
|
138
131
|
selected: selectedIndex === index,
|
|
139
132
|
active: activeIndex === index,
|
|
140
|
-
onFocus:
|
|
133
|
+
onFocus: () => onChange(item.objectId),
|
|
141
134
|
onKeyDown: handleKeyDown,
|
|
142
135
|
onSelect: onSelect,
|
|
143
136
|
key: item.objectId,
|
|
@@ -3,7 +3,7 @@ import { forwardRef, Fragment } from 'react';
|
|
|
3
3
|
import { jsx } from '@emotion/react';
|
|
4
4
|
import { useIntl } from 'react-intl-next';
|
|
5
5
|
/* eslint-disable-next-line @atlassian/tangerine/import/no-parent-imports */
|
|
6
|
-
import { transformTimeStamp } from '
|
|
6
|
+
import { transformTimeStamp } from '../../../transformTimeStamp';
|
|
7
7
|
import { composeListItemStyles, imgStyles, itemIconStyles, itemNameStyles, listItemContainerInnerStyles, listItemContainerStyles, listItemContextStyles, listItemNameStyles } from './styled';
|
|
8
8
|
export const testIds = {
|
|
9
9
|
searchResultItem: 'link-search-list-item',
|
|
@@ -45,7 +45,6 @@ const ListItemIcon = props => {
|
|
|
45
45
|
export const LinkSearchListItem = /*#__PURE__*/forwardRef(({
|
|
46
46
|
item,
|
|
47
47
|
selected,
|
|
48
|
-
active,
|
|
49
48
|
id,
|
|
50
49
|
role,
|
|
51
50
|
onSelect,
|
|
@@ -15,7 +15,7 @@ export const relativeFontSizeToBase16 = px => {
|
|
|
15
15
|
const listItemBaseStyles = css`
|
|
16
16
|
display: flex;
|
|
17
17
|
padding: ${"var(--ds-space-100, 8px)"} ${"var(--ds-space-200, 16px)"};
|
|
18
|
-
margin: 0
|
|
18
|
+
margin: 0;
|
|
19
19
|
cursor: pointer;
|
|
20
20
|
`;
|
|
21
21
|
const listItemFocusStyles = css`
|
|
@@ -71,7 +71,7 @@ export const listItemContainerInnerStyles = css`
|
|
|
71
71
|
white-space: nowrap;
|
|
72
72
|
`;
|
|
73
73
|
|
|
74
|
-
// eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage
|
|
74
|
+
// eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage
|
|
75
75
|
export const itemIconStyles = css`
|
|
76
76
|
min-width: ${"var(--ds-space-200, 16px)"};
|
|
77
77
|
margin-top: 3px;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { useEffect, useMemo, useRef } from 'react';
|
|
2
2
|
import { useDebounce } from 'use-debounce';
|
|
3
3
|
import { useAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
4
|
-
import { ANALYTICS_CHANNEL } from '
|
|
5
|
-
import createEventPayload from '
|
|
4
|
+
import { ANALYTICS_CHANNEL } from '../../../../../common/constants';
|
|
5
|
+
import createEventPayload from '../../../../../common/utils/analytics/analytics.codegen';
|
|
6
6
|
const DEBOUNCE_MS = 400;
|
|
7
7
|
export const useTrackResultsShown = (isLoading, items, hasSearchTerm) => {
|
|
8
8
|
const {
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { css } from '@emotion/react';
|
|
2
|
+
export const tabsWrapperStyles = css`
|
|
3
|
+
margin-top: ${"var(--ds-space-150, 12px)"};
|
|
4
|
+
margin-left: calc(-1 * ${"var(--ds-space-100, 8px)"});
|
|
5
|
+
margin-right: calc(-1 * ${"var(--ds-space-100, 8px)"});
|
|
6
|
+
`;
|
|
7
|
+
export const spinnerContainerStyles = css`
|
|
8
|
+
min-height: 80px;
|
|
9
|
+
display: flex;
|
|
10
|
+
align-items: center;
|
|
11
|
+
justify-content: center;
|
|
12
|
+
flex-grow: 1;
|
|
13
|
+
`;
|
|
14
|
+
export const flexColumnStyles = css`
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-direction: column;
|
|
17
|
+
`;
|
package/dist/es2019/ui/link-picker/{track-tab-viewed → search-results/track-tab-viewed}/index.js
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/** @jsx jsx */
|
|
2
2
|
import { useLayoutEffect } from 'react';
|
|
3
3
|
import { useAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
4
|
-
import { ANALYTICS_CHANNEL } from '
|
|
5
|
-
import createEventPayload from '
|
|
4
|
+
import { ANALYTICS_CHANNEL } from '../../../../common/constants';
|
|
5
|
+
import createEventPayload from '../../../../common/utils/analytics/analytics.codegen';
|
|
6
6
|
export function TrackTabViewed({
|
|
7
7
|
activePlugin
|
|
8
8
|
}) {
|
package/dist/es2019/version.json
CHANGED
package/dist/esm/i18n/en.js
CHANGED
|
@@ -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
|
};
|
package/dist/esm/i18n/en_GB.js
CHANGED
|
@@ -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
|
};
|
package/dist/esm/i18n/en_ZZ.js
CHANGED
|
@@ -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,46 +1,35 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/extends";
|
|
2
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
2
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
3
|
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; }
|
|
5
4
|
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) { _defineProperty(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; }
|
|
6
5
|
/** @jsx jsx */
|
|
7
|
-
import {
|
|
6
|
+
import { memo, useCallback, useLayoutEffect, useReducer } from 'react';
|
|
8
7
|
import { jsx } from '@emotion/react';
|
|
9
8
|
import { FormattedMessage, useIntl } from 'react-intl-next';
|
|
10
9
|
import { useAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
11
10
|
import { isSafeUrl, normalizeUrl } from '@atlaskit/linking-common/url';
|
|
12
11
|
import { browser } from '@atlaskit/linking-common/user-agent';
|
|
13
|
-
import Spinner from '@atlaskit/spinner/spinner';
|
|
14
|
-
import Tabs, { Tab, TabList } from '@atlaskit/tabs';
|
|
15
12
|
import VisuallyHidden from '@atlaskit/visually-hidden';
|
|
16
13
|
import { useLinkPickerAnalytics, withInputFieldTracking, withLinkPickerAnalyticsContext } from '../../common/analytics';
|
|
17
14
|
import { ANALYTICS_CHANNEL } from '../../common/constants';
|
|
18
15
|
import createEventPayload from '../../common/utils/analytics/analytics.codegen';
|
|
19
16
|
import { handleNavKeyDown } from '../../common/utils/handleNavKeyDown';
|
|
20
|
-
import { useFixHeight } from '../../controllers/use-fix-height';
|
|
21
17
|
import { usePlugins } from '../../services/use-plugins';
|
|
22
18
|
import { useSearchQuery } from '../../services/use-search-query';
|
|
23
19
|
import { Announcer } from './announcer';
|
|
24
20
|
import { FormFooter, testIds as formFooterTestIds } from './form-footer';
|
|
25
|
-
import { LinkSearchError, testIds as searchErrorTestIds } from './link-search-error';
|
|
26
|
-
import { LinkSearchList, testIds as listTestIds } from './link-search-list';
|
|
27
|
-
import { spinnerContainerStyles } from './link-search-list/styled';
|
|
28
21
|
import { formMessages, linkMessages, linkTextMessages, searchMessages } from './messages';
|
|
29
|
-
import {
|
|
30
|
-
import {
|
|
22
|
+
import { SearchResults, testIds as searchTestIds } from './search-results';
|
|
23
|
+
import { formFooterMargin, rootContainerStyles } from './styled';
|
|
31
24
|
import { testIds as textFieldTestIds, TextInput } from './text-input';
|
|
32
25
|
import { TrackMount } from './track-mount';
|
|
33
|
-
import { TrackTabViewed } from './track-tab-viewed';
|
|
34
26
|
import { getDataSource, getScreenReaderText } from './utils';
|
|
35
|
-
export var testIds = _objectSpread(_objectSpread(_objectSpread(
|
|
27
|
+
export var testIds = _objectSpread(_objectSpread(_objectSpread({
|
|
36
28
|
linkPickerRoot: 'link-picker-root',
|
|
37
29
|
linkPicker: 'link-picker',
|
|
38
30
|
urlInputField: 'link-url',
|
|
39
31
|
textInputField: 'link-text'
|
|
40
|
-
},
|
|
41
|
-
tabList: 'link-picker-tabs',
|
|
42
|
-
tabItem: 'link-picker-tab'
|
|
43
|
-
});
|
|
32
|
+
}, searchTestIds), formFooterTestIds), textFieldTestIds);
|
|
44
33
|
var initState = {
|
|
45
34
|
url: '',
|
|
46
35
|
displayText: '',
|
|
@@ -77,7 +66,6 @@ var LinkInputField = withInputFieldTracking(TextInput, 'link', function (event,
|
|
|
77
66
|
});
|
|
78
67
|
var DisplayTextInputField = withInputFieldTracking(TextInput, 'displayText');
|
|
79
68
|
export var LinkPicker = withLinkPickerAnalyticsContext( /*#__PURE__*/memo(function (_ref) {
|
|
80
|
-
var _activePlugin$errorFa, _activePlugin$errorFa2;
|
|
81
69
|
var onSubmit = _ref.onSubmit,
|
|
82
70
|
onCancel = _ref.onCancel,
|
|
83
71
|
onContentResize = _ref.onContentResize,
|
|
@@ -113,7 +101,6 @@ export var LinkPicker = withLinkPickerAnalyticsContext( /*#__PURE__*/memo(functi
|
|
|
113
101
|
error = _usePlugins.error,
|
|
114
102
|
retry = _usePlugins.retry,
|
|
115
103
|
pluginAction = _usePlugins.pluginAction;
|
|
116
|
-
var fixListHeightProps = useFixHeight(isLoadingResults);
|
|
117
104
|
var isEditing = !!initUrl;
|
|
118
105
|
var selectedItem = items === null || items === void 0 ? void 0 : items[selectedIndex];
|
|
119
106
|
var isSelectedItem = (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.url) === url;
|
|
@@ -280,12 +267,6 @@ export var LinkPicker = withLinkPickerAnalyticsContext( /*#__PURE__*/memo(functi
|
|
|
280
267
|
// as the Aria design pattern for combobox does not work in this case
|
|
281
268
|
// for details: https://a11y-internal.atlassian.net/browse/AK-740
|
|
282
269
|
var screenReaderText = browser().safari && getScreenReaderText(items !== null && items !== void 0 ? items : [], selectedIndex, intl);
|
|
283
|
-
var tabList = jsx(TabList, null, tabs.map(function (tab) {
|
|
284
|
-
return jsx(Tab, {
|
|
285
|
-
key: tab.tabTitle,
|
|
286
|
-
testId: testIds.tabItem
|
|
287
|
-
}, tab.tabTitle);
|
|
288
|
-
}));
|
|
289
270
|
return jsx("form", {
|
|
290
271
|
"data-testid": testIds.linkPicker,
|
|
291
272
|
css: rootContainerStyles,
|
|
@@ -328,35 +309,25 @@ export var LinkPicker = withLinkPickerAnalyticsContext( /*#__PURE__*/memo(functi
|
|
|
328
309
|
"aria-label": intl.formatMessage(linkTextMessages.linkTextAriaLabel),
|
|
329
310
|
onClear: handleClear,
|
|
330
311
|
onChange: handleChangeText
|
|
331
|
-
}),
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
testId: testIds.tabList,
|
|
341
|
-
selected: activeTab,
|
|
342
|
-
onChange: handleTabChange
|
|
343
|
-
}, featureFlags !== null && featureFlags !== void 0 && featureFlags.scrollingTabs ? jsx(ScrollingTabList, null, tabList) : tabList), jsx(TrackTabViewed, {
|
|
344
|
-
activePlugin: activePlugin
|
|
345
|
-
})), jsx("div", _extends({
|
|
346
|
-
css: flexColumnStyles
|
|
347
|
-
}, fixListHeightProps), !error && jsx(LinkSearchList, {
|
|
348
|
-
id: linkSearchListId,
|
|
349
|
-
role: "listbox",
|
|
350
|
-
items: items,
|
|
351
|
-
isLoading: isLoadingResults,
|
|
352
|
-
selectedIndex: selectedIndex,
|
|
312
|
+
}), !!queryState && jsx(SearchResults, {
|
|
313
|
+
activeTab: activeTab,
|
|
314
|
+
tabs: tabs,
|
|
315
|
+
activePlugin: activePlugin,
|
|
316
|
+
isLoadingResults: isLoadingResults,
|
|
317
|
+
isLoadingPlugins: isLoadingPlugins,
|
|
318
|
+
linkSearchListId: linkSearchListId,
|
|
319
|
+
error: error,
|
|
320
|
+
featureFlags: featureFlags,
|
|
353
321
|
activeIndex: activeIndex,
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
322
|
+
selectedIndex: selectedIndex,
|
|
323
|
+
items: items,
|
|
324
|
+
queryState: queryState,
|
|
325
|
+
handleKeyDown: handleKeyDown,
|
|
326
|
+
handleSelected: handleSelected,
|
|
327
|
+
handleTabChange: handleTabChange,
|
|
328
|
+
handleSearchListOnChange: handleSearchListOnChange,
|
|
329
|
+
retry: retry
|
|
330
|
+
}), jsx(FormFooter, {
|
|
360
331
|
error: error,
|
|
361
332
|
items: items
|
|
362
333
|
/** If the results section appears to be loading, impact whether the submit button is disabled */,
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
+
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; }
|
|
4
|
+
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) { _defineProperty(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; }
|
|
5
|
+
/** @jsx jsx */
|
|
6
|
+
import { Fragment } from 'react';
|
|
7
|
+
import { jsx } from '@emotion/react';
|
|
8
|
+
import Spinner from '@atlaskit/spinner/spinner';
|
|
9
|
+
import Tabs, { Tab, TabList } from '@atlaskit/tabs';
|
|
10
|
+
import { useFixHeight } from '../../../controllers/use-fix-height';
|
|
11
|
+
import { LinkSearchError, testIds as searchErrorTestIds } from './link-search-error';
|
|
12
|
+
import { LinkSearchList, testIds as listTestIds } from './link-search-list';
|
|
13
|
+
import { ScrollingTabList } from './scrolling-tabs';
|
|
14
|
+
import { flexColumnStyles, spinnerContainerStyles, tabsWrapperStyles } from './styled';
|
|
15
|
+
import { TrackTabViewed } from './track-tab-viewed';
|
|
16
|
+
export var testIds = _objectSpread(_objectSpread(_objectSpread({}, searchErrorTestIds), listTestIds), {}, {
|
|
17
|
+
tabsLoadingIndicator: 'link-picker.tabs-loading-indicator',
|
|
18
|
+
tabList: 'link-picker-tabs',
|
|
19
|
+
tabItem: 'link-picker-tab'
|
|
20
|
+
});
|
|
21
|
+
export var SearchResults = function SearchResults(_ref) {
|
|
22
|
+
var _activePlugin$errorFa, _activePlugin$errorFa2;
|
|
23
|
+
var tabs = _ref.tabs,
|
|
24
|
+
activeTab = _ref.activeTab,
|
|
25
|
+
activePlugin = _ref.activePlugin,
|
|
26
|
+
isLoadingPlugins = _ref.isLoadingPlugins,
|
|
27
|
+
isLoadingResults = _ref.isLoadingResults,
|
|
28
|
+
handleTabChange = _ref.handleTabChange,
|
|
29
|
+
handleSearchListOnChange = _ref.handleSearchListOnChange,
|
|
30
|
+
featureFlags = _ref.featureFlags,
|
|
31
|
+
linkSearchListId = _ref.linkSearchListId,
|
|
32
|
+
error = _ref.error,
|
|
33
|
+
queryState = _ref.queryState,
|
|
34
|
+
items = _ref.items,
|
|
35
|
+
activeIndex = _ref.activeIndex,
|
|
36
|
+
selectedIndex = _ref.selectedIndex,
|
|
37
|
+
handleSelected = _ref.handleSelected,
|
|
38
|
+
handleKeyDown = _ref.handleKeyDown,
|
|
39
|
+
retry = _ref.retry;
|
|
40
|
+
var isActivePlugin = !!activePlugin;
|
|
41
|
+
|
|
42
|
+
// This will be redundant if we move towards fixed height search results section
|
|
43
|
+
var fixListHeightProps = useFixHeight(isLoadingResults);
|
|
44
|
+
var tabList = jsx(TabList, null, tabs.map(function (tab) {
|
|
45
|
+
return jsx(Tab, {
|
|
46
|
+
key: tab.tabTitle,
|
|
47
|
+
testId: testIds.tabItem
|
|
48
|
+
}, tab.tabTitle);
|
|
49
|
+
}));
|
|
50
|
+
return jsx(Fragment, null, isLoadingPlugins && !!queryState && jsx("div", {
|
|
51
|
+
css: spinnerContainerStyles
|
|
52
|
+
}, jsx(Spinner, {
|
|
53
|
+
testId: testIds.tabsLoadingIndicator,
|
|
54
|
+
size: "medium"
|
|
55
|
+
})), !isLoadingPlugins && isActivePlugin && !!queryState && jsx(Fragment, null, tabs.length > 0 && jsx("div", {
|
|
56
|
+
css: tabsWrapperStyles
|
|
57
|
+
}, jsx(Tabs, {
|
|
58
|
+
id: testIds.tabList,
|
|
59
|
+
testId: testIds.tabList,
|
|
60
|
+
selected: activeTab,
|
|
61
|
+
onChange: handleTabChange
|
|
62
|
+
}, featureFlags !== null && featureFlags !== void 0 && featureFlags.scrollingTabs ? jsx(ScrollingTabList, null, tabList) : tabList), jsx(TrackTabViewed, {
|
|
63
|
+
activePlugin: activePlugin
|
|
64
|
+
})), jsx("div", _extends({
|
|
65
|
+
css: flexColumnStyles
|
|
66
|
+
}, fixListHeightProps), !error && jsx(LinkSearchList, {
|
|
67
|
+
id: linkSearchListId,
|
|
68
|
+
role: "listbox",
|
|
69
|
+
items: items,
|
|
70
|
+
isLoading: isLoadingResults,
|
|
71
|
+
selectedIndex: selectedIndex,
|
|
72
|
+
activeIndex: activeIndex,
|
|
73
|
+
onSelect: handleSelected,
|
|
74
|
+
onChange: handleSearchListOnChange,
|
|
75
|
+
onKeyDown: handleKeyDown,
|
|
76
|
+
hasSearchTerm: !!(queryState !== null && queryState !== void 0 && queryState.query.length),
|
|
77
|
+
activePlugin: activePlugin
|
|
78
|
+
}), 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)))));
|
|
79
|
+
};
|
package/dist/esm/ui/link-picker/{link-search-error → search-results/link-search-error}/index.js
RENAMED
|
@@ -4,7 +4,7 @@ import { jsx } from '@emotion/react';
|
|
|
4
4
|
import { defineMessages, FormattedMessage, useIntl } from 'react-intl-next';
|
|
5
5
|
import Button from '@atlaskit/button';
|
|
6
6
|
import EmptyState from '@atlaskit/empty-state';
|
|
7
|
-
import { GenericErrorSVG } from '
|
|
7
|
+
import { GenericErrorSVG } from '../../../../common/generic-error-svg';
|
|
8
8
|
export var CONTACT_SUPPORT_LINK = 'https://support.atlassian.com/contact/';
|
|
9
9
|
export var messages = defineMessages({
|
|
10
10
|
searchErrorHeader: {
|