@atlaskit/link-datasource 3.13.16 → 3.13.18

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 (69) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/cjs/hooks/useLoadOptions.js +20 -9
  3. package/dist/cjs/ui/confluence-search-modal/modal/index.js +8 -27
  4. package/dist/cjs/ui/issue-like-table/edit-type/icon/index.js +4 -1
  5. package/dist/cjs/ui/issue-like-table/edit-type/index.js +9 -4
  6. package/dist/cjs/ui/issue-like-table/edit-type/status/index.js +7 -1
  7. package/dist/cjs/ui/issue-like-table/edit-type/text/index.js +3 -1
  8. package/dist/cjs/ui/issue-like-table/edit-type/user/index.js +7 -1
  9. package/dist/cjs/ui/issue-like-table/index.js +6 -2
  10. package/dist/cjs/ui/issue-like-table/table-cell-content/index.js +5 -0
  11. package/dist/cjs/ui/issue-like-table/table-cell-content/inline-edit.js +31 -2
  12. package/dist/cjs/ui/issue-like-table/table-cell-content/messages.js +14 -0
  13. package/dist/cjs/ui/issue-like-table/utils.js +21 -1
  14. package/dist/cjs/ui/jira-issues-modal/modal/index.js +1 -18
  15. package/dist/es2019/hooks/useLoadOptions.js +15 -4
  16. package/dist/es2019/ui/confluence-search-modal/modal/index.js +12 -35
  17. package/dist/es2019/ui/issue-like-table/edit-type/icon/index.js +4 -1
  18. package/dist/es2019/ui/issue-like-table/edit-type/index.js +9 -4
  19. package/dist/es2019/ui/issue-like-table/edit-type/status/index.js +5 -1
  20. package/dist/es2019/ui/issue-like-table/edit-type/text/index.js +3 -1
  21. package/dist/es2019/ui/issue-like-table/edit-type/user/index.js +5 -1
  22. package/dist/es2019/ui/issue-like-table/index.js +7 -3
  23. package/dist/es2019/ui/issue-like-table/table-cell-content/index.js +5 -0
  24. package/dist/es2019/ui/issue-like-table/table-cell-content/inline-edit.js +33 -3
  25. package/dist/es2019/ui/issue-like-table/table-cell-content/messages.js +8 -0
  26. package/dist/es2019/ui/issue-like-table/utils.js +18 -1
  27. package/dist/es2019/ui/jira-issues-modal/modal/index.js +4 -25
  28. package/dist/esm/hooks/useLoadOptions.js +21 -10
  29. package/dist/esm/ui/confluence-search-modal/modal/index.js +9 -28
  30. package/dist/esm/ui/issue-like-table/edit-type/icon/index.js +4 -1
  31. package/dist/esm/ui/issue-like-table/edit-type/index.js +9 -4
  32. package/dist/esm/ui/issue-like-table/edit-type/status/index.js +7 -1
  33. package/dist/esm/ui/issue-like-table/edit-type/text/index.js +3 -1
  34. package/dist/esm/ui/issue-like-table/edit-type/user/index.js +7 -1
  35. package/dist/esm/ui/issue-like-table/index.js +7 -3
  36. package/dist/esm/ui/issue-like-table/table-cell-content/index.js +5 -0
  37. package/dist/esm/ui/issue-like-table/table-cell-content/inline-edit.js +32 -3
  38. package/dist/esm/ui/issue-like-table/table-cell-content/messages.js +8 -0
  39. package/dist/esm/ui/issue-like-table/utils.js +19 -0
  40. package/dist/esm/ui/jira-issues-modal/modal/index.js +4 -21
  41. package/dist/types/ui/issue-like-table/edit-type/icon/index.d.ts +1 -0
  42. package/dist/types/ui/issue-like-table/edit-type/index.d.ts +2 -1
  43. package/dist/types/ui/issue-like-table/edit-type/status/index.d.ts +1 -0
  44. package/dist/types/ui/issue-like-table/edit-type/text/index.d.ts +1 -0
  45. package/dist/types/ui/issue-like-table/edit-type/user/index.d.ts +1 -0
  46. package/dist/types/ui/issue-like-table/table-cell-content/index.d.ts +2 -1
  47. package/dist/types/ui/issue-like-table/table-cell-content/inline-edit.d.ts +2 -1
  48. package/dist/types/ui/issue-like-table/table-cell-content/messages.d.ts +7 -0
  49. package/dist/types/ui/issue-like-table/utils.d.ts +20 -0
  50. package/dist/types-ts4.5/ui/issue-like-table/edit-type/icon/index.d.ts +1 -0
  51. package/dist/types-ts4.5/ui/issue-like-table/edit-type/index.d.ts +2 -1
  52. package/dist/types-ts4.5/ui/issue-like-table/edit-type/status/index.d.ts +1 -0
  53. package/dist/types-ts4.5/ui/issue-like-table/edit-type/text/index.d.ts +1 -0
  54. package/dist/types-ts4.5/ui/issue-like-table/edit-type/user/index.d.ts +1 -0
  55. package/dist/types-ts4.5/ui/issue-like-table/table-cell-content/index.d.ts +2 -1
  56. package/dist/types-ts4.5/ui/issue-like-table/table-cell-content/inline-edit.d.ts +2 -1
  57. package/dist/types-ts4.5/ui/issue-like-table/table-cell-content/messages.d.ts +7 -0
  58. package/dist/types-ts4.5/ui/issue-like-table/utils.d.ts +20 -0
  59. package/package.json +3 -6
  60. package/dist/cjs/ui/confluence-search-modal/modal/ModalOld.js +0 -455
  61. package/dist/cjs/ui/jira-issues-modal/modal/ModalOld.js +0 -493
  62. package/dist/es2019/ui/confluence-search-modal/modal/ModalOld.js +0 -430
  63. package/dist/es2019/ui/jira-issues-modal/modal/ModalOld.js +0 -476
  64. package/dist/esm/ui/confluence-search-modal/modal/ModalOld.js +0 -451
  65. package/dist/esm/ui/jira-issues-modal/modal/ModalOld.js +0 -490
  66. package/dist/types/ui/confluence-search-modal/modal/ModalOld.d.ts +0 -3
  67. package/dist/types/ui/jira-issues-modal/modal/ModalOld.d.ts +0 -3
  68. package/dist/types-ts4.5/ui/confluence-search-modal/modal/ModalOld.d.ts +0 -3
  69. package/dist/types-ts4.5/ui/jira-issues-modal/modal/ModalOld.d.ts +0 -3
@@ -1,451 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
- /**
6
- * @jsxRuntime classic
7
- * @jsx jsx
8
- */
9
- import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';
10
-
11
- // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
12
- import { jsx } from '@emotion/react';
13
- import { FormattedMessage } from 'react-intl-next';
14
- import Button from '@atlaskit/button/standard-button';
15
- import { IntlMessagesProvider } from '@atlaskit/intl-messages-provider';
16
- import { ModalBody, ModalFooter, ModalHeader, ModalTitle } from '@atlaskit/modal-dialog';
17
- import { Box, xcss } from '@atlaskit/primitives';
18
- import { EVENT_CHANNEL, useDatasourceAnalyticsEvents } from '../../../analytics';
19
- import { DatasourceAction, DatasourceDisplay, DatasourceSearchMethod } from '../../../analytics/types';
20
- import { buildDatasourceAdf } from '../../../common/utils/adf';
21
- import { fetchMessagesForLocale } from '../../../common/utils/locale/fetch-messages-for-locale';
22
- import { useUserInteractions } from '../../../contexts/user-interactions';
23
- import { useDatasourceTableState } from '../../../hooks/useDatasourceTableState';
24
- import i18nEN from '../../../i18n/en';
25
- import { useAvailableSites } from '../../../services/useAvailableSites';
26
- import { AccessRequired } from '../../common/error-state/access-required';
27
- import { ModalLoadingError } from '../../common/error-state/modal-loading-error';
28
- import { NoInstancesView } from '../../common/error-state/no-instances';
29
- import { NoResults } from '../../common/error-state/no-results';
30
- import { InitialStateView } from '../../common/initial-state-view';
31
- import { CancelButton } from '../../common/modal/cancel-button';
32
- import { ContentContainer } from '../../common/modal/content-container';
33
- import { SmartCardPlaceholder, SmartLink } from '../../common/modal/count-view-smart-link';
34
- import { DatasourceModal } from '../../common/modal/datasource-modal';
35
- import { useColumnResize } from '../../common/modal/datasources-table-in-modal-preview/use-column-resize';
36
- import { useColumnWrapping } from '../../common/modal/datasources-table-in-modal-preview/use-column-wrapping';
37
- import { DisplayViewDropDown } from '../../common/modal/display-view-dropdown/display-view-drop-down';
38
- import TableSearchCount from '../../common/modal/search-count';
39
- import { SiteSelector } from '../../common/modal/site-selector';
40
- import { EmptyState, IssueLikeDataTableView } from '../../issue-like-table';
41
- import { getColumnAction } from '../../issue-like-table/utils';
42
- import ConfluenceSearchContainer from '../confluence-search-container';
43
- import { ConfluenceSearchInitialStateSVG } from './confluence-search-initial-state-svg';
44
- import { confluenceSearchModalMessages } from './messages';
45
- var inputContainerStyles = xcss({
46
- alignItems: 'baseline',
47
- display: 'flex',
48
- minHeight: '72px'
49
- });
50
- export var PlainConfluenceSearchConfigModal = function PlainConfluenceSearchConfigModal(props) {
51
- var datasourceId = props.datasourceId,
52
- initialColumnCustomSizes = props.columnCustomSizes,
53
- initialWrappedColumnKeys = props.wrappedColumnKeys,
54
- onCancel = props.onCancel,
55
- onInsert = props.onInsert,
56
- _props$viewMode = props.viewMode,
57
- viewMode = _props$viewMode === void 0 ? 'table' : _props$viewMode,
58
- initialParameters = props.parameters,
59
- urlBeingEdited = props.url,
60
- initialVisibleColumnKeys = props.visibleColumnKeys,
61
- _props$disableDisplay = props.disableDisplayDropdown,
62
- disableDisplayDropdown = _props$disableDisplay === void 0 ? false : _props$disableDisplay,
63
- overrideParameters = props.overrideParameters;
64
- var _useState = useState(viewMode),
65
- _useState2 = _slicedToArray(_useState, 2),
66
- currentViewMode = _useState2[0],
67
- setCurrentViewMode = _useState2[1];
68
- var _useState3 = useState(initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.cloudId),
69
- _useState4 = _slicedToArray(_useState3, 2),
70
- cloudId = _useState4[0],
71
- setCloudId = _useState4[1];
72
- var _useAvailableSites = useAvailableSites('confluence', cloudId),
73
- availableSites = _useAvailableSites.availableSites,
74
- selectedConfluenceSite = _useAvailableSites.selectedSite;
75
- var _useState5 = useState(initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.searchString),
76
- _useState6 = _slicedToArray(_useState5, 2),
77
- searchString = _useState6[0],
78
- setSearchString = _useState6[1];
79
- var _useState7 = useState(initialVisibleColumnKeys),
80
- _useState8 = _slicedToArray(_useState7, 2),
81
- visibleColumnKeys = _useState8[0],
82
- setVisibleColumnKeys = _useState8[1];
83
- var _useState9 = useState((initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.contributorAccountIds) || []),
84
- _useState10 = _slicedToArray(_useState9, 2),
85
- contributorAccountIds = _useState10[0],
86
- setContributorAccountIds = _useState10[1];
87
- var _useState11 = useState(initialParameters !== null && initialParameters !== void 0 && initialParameters.lastModified ? {
88
- value: initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.lastModified,
89
- from: initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.lastModifiedFrom,
90
- to: initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.lastModifiedTo
91
- } : undefined),
92
- _useState12 = _slicedToArray(_useState11, 2),
93
- lastModified = _useState12[0],
94
- setLastModified = _useState12[1];
95
-
96
- // analytics related parameters
97
- var searchCount = useRef(0);
98
- var userInteractions = useUserInteractions();
99
- var visibleColumnCount = useRef((visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.length) || 0);
100
- var parameters = useMemo(function () {
101
- return _objectSpread(_objectSpread({}, initialParameters), {}, {
102
- cloudId: cloudId || '',
103
- searchString: searchString,
104
- lastModified: lastModified === null || lastModified === void 0 ? void 0 : lastModified.value,
105
- lastModifiedFrom: lastModified === null || lastModified === void 0 ? void 0 : lastModified.from,
106
- lastModifiedTo: lastModified === null || lastModified === void 0 ? void 0 : lastModified.to,
107
- contributorAccountIds: (contributorAccountIds === null || contributorAccountIds === void 0 ? void 0 : contributorAccountIds.length) > 0 ? contributorAccountIds : undefined
108
- });
109
- }, [initialParameters, cloudId, searchString, lastModified, contributorAccountIds]);
110
- var isParametersSet = useMemo(function () {
111
- return !!cloudId && Object.values(parameters !== null && parameters !== void 0 ? parameters : {}).filter(function (v) {
112
- return v !== undefined;
113
- }).length > 1;
114
- }, [cloudId, parameters]);
115
- var parametersToSend = useMemo(function () {
116
- if (!isParametersSet) {
117
- return undefined;
118
- }
119
- return _objectSpread(_objectSpread({}, parameters), overrideParameters !== null && overrideParameters !== void 0 ? overrideParameters : {});
120
- }, [parameters, overrideParameters, isParametersSet]);
121
- var _useDatasourceTableSt = useDatasourceTableState({
122
- datasourceId: datasourceId,
123
- parameters: parametersToSend,
124
- fieldKeys: visibleColumnKeys
125
- }),
126
- reset = _useDatasourceTableSt.reset,
127
- status = _useDatasourceTableSt.status,
128
- onNextPage = _useDatasourceTableSt.onNextPage,
129
- responseItems = _useDatasourceTableSt.responseItems,
130
- responseItemIds = _useDatasourceTableSt.responseItemIds,
131
- hasNextPage = _useDatasourceTableSt.hasNextPage,
132
- columns = _useDatasourceTableSt.columns,
133
- defaultVisibleColumnKeys = _useDatasourceTableSt.defaultVisibleColumnKeys,
134
- loadDatasourceDetails = _useDatasourceTableSt.loadDatasourceDetails,
135
- totalCount = _useDatasourceTableSt.totalCount,
136
- _useDatasourceTableSt2 = _useDatasourceTableSt.extensionKey,
137
- extensionKey = _useDatasourceTableSt2 === void 0 ? null : _useDatasourceTableSt2,
138
- destinationObjectTypes = _useDatasourceTableSt.destinationObjectTypes;
139
- var _useDatasourceAnalyti = useDatasourceAnalyticsEvents(),
140
- fireEvent = _useDatasourceAnalyti.fireEvent;
141
- var hasNoConfluenceSites = availableSites && availableSites.length === 0;
142
- useEffect(function () {
143
- if (availableSites) {
144
- fireEvent('ui.modal.ready.datasource', {
145
- instancesCount: availableSites.length,
146
- schemasCount: null
147
- });
148
- }
149
- }, [fireEvent, availableSites]);
150
-
151
- // TODO: further refactoring in EDM-9573
152
- // https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/pull-requests/82725/overview?commentId=6828283
153
- useEffect(function () {
154
- if (selectedConfluenceSite && (!cloudId || cloudId !== selectedConfluenceSite.cloudId)) {
155
- setCloudId(selectedConfluenceSite.cloudId);
156
- }
157
- }, [cloudId, selectedConfluenceSite]);
158
-
159
- // TODO: further refactoring in EDM-9573
160
- // https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/pull-requests/82725/overview?commentId=6829171
161
- var onSiteSelection = useCallback(function (site) {
162
- userInteractions.add(DatasourceAction.INSTANCE_UPDATED);
163
- setSearchString(undefined);
164
- setLastModified(undefined);
165
- setContributorAccountIds([]);
166
- setCloudId(site.cloudId);
167
- reset({
168
- shouldForceRequest: true
169
- });
170
- }, [reset, userInteractions]);
171
- useEffect(function () {
172
- var newVisibleColumnKeys = !initialVisibleColumnKeys || (initialVisibleColumnKeys || []).length === 0 ? defaultVisibleColumnKeys : initialVisibleColumnKeys;
173
- visibleColumnCount.current = newVisibleColumnKeys.length;
174
- setVisibleColumnKeys(newVisibleColumnKeys);
175
- }, [initialVisibleColumnKeys, defaultVisibleColumnKeys]);
176
- var siteSelectorLabel = availableSites && availableSites.length > 1 ? confluenceSearchModalMessages.insertIssuesTitleManySites : confluenceSearchModalMessages.insertIssuesTitle;
177
- var _useColumnResize = useColumnResize(initialColumnCustomSizes),
178
- columnCustomSizes = _useColumnResize.columnCustomSizes,
179
- onColumnResize = _useColumnResize.onColumnResize;
180
- var _useColumnWrapping = useColumnWrapping(initialWrappedColumnKeys),
181
- wrappedColumnKeys = _useColumnWrapping.wrappedColumnKeys,
182
- onWrappedColumnChange = _useColumnWrapping.onWrappedColumnChange;
183
-
184
- // TODO: common functionality of all modals refactor in EDM-9573
185
- var handleVisibleColumnKeysChange = useCallback(function () {
186
- var newVisibleColumnKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
187
- var columnAction = getColumnAction(visibleColumnKeys || [], newVisibleColumnKeys);
188
- userInteractions.add(columnAction);
189
- visibleColumnCount.current = newVisibleColumnKeys.length;
190
- setVisibleColumnKeys(newVisibleColumnKeys);
191
- }, [visibleColumnKeys, userInteractions]);
192
-
193
- // TODO: further refactoring in EDM-9573
194
- // https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/pull-requests/82725/overview?commentId=6798258
195
- var confluenceSearchTable = useMemo(function () {
196
- return jsx(ContentContainer, {
197
- withTableBorder: true
198
- }, jsx(IssueLikeDataTableView, {
199
- testId: "confluence-search-datasource-table",
200
- status: status,
201
- columns: columns,
202
- items: responseItems,
203
- itemIds: responseItemIds,
204
- hasNextPage: hasNextPage,
205
- visibleColumnKeys: visibleColumnKeys || defaultVisibleColumnKeys,
206
- onNextPage: onNextPage,
207
- onLoadDatasourceDetails: loadDatasourceDetails,
208
- onVisibleColumnKeysChange: handleVisibleColumnKeysChange,
209
- extensionKey: extensionKey,
210
- columnCustomSizes: columnCustomSizes,
211
- onColumnResize: onColumnResize,
212
- wrappedColumnKeys: wrappedColumnKeys,
213
- onWrappedColumnChange: onWrappedColumnChange
214
- }));
215
- }, [status, columns, responseItems, responseItemIds, hasNextPage, visibleColumnKeys, defaultVisibleColumnKeys, onNextPage, loadDatasourceDetails, handleVisibleColumnKeysChange, extensionKey, columnCustomSizes, onColumnResize, wrappedColumnKeys, onWrappedColumnChange]);
216
- var resolvedWithNoResults = status === 'resolved' && !responseItems.length;
217
- var hasConfluenceSearchParams = selectedConfluenceSite && searchString;
218
- var selectedConfluenceSiteUrl = selectedConfluenceSite === null || selectedConfluenceSite === void 0 ? void 0 : selectedConfluenceSite.url;
219
- var confluenceSearchUrl = useMemo(function () {
220
- if (!selectedConfluenceSiteUrl || searchString === undefined) {
221
- return undefined;
222
- }
223
- var params = new URLSearchParams();
224
- // we are appending "text" without checking searchString as we need the url to have "text" when a user does an empty search
225
- params.append('text', searchString);
226
- if (contributorAccountIds.length > 0) {
227
- params.append('contributors', contributorAccountIds.join(','));
228
- }
229
- if (lastModified !== null && lastModified !== void 0 && lastModified.value) {
230
- params.append('lastModified', lastModified.value);
231
- }
232
- if (lastModified !== null && lastModified !== void 0 && lastModified.from) {
233
- params.append('from', lastModified === null || lastModified === void 0 ? void 0 : lastModified.from);
234
- }
235
- if (lastModified !== null && lastModified !== void 0 && lastModified.to) {
236
- params.append('to', lastModified === null || lastModified === void 0 ? void 0 : lastModified.to);
237
- }
238
- return "".concat(selectedConfluenceSiteUrl, "/wiki/search?").concat(params.toString());
239
- }, [contributorAccountIds, lastModified, searchString, selectedConfluenceSiteUrl]);
240
- var analyticsPayload = useMemo(function () {
241
- return {
242
- extensionKey: extensionKey,
243
- destinationObjectTypes: destinationObjectTypes,
244
- searchCount: searchCount.current,
245
- actions: userInteractions.get()
246
- };
247
- }, [destinationObjectTypes, extensionKey, userInteractions]);
248
- var isDataReady = (visibleColumnKeys || []).length > 0;
249
- var fireInlineViewedEvent = useCallback(function () {
250
- fireEvent('ui.link.viewed.count', _objectSpread(_objectSpread({}, analyticsPayload), {}, {
251
- searchMethod: DatasourceSearchMethod.DATASOURCE_SEARCH_QUERY,
252
- totalItemCount: totalCount || 0
253
- }));
254
- }, [analyticsPayload, fireEvent, totalCount]);
255
- var fireTableViewedEvent = useCallback(function () {
256
- if (isDataReady) {
257
- fireEvent('ui.table.viewed.datasourceConfigModal', _objectSpread(_objectSpread({}, analyticsPayload), {}, {
258
- totalItemCount: totalCount || 0,
259
- searchMethod: DatasourceSearchMethod.DATASOURCE_SEARCH_QUERY,
260
- displayedColumnCount: visibleColumnCount.current
261
- }));
262
- }
263
- }, [analyticsPayload, fireEvent, totalCount, isDataReady]);
264
- useEffect(function () {
265
- var isResolved = status === 'resolved';
266
- var isTableViewMode = currentViewMode === 'table';
267
- var isInlineViewMode = currentViewMode === 'inline';
268
- if (!isResolved) {
269
- return;
270
- }
271
- if (isTableViewMode) {
272
- fireTableViewedEvent();
273
- } else if (isInlineViewMode) {
274
- fireInlineViewedEvent();
275
- }
276
- }, [currentViewMode, fireInlineViewedEvent, fireTableViewedEvent, status]);
277
- var renderTableModalContent = useCallback(function () {
278
- if (status === 'rejected') {
279
- return jsx(ModalLoadingError, null);
280
- } else if (status === 'unauthorized') {
281
- return jsx(AccessRequired, {
282
- url: selectedConfluenceSiteUrl || urlBeingEdited
283
- });
284
- } else if (resolvedWithNoResults || status === 'forbidden') {
285
- return jsx(NoResults, null);
286
- } else if (status === 'empty' || !columns.length) {
287
- // persist the empty state when making the initial /data request which contains the columns
288
- if (hasConfluenceSearchParams !== undefined) {
289
- return jsx(EmptyState, {
290
- testId: "confluence-search-datasource-modal--empty-state"
291
- });
292
- }
293
- return jsx(ContentContainer, null, jsx(InitialStateView, {
294
- icon: jsx(ConfluenceSearchInitialStateSVG, null),
295
- title: confluenceSearchModalMessages.initialViewSearchTitle,
296
- description: confluenceSearchModalMessages.initialViewSearchDescription
297
- }));
298
- }
299
- return confluenceSearchTable;
300
- }, [columns.length, selectedConfluenceSiteUrl, confluenceSearchTable, resolvedWithNoResults, status, urlBeingEdited, hasConfluenceSearchParams]);
301
- var renderInlineLinkModalContent = useCallback(function () {
302
- if (status === 'unauthorized') {
303
- return jsx(AccessRequired, {
304
- url: selectedConfluenceSiteUrl || urlBeingEdited
305
- });
306
- } else if (status === 'empty' || !selectedConfluenceSiteUrl) {
307
- return jsx(SmartCardPlaceholder, {
308
- placeholderText: confluenceSearchModalMessages.resultsCountSmartCardPlaceholderText
309
- });
310
- } else {
311
- return confluenceSearchUrl && jsx(SmartLink, {
312
- url: confluenceSearchUrl
313
- });
314
- }
315
- }, [confluenceSearchUrl, selectedConfluenceSiteUrl, status, urlBeingEdited]);
316
- var shouldShowResultsCount = !!totalCount && currentViewMode === 'table';
317
- var onInsertPressed = useCallback(function (e, analyticsEvent) {
318
- var _insertButtonClickedE;
319
- if (!isParametersSet || !cloudId || !confluenceSearchUrl) {
320
- return;
321
- }
322
- var insertButtonClickedEvent = analyticsEvent.update({
323
- actionSubjectId: 'insert',
324
- attributes: _objectSpread(_objectSpread({}, analyticsPayload), {}, {
325
- totalItemCount: totalCount || 0,
326
- displayedColumnCount: visibleColumnCount.current,
327
- display: currentViewMode === 'inline' ? DatasourceDisplay.DATASOURCE_INLINE : DatasourceDisplay.DATASOURCE_TABLE,
328
- searchCount: searchCount.current,
329
- searchMethod: DatasourceSearchMethod.DATASOURCE_SEARCH_QUERY,
330
- actions: userInteractions.get()
331
- }),
332
- eventType: 'ui'
333
- });
334
- var consumerEvent = (_insertButtonClickedE = insertButtonClickedEvent.clone()) !== null && _insertButtonClickedE !== void 0 ? _insertButtonClickedE : undefined;
335
- insertButtonClickedEvent.fire(EVENT_CHANNEL);
336
- if (currentViewMode === 'inline') {
337
- onInsert({
338
- type: 'inlineCard',
339
- attrs: {
340
- url: confluenceSearchUrl
341
- }
342
- }, consumerEvent);
343
- } else {
344
- onInsert(buildDatasourceAdf({
345
- id: datasourceId,
346
- parameters: _objectSpread(_objectSpread({}, parametersToSend), {}, {
347
- cloudId: cloudId
348
- }),
349
- views: [{
350
- type: 'table',
351
- properties: {
352
- columns: (visibleColumnKeys || []).map(function (key) {
353
- var width = columnCustomSizes === null || columnCustomSizes === void 0 ? void 0 : columnCustomSizes[key];
354
- var isWrapped = wrappedColumnKeys === null || wrappedColumnKeys === void 0 ? void 0 : wrappedColumnKeys.includes(key);
355
- return _objectSpread(_objectSpread({
356
- key: key
357
- }, width ? {
358
- width: width
359
- } : {}), isWrapped ? {
360
- isWrapped: isWrapped
361
- } : {});
362
- })
363
- }
364
- }]
365
- }, confluenceSearchUrl), consumerEvent);
366
- }
367
- }, [isParametersSet, cloudId, analyticsPayload, totalCount, currentViewMode, onInsert, confluenceSearchUrl, datasourceId, parametersToSend, visibleColumnKeys, columnCustomSizes, wrappedColumnKeys, userInteractions]);
368
- var handleViewModeChange = function handleViewModeChange(selectedMode) {
369
- userInteractions.add(DatasourceAction.DISPLAY_VIEW_CHANGED);
370
- setCurrentViewMode(selectedMode);
371
- };
372
- var onSearch = useCallback(function (newSearchString, filters) {
373
- searchCount.current++;
374
- userInteractions.add(DatasourceAction.QUERY_UPDATED);
375
- if (filters) {
376
- var editedOrCreatedBy = filters.editedOrCreatedBy,
377
- lastModifiedList = filters.lastModified;
378
- if (lastModifiedList) {
379
- var updatedDateRangeOption = lastModifiedList.find(function (range) {
380
- return range.value;
381
- });
382
- if ((updatedDateRangeOption === null || updatedDateRangeOption === void 0 ? void 0 : updatedDateRangeOption.optionType) === 'dateRange') {
383
- setLastModified({
384
- value: updatedDateRangeOption.value,
385
- from: updatedDateRangeOption.from,
386
- to: updatedDateRangeOption.to
387
- });
388
- }
389
- }
390
- if (editedOrCreatedBy) {
391
- var accountIds = editedOrCreatedBy.map(function (user) {
392
- return user.value;
393
- });
394
- setContributorAccountIds(accountIds);
395
- }
396
- }
397
- setSearchString(newSearchString);
398
- reset({
399
- shouldForceRequest: true
400
- });
401
- }, [reset, userInteractions]);
402
- var isInsertDisabled = !isParametersSet || status === 'rejected' || status === 'unauthorized' || status === 'loading';
403
- var getCancelButtonAnalyticsPayload = useCallback(function () {
404
- return {
405
- extensionKey: extensionKey,
406
- destinationObjectTypes: destinationObjectTypes,
407
- searchCount: searchCount.current,
408
- actions: userInteractions.get()
409
- };
410
- }, [destinationObjectTypes, extensionKey, userInteractions]);
411
- return jsx(IntlMessagesProvider, {
412
- defaultMessages: i18nEN,
413
- loaderFn: fetchMessagesForLocale
414
- }, jsx(DatasourceModal, {
415
- testId: "confluence-search-datasource-modal",
416
- onClose: onCancel
417
- }, jsx(ModalHeader, null, jsx(ModalTitle, null, jsx(SiteSelector, {
418
- availableSites: availableSites,
419
- onSiteSelection: onSiteSelection,
420
- selectedSite: selectedConfluenceSite,
421
- testId: "confluence-search-datasource-modal--site-selector",
422
- label: siteSelectorLabel
423
- })), !hasNoConfluenceSites && !disableDisplayDropdown && jsx(DisplayViewDropDown, {
424
- onViewModeChange: handleViewModeChange,
425
- viewMode: currentViewMode
426
- })), jsx(ModalBody, null, !hasNoConfluenceSites ? jsx(Fragment, null, jsx(Box, {
427
- xcss: inputContainerStyles
428
- }, jsx(ConfluenceSearchContainer, {
429
- isSearching: status === 'loading',
430
- onSearch: onSearch,
431
- parameters: parameters
432
- })), currentViewMode === 'inline' ? renderInlineLinkModalContent() : renderTableModalContent()) : jsx(NoInstancesView, {
433
- title: confluenceSearchModalMessages.noAccessToConfluenceSitesTitle,
434
- description: confluenceSearchModalMessages.noAccessToConfluenceSitesDescription,
435
- testId: 'no-confluence-instances-content'
436
- })), jsx(ModalFooter, null, shouldShowResultsCount && confluenceSearchUrl && jsx(TableSearchCount, {
437
- searchCount: totalCount,
438
- url: confluenceSearchUrl,
439
- prefixTextType: "result",
440
- testId: "confluence-search-datasource-modal-total-results-count"
441
- }), jsx(CancelButton, {
442
- onCancel: onCancel,
443
- getAnalyticsPayload: getCancelButtonAnalyticsPayload,
444
- testId: "confluence-search-modal--cancel-button"
445
- }), !hasNoConfluenceSites && jsx(Button, {
446
- appearance: "primary",
447
- onClick: onInsertPressed,
448
- isDisabled: isInsertDisabled,
449
- testId: "confluence-search-datasource-modal--insert-button"
450
- }, jsx(FormattedMessage, confluenceSearchModalMessages.insertResultsButtonText)))));
451
- };