@atlaskit/link-datasource 2.9.0 → 2.9.1

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 (34) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/cjs/ui/common/modal/datasource-modal/createDatasourceModal.js +55 -0
  3. package/dist/cjs/ui/common/modal/datasources-table-in-modal-preview/index.js +13 -2
  4. package/dist/cjs/ui/common/modal/insert-button/index.js +5 -4
  5. package/dist/cjs/ui/confluence-search-modal/modal/index.js +35 -39
  6. package/dist/cjs/ui/jira-issues-modal/modal/index.js +141 -211
  7. package/dist/es2019/ui/common/modal/datasource-context/index.js +1 -1
  8. package/dist/es2019/ui/common/modal/datasource-modal/createDatasourceModal.js +51 -0
  9. package/dist/es2019/ui/common/modal/datasources-table-in-modal-preview/index.js +9 -2
  10. package/dist/es2019/ui/common/modal/insert-button/index.js +5 -4
  11. package/dist/es2019/ui/confluence-search-modal/modal/index.js +35 -39
  12. package/dist/es2019/ui/jira-issues-modal/modal/index.js +133 -202
  13. package/dist/esm/ui/common/modal/datasource-modal/createDatasourceModal.js +48 -0
  14. package/dist/esm/ui/common/modal/datasources-table-in-modal-preview/index.js +10 -2
  15. package/dist/esm/ui/common/modal/insert-button/index.js +5 -4
  16. package/dist/esm/ui/confluence-search-modal/modal/index.js +38 -42
  17. package/dist/esm/ui/jira-issues-modal/modal/index.js +146 -216
  18. package/dist/types/common/types.d.ts +2 -1
  19. package/dist/types/ui/common/modal/datasource-context/index.d.ts +9 -12
  20. package/dist/types/ui/common/modal/datasource-modal/createDatasourceModal.d.ts +15 -0
  21. package/dist/types/ui/common/modal/insert-button/index.d.ts +4 -2
  22. package/dist/types/ui/confluence-search-modal/modal/index.d.ts +3 -4
  23. package/dist/types/ui/confluence-search-modal/types.d.ts +6 -1
  24. package/dist/types/ui/jira-issues-modal/modal/index.d.ts +3 -3
  25. package/dist/types/ui/jira-issues-modal/types.d.ts +3 -0
  26. package/dist/types-ts4.5/common/types.d.ts +2 -1
  27. package/dist/types-ts4.5/ui/common/modal/datasource-context/index.d.ts +9 -12
  28. package/dist/types-ts4.5/ui/common/modal/datasource-modal/createDatasourceModal.d.ts +15 -0
  29. package/dist/types-ts4.5/ui/common/modal/insert-button/index.d.ts +4 -2
  30. package/dist/types-ts4.5/ui/confluence-search-modal/modal/index.d.ts +3 -4
  31. package/dist/types-ts4.5/ui/confluence-search-modal/types.d.ts +6 -1
  32. package/dist/types-ts4.5/ui/jira-issues-modal/modal/index.d.ts +3 -3
  33. package/dist/types-ts4.5/ui/jira-issues-modal/types.d.ts +3 -0
  34. package/package.json +1 -1
@@ -1,6 +1,8 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import React from 'react';
2
+ import React, { useCallback } from 'react';
3
3
  import { fg } from '@atlaskit/platform-feature-flags';
4
+ import { DatasourceAction } from '../../../../analytics/types';
5
+ import { useUserInteractions } from '../../../../contexts/user-interactions';
4
6
  import { IssueLikeDataTableView } from '../../../issue-like-table';
5
7
  import { useDatasourceContext } from '../datasource-context';
6
8
  var Table = function Table(props) {
@@ -21,13 +23,19 @@ var Table = function Table(props) {
21
23
  loadDatasourceDetails = _useDatasourceContext2.loadDatasourceDetails,
22
24
  _useDatasourceContext3 = _useDatasourceContext2.extensionKey,
23
25
  extensionKey = _useDatasourceContext3 === void 0 ? null : _useDatasourceContext3;
26
+ var userInteractions = useUserInteractions();
27
+ var handleOnNextPage = useCallback(function () {
28
+ var onNextPageProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
29
+ userInteractions.add(DatasourceAction.NEXT_PAGE_SCROLLED);
30
+ onNextPage(onNextPageProps);
31
+ }, [onNextPage, userInteractions]);
24
32
  return /*#__PURE__*/React.createElement(IssueLikeDataTableView, _extends({}, props, {
25
33
  status: status,
26
34
  columns: columns,
27
35
  items: responseItems,
28
36
  hasNextPage: hasNextPage,
29
37
  visibleColumnKeys: visibleColumnKeys || defaultVisibleColumnKeys,
30
- onNextPage: onNextPage,
38
+ onNextPage: handleOnNextPage,
31
39
  onLoadDatasourceDetails: loadDatasourceDetails,
32
40
  onVisibleColumnKeysChange: onVisibleColumnKeysChange,
33
41
  extensionKey: extensionKey,
@@ -21,6 +21,7 @@ export var InsertButton = function InsertButton(_ref) {
21
21
  var testId = _ref.testId,
22
22
  url = _ref.url,
23
23
  getAnalyticsPayload = _ref.getAnalyticsPayload,
24
+ overwriteParameters = _ref.overwriteParameters,
24
25
  children = _ref.children;
25
26
  var _useDatasourceContext = useDatasourceContext(),
26
27
  datasourceId = _useDatasourceContext.datasourceId,
@@ -45,13 +46,13 @@ export var InsertButton = function InsertButton(_ref) {
45
46
  }
46
47
  var insertButtonClickedEvent = analyticsEvent.update({
47
48
  actionSubjectId: 'insert',
48
- attributes: _objectSpread(_objectSpread({}, getAnalyticsPayload()), {}, {
49
+ attributes: _objectSpread({
49
50
  totalItemCount: totalCount || 0,
50
51
  displayedColumnCount: visibleColumnCount.current,
51
52
  display: currentViewMode === 'inline' ? DatasourceDisplay.DATASOURCE_INLINE : DatasourceDisplay.DATASOURCE_TABLE,
52
53
  searchMethod: DatasourceSearchMethod.DATASOURCE_SEARCH_QUERY,
53
54
  actions: userInteractions.get()
54
- }),
55
+ }, getAnalyticsPayload()),
55
56
  eventType: 'ui'
56
57
  });
57
58
  var consumerEvent = (_insertButtonClickedE = insertButtonClickedEvent.clone()) !== null && _insertButtonClickedE !== void 0 ? _insertButtonClickedE : undefined;
@@ -66,7 +67,7 @@ export var InsertButton = function InsertButton(_ref) {
66
67
  } else {
67
68
  onInsert(buildDatasourceAdf({
68
69
  id: datasourceId,
69
- parameters: parameters,
70
+ parameters: overwriteParameters ? overwriteParameters(parameters) : parameters,
70
71
  views: [{
71
72
  type: 'table',
72
73
  properties: {
@@ -85,7 +86,7 @@ export var InsertButton = function InsertButton(_ref) {
85
86
  }]
86
87
  }, url), consumerEvent);
87
88
  }
88
- }, [isValidParameters, parameters, url, getAnalyticsPayload, totalCount, visibleColumnCount, currentViewMode, userInteractions, onInsert, datasourceId, visibleColumnKeys, columnCustomSizes, wrappedColumnKeys]);
89
+ }, [columnCustomSizes, currentViewMode, datasourceId, getAnalyticsPayload, isValidParameters, onInsert, overwriteParameters, parameters, totalCount, url, userInteractions, visibleColumnCount, visibleColumnKeys, wrappedColumnKeys]);
89
90
  return jsx(Button, {
90
91
  appearance: "primary",
91
92
  onClick: onInsertPressed,
@@ -12,7 +12,7 @@ import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'rea
12
12
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
13
13
  import { jsx } from '@emotion/react';
14
14
  import { FormattedMessage } from 'react-intl-next';
15
- import { withAnalyticsContext } from '@atlaskit/analytics-next';
15
+ import { AnalyticsContext } from '@atlaskit/analytics-next';
16
16
  import { IntlMessagesProvider } from '@atlaskit/intl-messages-provider';
17
17
  import { ModalBody, ModalFooter, ModalHeader, ModalTitle } from '@atlaskit/modal-dialog';
18
18
  import { fg } from '@atlaskit/platform-feature-flags';
@@ -34,12 +34,13 @@ import { InitialStateView } from '../../common/initial-state-view';
34
34
  import { CancelButton } from '../../common/modal/cancel-button';
35
35
  import { ContentContainer } from '../../common/modal/content-container';
36
36
  import { SmartCardPlaceholder, SmartLink } from '../../common/modal/count-view-smart-link';
37
- import { DatasourceContextProvider, useDatasourceContext } from '../../common/modal/datasource-context';
37
+ import { useDatasourceContext } from '../../common/modal/datasource-context';
38
38
  import { DatasourceModal } from '../../common/modal/datasource-modal';
39
+ import { createDatasourceModal } from '../../common/modal/datasource-modal/createDatasourceModal';
39
40
  import DatasourcesTableInModalPreview from '../../common/modal/datasources-table-in-modal-preview';
40
41
  import { InsertButton } from '../../common/modal/insert-button';
41
42
  import { DatasourceViewModeDropDown } from '../../common/modal/mode-switcher';
42
- import { DatasourceViewModeProvider, useViewModeContext } from '../../common/modal/mode-switcher/useViewModeContext';
43
+ import { useViewModeContext } from '../../common/modal/mode-switcher/useViewModeContext';
43
44
  import TableSearchCount from '../../common/modal/search-count';
44
45
  import { SiteSelector } from '../../common/modal/site-selector';
45
46
  import { EmptyState } from '../../issue-like-table';
@@ -47,7 +48,6 @@ import ConfluenceSearchContainer from '../confluence-search-container';
47
48
  import { ConfluenceSearchInitialStateSVG } from './confluence-search-initial-state-svg';
48
49
  import { confluenceSearchModalMessages } from './messages';
49
50
  import { PlainConfluenceSearchConfigModal as PlainConfluenceSearchConfigModalOld } from './ModalOld';
50
- var DEFAULT_VIEW_MODE = 'table';
51
51
  var inputContainerStyles = xcss({
52
52
  alignItems: 'baseline',
53
53
  display: 'flex',
@@ -75,32 +75,44 @@ var useUpdateParametersOnFormUpdate = function useUpdateParametersOnFormUpdate(c
75
75
  };
76
76
  export var PlainConfluenceSearchConfigModal = function PlainConfluenceSearchConfigModal(props) {
77
77
  var onCancel = props.onCancel,
78
- initialParameters = props.parameters,
79
78
  urlBeingEdited = props.url,
80
79
  _props$disableDisplay = props.disableDisplayDropdown,
81
80
  disableDisplayDropdown = _props$disableDisplay === void 0 ? false : _props$disableDisplay,
82
81
  overrideParameters = props.overrideParameters;
83
82
  var _useViewModeContext = useViewModeContext(),
84
83
  currentViewMode = _useViewModeContext.currentViewMode;
85
- var _useState = useState(initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.cloudId),
84
+ var _useDatasourceContext2 = useDatasourceContext(),
85
+ visibleColumnKeys = _useDatasourceContext2.visibleColumnKeys,
86
+ _useDatasourceContext3 = _useDatasourceContext2.tableState,
87
+ reset = _useDatasourceContext3.reset,
88
+ status = _useDatasourceContext3.status,
89
+ responseItems = _useDatasourceContext3.responseItems,
90
+ _useDatasourceContext4 = _useDatasourceContext3.extensionKey,
91
+ extensionKey = _useDatasourceContext4 === void 0 ? null : _useDatasourceContext4,
92
+ destinationObjectTypes = _useDatasourceContext3.destinationObjectTypes,
93
+ totalCount = _useDatasourceContext3.totalCount,
94
+ columns = _useDatasourceContext3.columns,
95
+ visibleColumnCount = _useDatasourceContext2.visibleColumnCount,
96
+ parameters = _useDatasourceContext2.parameters;
97
+ var _useState = useState(parameters === null || parameters === void 0 ? void 0 : parameters.cloudId),
86
98
  _useState2 = _slicedToArray(_useState, 2),
87
99
  cloudId = _useState2[0],
88
100
  setCloudId = _useState2[1];
89
101
  var _useAvailableSites = useAvailableSites('confluence', cloudId),
90
102
  availableSites = _useAvailableSites.availableSites,
91
103
  selectedConfluenceSite = _useAvailableSites.selectedSite;
92
- var _useState3 = useState(initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.searchString),
104
+ var _useState3 = useState(parameters === null || parameters === void 0 ? void 0 : parameters.searchString),
93
105
  _useState4 = _slicedToArray(_useState3, 2),
94
106
  searchString = _useState4[0],
95
107
  setSearchString = _useState4[1];
96
- var _useState5 = useState((initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.contributorAccountIds) || []),
108
+ var _useState5 = useState((parameters === null || parameters === void 0 ? void 0 : parameters.contributorAccountIds) || []),
97
109
  _useState6 = _slicedToArray(_useState5, 2),
98
110
  contributorAccountIds = _useState6[0],
99
111
  setContributorAccountIds = _useState6[1];
100
- var _useState7 = useState(initialParameters !== null && initialParameters !== void 0 && initialParameters.lastModified ? {
101
- value: initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.lastModified,
102
- from: initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.lastModifiedFrom,
103
- to: initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.lastModifiedTo
112
+ var _useState7 = useState(parameters !== null && parameters !== void 0 && parameters.lastModified ? {
113
+ value: parameters === null || parameters === void 0 ? void 0 : parameters.lastModified,
114
+ from: parameters === null || parameters === void 0 ? void 0 : parameters.lastModifiedFrom,
115
+ to: parameters === null || parameters === void 0 ? void 0 : parameters.lastModifiedTo
104
116
  } : undefined),
105
117
  _useState8 = _slicedToArray(_useState7, 2),
106
118
  lastModified = _useState8[0],
@@ -110,19 +122,6 @@ export var PlainConfluenceSearchConfigModal = function PlainConfluenceSearchConf
110
122
  var searchCount = useRef(0);
111
123
  var userInteractions = useUserInteractions();
112
124
  useUpdateParametersOnFormUpdate(cloudId, searchString, lastModified, contributorAccountIds, overrideParameters);
113
- var _useDatasourceContext2 = useDatasourceContext(),
114
- visibleColumnKeys = _useDatasourceContext2.visibleColumnKeys,
115
- _useDatasourceContext3 = _useDatasourceContext2.tableState,
116
- reset = _useDatasourceContext3.reset,
117
- status = _useDatasourceContext3.status,
118
- responseItems = _useDatasourceContext3.responseItems,
119
- _useDatasourceContext4 = _useDatasourceContext3.extensionKey,
120
- extensionKey = _useDatasourceContext4 === void 0 ? null : _useDatasourceContext4,
121
- destinationObjectTypes = _useDatasourceContext3.destinationObjectTypes,
122
- totalCount = _useDatasourceContext3.totalCount,
123
- columns = _useDatasourceContext3.columns,
124
- visibleColumnCount = _useDatasourceContext2.visibleColumnCount,
125
- parameters = _useDatasourceContext2.parameters;
126
125
  var _useDatasourceAnalyti = useDatasourceAnalyticsEvents(),
127
126
  fireEvent = _useDatasourceAnalyti.fireEvent;
128
127
  var hasNoConfluenceSites = availableSites && availableSites.length === 0;
@@ -316,7 +315,7 @@ export var PlainConfluenceSearchConfigModal = function PlainConfluenceSearchConf
316
315
  }, jsx(ConfluenceSearchContainer, {
317
316
  isSearching: status === 'loading',
318
317
  onSearch: onSearch,
319
- parameters: isValidParameters(parameters) ? parameters : {
318
+ parameters: parameters && isValidParameters(parameters) ? parameters : {
320
319
  cloudId: ''
321
320
  }
322
321
  })), currentViewMode === 'inline' ? renderInlineLinkModalContent() : renderTableModalContent()) : jsx(NoInstancesView, {
@@ -347,19 +346,16 @@ var analyticsContextData = _objectSpread(_objectSpread({}, componentMetadata.con
347
346
  var contextData = _objectSpread(_objectSpread({}, analyticsContextData), {}, {
348
347
  attributes: _objectSpread({}, analyticsContextAttributes)
349
348
  });
350
- export var ConfluenceSearchConfigModal = withAnalyticsContext(contextData)(function (props) {
351
- var _props$viewMode;
352
- return jsx(StoreContainer, null, jsx(DatasourceExperienceIdProvider, null, jsx(UserInteractionsProvider, null, fg('platform-datasources-use-refactored-config-modal') ? jsx(DatasourceContextProvider, {
353
- datasourceId: props.datasourceId,
354
- initialVisibleColumnKeys: props.visibleColumnKeys,
355
- initialColumnCustomSizes: props.columnCustomSizes,
356
- initialWrappedColumnKeys: props.wrappedColumnKeys,
357
- initialParameters: props.parameters,
358
- isValidParameters: isValidParameters,
359
- onInsert: props.onInsert
360
- }, jsx(DatasourceViewModeProvider, {
361
- viewMode: (_props$viewMode = props.viewMode) !== null && _props$viewMode !== void 0 ? _props$viewMode : DEFAULT_VIEW_MODE
362
- }, jsx(PlainConfluenceSearchConfigModal, props))) :
363
- // TODO on cleanup 'use-refactored-config-modal' ff, delete `ModalOld.tsx` as well
364
- jsx(PlainConfluenceSearchConfigModalOld, props))));
365
- });
349
+ var ConnectedConfluenceSearchConfigModal = createDatasourceModal({
350
+ isValidParameters: isValidParameters,
351
+ dataProvider: 'confluence-search',
352
+ component: PlainConfluenceSearchConfigModal
353
+ });
354
+ export var ConfluenceSearchConfigModal = function ConfluenceSearchConfigModal(props) {
355
+ if (fg('platform-datasources-use-refactored-config-modal')) {
356
+ return jsx(StoreContainer, null, jsx(ConnectedConfluenceSearchConfigModal, props));
357
+ }
358
+ return jsx(StoreContainer, null, jsx(AnalyticsContext, {
359
+ data: contextData
360
+ }, jsx(DatasourceExperienceIdProvider, null, jsx(UserInteractionsProvider, null, jsx(PlainConfluenceSearchConfigModalOld, props)))));
361
+ };