@atlaskit/link-datasource 1.7.4 → 1.7.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.
Files changed (32) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/analytics/constants.js +1 -1
  3. package/dist/cjs/hooks/useDatasourceTableState.js +12 -15
  4. package/dist/cjs/ui/assets-modal/modal/index.js +1 -1
  5. package/dist/cjs/ui/jira-issues-modal/basic-search-input/messages.js +1 -1
  6. package/dist/cjs/ui/jira-issues-modal/initial-state-view/index.js +39 -10
  7. package/dist/cjs/ui/jira-issues-modal/initial-state-view/messages.js +14 -4
  8. package/dist/cjs/ui/jira-issues-modal/jira-search-container/index.js +19 -19
  9. package/dist/cjs/ui/jira-issues-modal/modal/index.js +20 -10
  10. package/dist/es2019/analytics/constants.js +1 -1
  11. package/dist/es2019/hooks/useDatasourceTableState.js +1 -4
  12. package/dist/es2019/ui/assets-modal/modal/index.js +1 -1
  13. package/dist/es2019/ui/jira-issues-modal/basic-search-input/messages.js +1 -1
  14. package/dist/es2019/ui/jira-issues-modal/initial-state-view/index.js +47 -21
  15. package/dist/es2019/ui/jira-issues-modal/initial-state-view/messages.js +14 -4
  16. package/dist/es2019/ui/jira-issues-modal/jira-search-container/index.js +19 -19
  17. package/dist/es2019/ui/jira-issues-modal/modal/index.js +17 -11
  18. package/dist/esm/analytics/constants.js +1 -1
  19. package/dist/esm/hooks/useDatasourceTableState.js +12 -15
  20. package/dist/esm/ui/assets-modal/modal/index.js +1 -1
  21. package/dist/esm/ui/jira-issues-modal/basic-search-input/messages.js +1 -1
  22. package/dist/esm/ui/jira-issues-modal/initial-state-view/index.js +39 -11
  23. package/dist/esm/ui/jira-issues-modal/initial-state-view/messages.js +14 -4
  24. package/dist/esm/ui/jira-issues-modal/jira-search-container/index.js +19 -19
  25. package/dist/esm/ui/jira-issues-modal/modal/index.js +20 -10
  26. package/dist/types/ui/jira-issues-modal/initial-state-view/index.d.ts +6 -1
  27. package/dist/types/ui/jira-issues-modal/initial-state-view/messages.d.ts +11 -1
  28. package/dist/types/ui/jira-issues-modal/jira-search-container/index.d.ts +2 -1
  29. package/dist/types-ts4.5/ui/jira-issues-modal/initial-state-view/index.d.ts +6 -1
  30. package/dist/types-ts4.5/ui/jira-issues-modal/initial-state-view/messages.d.ts +11 -1
  31. package/dist/types-ts4.5/ui/jira-issues-modal/jira-search-container/index.d.ts +2 -1
  32. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @atlaskit/link-datasource
2
2
 
3
+ ## 1.7.6
4
+
5
+ ### Patch Changes
6
+
7
+ - [#41377](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/41377) [`6191c789222`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6191c789222) - Fix bug where on next page load sorts the column in alphabetical order.
8
+
9
+ ## 1.7.5
10
+
11
+ ### Patch Changes
12
+
13
+ - [#40232](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/40232) [`b8c29cec088`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b8c29cec088) - [ux] Make JQL mode to be selected by default
14
+
3
15
  ## 1.7.4
4
16
 
5
17
  ### Patch Changes
@@ -7,5 +7,5 @@ exports.packageMetaData = exports.EVENT_CHANNEL = void 0;
7
7
  var EVENT_CHANNEL = exports.EVENT_CHANNEL = 'media';
8
8
  var packageMetaData = exports.packageMetaData = {
9
9
  packageName: "@atlaskit/link-datasource",
10
- packageVersion: "1.7.4"
10
+ packageVersion: "1.7.6"
11
11
  };
@@ -138,7 +138,6 @@ var useDatasourceTableState = exports.useDatasourceTableState = function useData
138
138
  shouldRequestFirstPage,
139
139
  _requestInfo$shouldFo,
140
140
  shouldForceRequest,
141
- sortedFieldKeys,
142
141
  datasourceDataRequest,
143
142
  _yield$getDatasourceD2,
144
143
  _yield$getDatasourceD3,
@@ -165,20 +164,18 @@ var useDatasourceTableState = exports.useDatasourceTableState = function useData
165
164
  return _context2.abrupt("return");
166
165
  case 3:
167
166
  _requestInfo$isSchema = requestInfo.isSchemaFromData, isSchemaFromData = _requestInfo$isSchema === void 0 ? true : _requestInfo$isSchema, shouldRequestFirstPage = requestInfo.shouldRequestFirstPage, _requestInfo$shouldFo = requestInfo.shouldForceRequest, shouldForceRequest = _requestInfo$shouldFo === void 0 ? false : _requestInfo$shouldFo;
168
- sortedFieldKeys = (0, _toConsumableArray2.default)(fieldKeys); // Sort keys to use cached version of response regardless of the order
169
- sortedFieldKeys.sort();
170
167
  datasourceDataRequest = {
171
168
  parameters: parameters,
172
169
  pageSize: _linkClientExtension.DEFAULT_GET_DATASOURCE_DATA_PAGE_SIZE,
173
170
  pageCursor: shouldRequestFirstPage ? undefined : nextCursor,
174
- fields: sortedFieldKeys,
171
+ fields: fieldKeys,
175
172
  includeSchema: isSchemaFromData
176
173
  };
177
174
  setStatus('loading');
178
- _context2.prev = 8;
179
- _context2.next = 11;
175
+ _context2.prev = 6;
176
+ _context2.next = 9;
180
177
  return getDatasourceData(datasourceId, datasourceDataRequest, shouldForceRequest);
181
- case 11:
178
+ case 9:
182
179
  _yield$getDatasourceD2 = _context2.sent;
183
180
  _yield$getDatasourceD3 = _yield$getDatasourceD2.meta;
184
181
  access = _yield$getDatasourceD3.access;
@@ -190,12 +187,12 @@ var useDatasourceTableState = exports.useDatasourceTableState = function useData
190
187
  _totalCount = _yield$getDatasourceD4.totalCount;
191
188
  schema = _yield$getDatasourceD4.schema;
192
189
  if (!(access === 'forbidden' || access === 'unauthorized')) {
193
- _context2.next = 24;
190
+ _context2.next = 22;
194
191
  break;
195
192
  }
196
193
  setStatus('unauthorized');
197
194
  return _context2.abrupt("return");
198
- case 24:
195
+ case 22:
199
196
  setExtensionKey(_extensionKey);
200
197
  setDestinationObjectTypes(_destinationObjectTypes);
201
198
  setTotalCount(_totalCount);
@@ -224,17 +221,17 @@ var useDatasourceTableState = exports.useDatasourceTableState = function useData
224
221
  });
225
222
  }
226
223
  setStatus('resolved');
227
- _context2.next = 40;
224
+ _context2.next = 38;
228
225
  break;
229
- case 37:
230
- _context2.prev = 37;
231
- _context2.t0 = _context2["catch"](8);
226
+ case 35:
227
+ _context2.prev = 35;
228
+ _context2.t0 = _context2["catch"](6);
232
229
  setStatus('rejected');
233
- case 40:
230
+ case 38:
234
231
  case "end":
235
232
  return _context2.stop();
236
233
  }
237
- }, _callee2, null, [[8, 37]]);
234
+ }, _callee2, null, [[6, 35]]);
238
235
  })), [parameters, fieldKeys, nextCursor, getDatasourceData, datasourceId, responseItems === null || responseItems === void 0 ? void 0 : responseItems.length, applySchemaProperties, fireEvent]);
239
236
  var reset = (0, _react.useCallback)(function (options) {
240
237
  setStatus('empty');
@@ -234,7 +234,7 @@ var analyticsContextAttributes = {
234
234
  };
235
235
  var analyticsContextData = {
236
236
  packageName: "@atlaskit/link-datasource",
237
- packageVersion: "1.7.4",
237
+ packageVersion: "1.7.6",
238
238
  source: 'datasourceConfigModal'
239
239
  };
240
240
  var contextData = _objectSpread(_objectSpread({}, analyticsContextData), {}, {
@@ -9,6 +9,6 @@ var basicSearchInputMessages = exports.basicSearchInputMessages = (0, _reactIntl
9
9
  basicTextSearchLabel: {
10
10
  id: 'linkDataSource.jira-issues.configmodal.basicTextSearchPlaceholder',
11
11
  description: 'Placeholder text for the search input box',
12
- defaultMessage: 'Search'
12
+ defaultMessage: 'Search for issues by keyword'
13
13
  }
14
14
  });
@@ -1,11 +1,14 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.InitialStateView = void 0;
7
8
  var _react = require("@emotion/react");
8
9
  var _reactIntlNext = require("react-intl-next");
10
+ var _lozenge = _interopRequireDefault(require("@atlaskit/lozenge"));
11
+ var _colors = require("@atlaskit/theme/colors");
9
12
  var _initialStateSvg = require("./assets/initial-state-svg");
10
13
  var _messages = require("./messages");
11
14
  /** @jsx jsx */
@@ -19,19 +22,38 @@ var svgAndTextsWrapperStyles = (0, _react.css)({
19
22
  textAlign: 'center',
20
23
  alignSelf: 'center',
21
24
  paddingTop: "var(--ds-space-600, 48px)",
22
- paddingBottom: "var(--ds-space-600, 48px)"
25
+ paddingBottom: "var(--ds-space-600, 48px)",
26
+ width: '260px'
27
+ });
28
+ var betaTagStyles = (0, _react.css)({
29
+ display: 'flex'
23
30
  });
24
31
  var searchTitleStyles = (0, _react.css)({
25
- fontWeight: "var(--ds-font-weight-semibold, 600)",
26
- fontSize: "var(--ds-font-size-200, 16px)",
32
+ color: "var(--ds-text-subtlest, ".concat(_colors.N300, ")"),
33
+ fontWeight: "var(--ds-font-weight-medium, 500)",
34
+ fontSize: "var(--ds-font-size-300, 20px)",
27
35
  lineHeight: "var(--ds-font-lineHeight-300, 24px)",
28
36
  paddingTop: "var(--ds-space-200, 16px)",
29
- paddingBottom: "var(--ds-space-100, 8px)"
37
+ paddingBottom: "var(--ds-space-100, 8px)",
38
+ display: 'flex',
39
+ justifyContent: 'center',
40
+ alignItems: 'center',
41
+ gap: "var(--ds-space-100, 8px)"
42
+ });
43
+ var mainTextStyles = (0, _react.css)({
44
+ color: "var(--ds-text-subtlest, ".concat(_colors.N300, ")")
30
45
  });
46
+ var learnMoreLinkStyles = (0, _react.css)({
47
+ paddingTop: "var(--ds-space-200, 16px)",
48
+ display: 'inline-block'
49
+ });
50
+ var methodToDescriptionMessage = {
51
+ basic: _messages.initialStateViewMessages.searchDescriptionForBasicSearch,
52
+ jql: _messages.initialStateViewMessages.searchDescriptionForJQLSearch
53
+ };
31
54
  var jqlSupportDocumentLink = 'https://support.atlassian.com/jira-service-management-cloud/docs/use-advanced-search-with-jira-query-language-jql/';
32
- var InitialStateView = exports.InitialStateView = function InitialStateView() {
33
- var _useIntl = (0, _reactIntlNext.useIntl)(),
34
- formatMessage = _useIntl.formatMessage;
55
+ var InitialStateView = exports.InitialStateView = function InitialStateView(_ref) {
56
+ var searchMethod = _ref.searchMethod;
35
57
  return (0, _react.jsx)("div", {
36
58
  css: initialStateViewContainerStyles,
37
59
  "data-testid": "jlol-datasource-modal--initial-state-view"
@@ -39,8 +61,15 @@ var InitialStateView = exports.InitialStateView = function InitialStateView() {
39
61
  css: svgAndTextsWrapperStyles
40
62
  }, (0, _react.jsx)(_initialStateSvg.InitialStateSVG, null), (0, _react.jsx)("div", {
41
63
  css: searchTitleStyles
42
- }, formatMessage(_messages.initialStateViewMessages.searchTitle)), (0, _react.jsx)("div", null, formatMessage(_messages.initialStateViewMessages.searchDescription)), (0, _react.jsx)("a", {
64
+ }, (0, _react.jsx)("div", {
65
+ css: betaTagStyles
66
+ }, (0, _react.jsx)(_lozenge.default, {
67
+ appearance: "new"
68
+ }, (0, _react.jsx)(_reactIntlNext.FormattedMessage, _messages.initialStateViewMessages.beta))), (0, _react.jsx)(_reactIntlNext.FormattedMessage, _messages.initialStateViewMessages.searchTitle)), (0, _react.jsx)("div", {
69
+ css: mainTextStyles
70
+ }, (0, _react.jsx)(_reactIntlNext.FormattedMessage, methodToDescriptionMessage[searchMethod])), searchMethod === 'jql' ? (0, _react.jsx)("a", {
43
71
  href: jqlSupportDocumentLink,
44
- target: "_blank"
45
- }, formatMessage(_messages.initialStateViewMessages.learnMoreLink))));
72
+ target: "_blank",
73
+ css: learnMoreLinkStyles
74
+ }, (0, _react.jsx)(_reactIntlNext.FormattedMessage, _messages.initialStateViewMessages.learnMoreLink)) : null));
46
75
  };
@@ -11,14 +11,24 @@ var initialStateViewMessages = exports.initialStateViewMessages = (0, _reactIntl
11
11
  description: 'The initial modal search state title that gives the user some idea about how to get information',
12
12
  defaultMessage: 'Search for Jira issues'
13
13
  },
14
- searchDescription: {
14
+ beta: {
15
+ id: 'linkDataSource.modal-initial-state.beta',
16
+ description: 'Beta lozenge',
17
+ defaultMessage: 'Beta'
18
+ },
19
+ searchDescriptionForBasicSearch: {
20
+ id: 'linkDataSource.modal-initial-state.searchDescription',
21
+ description: 'The initial modal search state helper message displayed under the search title when basic search mode is selected',
22
+ defaultMessage: 'Search by keyword for issues to insert.'
23
+ },
24
+ searchDescriptionForJQLSearch: {
15
25
  id: 'linkDataSource.modal-initial-state.searchDescription',
16
- description: 'The initial modal search state helper message displayed under the search title',
17
- defaultMessage: 'Start typing or use JQL to search.'
26
+ description: 'The initial modal search state helper message displayed under the search title when JQL search mode is selected',
27
+ defaultMessage: 'Use JQL (Jira Query Language) to search for issues.'
18
28
  },
19
29
  learnMoreLink: {
20
30
  id: 'linkDataSource.modal-initial-state.learnMoreLink',
21
31
  description: 'The link that displays under the search description to help people know more about JQL',
22
- defaultMessage: 'Learn more about searching with JQL'
32
+ defaultMessage: 'Learn how to search with JQL'
23
33
  }
24
34
  });
@@ -5,7 +5,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.getInitialSearchMethod = exports.JiraSearchContainer = void 0;
8
+ exports.JiraSearchContainer = void 0;
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
  var _react2 = require("@emotion/react");
@@ -30,13 +30,12 @@ var inputContainerStyles = (0, _react2.css)({
30
30
  });
31
31
  var DEFAULT_JQL_QUERY = 'created >= -30d order by created DESC';
32
32
  var JiraSearchMethodSwitcher = _modeSwitcher.ModeSwitcher;
33
- var getInitialSearchMethod = exports.getInitialSearchMethod = function getInitialSearchMethod(initialJql) {
34
- return initialJql ? 'jql' : 'basic';
35
- };
36
33
  var JiraSearchContainer = exports.JiraSearchContainer = function JiraSearchContainer(props) {
37
34
  var isSearching = props.isSearching,
38
35
  parameters = props.parameters,
39
- onSearch = props.onSearch;
36
+ onSearch = props.onSearch,
37
+ onSearchMethodChangeCallback = props.onSearchMethodChange,
38
+ initialSearchMethod = props.initialSearchMethod;
40
39
  var _ref = parameters || {},
41
40
  cloudId = _ref.cloudId,
42
41
  initialJql = _ref.jql;
@@ -46,7 +45,7 @@ var JiraSearchContainer = exports.JiraSearchContainer = function JiraSearchConta
46
45
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
47
46
  basicSearchTerm = _useState2[0],
48
47
  setBasicSearchTerm = _useState2[1];
49
- var _useState3 = (0, _react.useState)(getInitialSearchMethod(initialJql)),
48
+ var _useState3 = (0, _react.useState)(initialSearchMethod),
50
49
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
51
50
  currentSearchMethod = _useState4[0],
52
51
  setCurrentSearchMethod = _useState4[1];
@@ -64,10 +63,11 @@ var JiraSearchContainer = exports.JiraSearchContainer = function JiraSearchConta
64
63
  setOrderDirection = _useState10[1];
65
64
  var _useDatasourceAnalyti = (0, _analytics.useDatasourceAnalyticsEvents)(),
66
65
  fireEvent = _useDatasourceAnalyti.fireEvent;
67
- var onSearchModeChange = function onSearchModeChange(searchMode) {
68
- setCurrentSearchMethod(searchMode);
69
- };
70
- var handleBasicSearchChange = function handleBasicSearchChange(e) {
66
+ var onSearchMethodChange = (0, _react.useCallback)(function (searchMethod) {
67
+ onSearchMethodChangeCallback(searchMethod);
68
+ setCurrentSearchMethod(searchMethod);
69
+ }, [onSearchMethodChangeCallback]);
70
+ var handleBasicSearchChange = (0, _react.useCallback)(function (e) {
71
71
  var rawSearch = e.currentTarget.value;
72
72
  setBasicSearchTerm(rawSearch);
73
73
  setJql((0, _buildJQL.buildJQL)({
@@ -75,8 +75,8 @@ var JiraSearchContainer = exports.JiraSearchContainer = function JiraSearchConta
75
75
  orderDirection: orderDirection,
76
76
  orderKey: orderKey
77
77
  }));
78
- };
79
- var onQueryChange = function onQueryChange(query) {
78
+ }, [orderDirection, orderKey]);
79
+ var onQueryChange = (0, _react.useCallback)(function (query) {
80
80
  var _query$split$map$filt, _fragments$at, _fragments$at2, _fragments$at3;
81
81
  // determine if order keys have been set so they can be saved and persisted when changes occur in basic search
82
82
  var fragments = (_query$split$map$filt = query === null || query === void 0 ? void 0 : query.split(/(^| )(order by)( |$)/i).map(function (item) {
@@ -92,8 +92,8 @@ var JiraSearchContainer = exports.JiraSearchContainer = function JiraSearchConta
92
92
  setOrderDirection(order);
93
93
  }
94
94
  setJql(query);
95
- };
96
- var handleSearch = function handleSearch() {
95
+ }, []);
96
+ var handleSearch = (0, _react.useCallback)(function () {
97
97
  onSearch({
98
98
  jql: jql
99
99
  }, currentSearchMethod);
@@ -102,7 +102,7 @@ var JiraSearchContainer = exports.JiraSearchContainer = function JiraSearchConta
102
102
  } else if (currentSearchMethod === 'jql') {
103
103
  fireEvent('ui.jqlEditor.searched', {});
104
104
  }
105
- };
105
+ }, [currentSearchMethod, fireEvent, jql, onSearch]);
106
106
  var showBasicFilters = (0, _react.useMemo)(function () {
107
107
  if ((0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.datasource.show-jlol-basic-filters')) {
108
108
  return true;
@@ -123,14 +123,14 @@ var JiraSearchContainer = exports.JiraSearchContainer = function JiraSearchConta
123
123
  onSearch: handleSearch,
124
124
  query: jql
125
125
  }), (0, _react2.jsx)(JiraSearchMethodSwitcher, {
126
- onOptionValueChange: onSearchModeChange,
126
+ onOptionValueChange: onSearchMethodChange,
127
127
  selectedOptionValue: currentSearchMethod,
128
128
  options: [{
129
- label: formatMessage(_messages.modeSwitcherMessages.basicTextSearchLabel),
130
- value: 'basic'
131
- }, {
132
129
  label: 'JQL',
133
130
  value: 'jql'
131
+ }, {
132
+ label: formatMessage(_messages.modeSwitcherMessages.basicTextSearchLabel),
133
+ value: 'basic'
134
134
  }]
135
135
  }));
136
136
  };
@@ -122,7 +122,12 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
122
122
  // analytics related parameters
123
123
  var searchCount = (0, _react.useRef)(0);
124
124
  var userInteractionActions = (0, _react.useRef)(new Set());
125
- var lastSearchMethodRef = (0, _react.useRef)(null);
125
+ var initialSearchMethod = 'jql'; // TODO EDM-7688 This where we can add feature that decides if it's basic or jql based on JQL content (Regexp)
126
+ var _useState11 = (0, _react.useState)(initialSearchMethod),
127
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
128
+ currentSearchMethod = _useState12[0],
129
+ setCurrentSearchMethod = _useState12[1];
130
+ var searchMethodSearchedWith = (0, _react.useRef)(null);
126
131
  var visibleColumnCount = (0, _react.useRef)((visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.length) || 0);
127
132
  var parameters = (0, _react.useMemo)(function () {
128
133
  return !!cloudId ? {
@@ -239,12 +244,12 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
239
244
  }, [cloudId, selectedJiraSite]);
240
245
  var fireSingleItemViewedEvent = (0, _react.useCallback)(function () {
241
246
  fireEvent('ui.link.viewed.singleItem', _objectSpread(_objectSpread({}, analyticsPayload), {}, {
242
- searchMethod: (0, _utils.mapSearchMethod)(lastSearchMethodRef.current)
247
+ searchMethod: (0, _utils.mapSearchMethod)(searchMethodSearchedWith.current)
243
248
  }));
244
249
  }, [analyticsPayload, fireEvent]);
245
250
  var fireCountViewedEvent = (0, _react.useCallback)(function () {
246
251
  fireEvent('ui.link.viewed.count', _objectSpread(_objectSpread({}, analyticsPayload), {}, {
247
- searchMethod: (0, _utils.mapSearchMethod)(lastSearchMethodRef.current),
252
+ searchMethod: (0, _utils.mapSearchMethod)(searchMethodSearchedWith.current),
248
253
  totalItemCount: totalCount || 0
249
254
  }));
250
255
  }, [analyticsPayload, fireEvent, totalCount]);
@@ -252,7 +257,7 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
252
257
  if (isDataReady) {
253
258
  fireEvent('ui.table.viewed.datasourceConfigModal', _objectSpread(_objectSpread({}, analyticsPayload), {}, {
254
259
  totalItemCount: totalCount || 0,
255
- searchMethod: (0, _utils.mapSearchMethod)(lastSearchMethodRef.current),
260
+ searchMethod: (0, _utils.mapSearchMethod)(searchMethodSearchedWith.current),
256
261
  displayedColumnCount: visibleColumnCount.current
257
262
  }));
258
263
  }
@@ -283,7 +288,7 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
283
288
  (0, _useColumnPickerRenderedFailedUfoExperience.useColumnPickerRenderedFailedUfoExperience)(status, modalRenderInstanceId);
284
289
  var onSearch = (0, _react.useCallback)(function (newParameters, searchMethod) {
285
290
  searchCount.current++;
286
- lastSearchMethodRef.current = searchMethod;
291
+ searchMethodSearchedWith.current = searchMethod;
287
292
  if (jql !== newParameters.jql) {
288
293
  userInteractionActions.current.add(_types.DatasourceAction.QUERY_UPDATED);
289
294
  }
@@ -329,7 +334,7 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
329
334
  displayedColumnCount: visibleColumnCount.current,
330
335
  display: getDisplayValue(currentViewMode, totalCount || 0),
331
336
  searchCount: searchCount.current,
332
- searchMethod: (0, _utils.mapSearchMethod)(lastSearchMethodRef.current),
337
+ searchMethod: (0, _utils.mapSearchMethod)(searchMethodSearchedWith.current),
333
338
  actions: Array.from(userInteractionActions.current)
334
339
  }),
335
340
  eventType: 'ui'
@@ -383,8 +388,9 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
383
388
  setCurrentViewMode(selectedMode);
384
389
  };
385
390
  var handleOnNextPage = (0, _react.useCallback)(function () {
391
+ var onNextPageProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
386
392
  userInteractionActions.current.add(_types.DatasourceAction.NEXT_PAGE_SCROLLED);
387
- onNextPage();
393
+ onNextPage(onNextPageProps);
388
394
  }, [onNextPage]);
389
395
  var handleVisibleColumnKeysChange = (0, _react.useCallback)(function () {
390
396
  var newVisibleColumnKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
@@ -450,7 +456,9 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
450
456
  }, !!jql ? (0, _react2.jsx)(_issueLikeTable.EmptyState, {
451
457
  testId: "jira-jql-datasource-modal--empty-state",
452
458
  isLoading: true
453
- }) : (0, _react2.jsx)(_initialStateView.InitialStateView, null));
459
+ }) : (0, _react2.jsx)(_initialStateView.InitialStateView, {
460
+ searchMethod: currentSearchMethod
461
+ }));
454
462
  }
455
463
  var firstIssueUrl = retrieveUrlForSmartCardRender();
456
464
  if (responseItems.length === 1 && firstIssueUrl) {
@@ -461,7 +469,7 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
461
469
  }));
462
470
  }
463
471
  return issueLikeDataTableView;
464
- }, [status, jqlUrl, resolvedWithNoResults, columns.length, retrieveUrlForSmartCardRender, responseItems.length, issueLikeDataTableView, selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.displayName, jql]);
472
+ }, [status, jqlUrl, resolvedWithNoResults, columns.length, retrieveUrlForSmartCardRender, responseItems.length, issueLikeDataTableView, selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.displayName, jql, currentSearchMethod]);
465
473
  return (0, _react2.jsx)(_modalDialog.ModalTransition, null, (0, _react2.jsx)(_modalDialog.default, {
466
474
  testId: 'jira-jql-datasource-modal',
467
475
  onClose: onCancel,
@@ -492,7 +500,9 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
492
500
  })), (0, _react2.jsx)(_modalDialog.ModalBody, null, (0, _react2.jsx)(_jiraSearchContainer.JiraSearchContainer, {
493
501
  isSearching: status === 'loading',
494
502
  parameters: parameters,
495
- onSearch: onSearch
503
+ onSearch: onSearch,
504
+ initialSearchMethod: initialSearchMethod,
505
+ onSearchMethodChange: setCurrentSearchMethod
496
506
  }), currentViewMode === 'count' ? renderCountModeContent() : renderIssuesModeContent()), (0, _react2.jsx)(_modalDialog.ModalFooter, null, shouldShowIssueCount && (0, _react2.jsx)("div", {
497
507
  "data-testid": "jira-jql-datasource-modal-total-issues-count",
498
508
  css: issueCountStyles
@@ -1,5 +1,5 @@
1
1
  export const EVENT_CHANNEL = 'media';
2
2
  export const packageMetaData = {
3
3
  packageName: "@atlaskit/link-datasource",
4
- packageVersion: "1.7.4"
4
+ packageVersion: "1.7.6"
5
5
  };
@@ -76,14 +76,11 @@ export const useDatasourceTableState = ({
76
76
  shouldRequestFirstPage,
77
77
  shouldForceRequest = false
78
78
  } = requestInfo;
79
- const sortedFieldKeys = [...fieldKeys];
80
- // Sort keys to use cached version of response regardless of the order
81
- sortedFieldKeys.sort();
82
79
  const datasourceDataRequest = {
83
80
  parameters,
84
81
  pageSize: DEFAULT_GET_DATASOURCE_DATA_PAGE_SIZE,
85
82
  pageCursor: shouldRequestFirstPage ? undefined : nextCursor,
86
- fields: sortedFieldKeys,
83
+ fields: fieldKeys,
87
84
  includeSchema: isSchemaFromData
88
85
  };
89
86
  setStatus('loading');
@@ -194,7 +194,7 @@ const analyticsContextAttributes = {
194
194
  };
195
195
  const analyticsContextData = {
196
196
  packageName: "@atlaskit/link-datasource",
197
- packageVersion: "1.7.4",
197
+ packageVersion: "1.7.6",
198
198
  source: 'datasourceConfigModal'
199
199
  };
200
200
  const contextData = {
@@ -3,6 +3,6 @@ export const basicSearchInputMessages = defineMessages({
3
3
  basicTextSearchLabel: {
4
4
  id: 'linkDataSource.jira-issues.configmodal.basicTextSearchPlaceholder',
5
5
  description: 'Placeholder text for the search input box',
6
- defaultMessage: 'Search'
6
+ defaultMessage: 'Search for issues by keyword'
7
7
  }
8
8
  });
@@ -1,7 +1,9 @@
1
1
  /** @jsx jsx */
2
2
 
3
3
  import { css, jsx } from '@emotion/react';
4
- import { useIntl } from 'react-intl-next';
4
+ import { FormattedMessage } from 'react-intl-next';
5
+ import Lozenge from '@atlaskit/lozenge';
6
+ import { N300 } from '@atlaskit/theme/colors';
5
7
  import { InitialStateSVG } from './assets/initial-state-svg';
6
8
  import { initialStateViewMessages } from './messages';
7
9
  const initialStateViewContainerStyles = css({
@@ -13,29 +15,53 @@ const svgAndTextsWrapperStyles = css({
13
15
  textAlign: 'center',
14
16
  alignSelf: 'center',
15
17
  paddingTop: "var(--ds-space-600, 48px)",
16
- paddingBottom: "var(--ds-space-600, 48px)"
18
+ paddingBottom: "var(--ds-space-600, 48px)",
19
+ width: '260px'
20
+ });
21
+ const betaTagStyles = css({
22
+ display: 'flex'
17
23
  });
18
24
  const searchTitleStyles = css({
19
- fontWeight: "var(--ds-font-weight-semibold, 600)",
20
- fontSize: "var(--ds-font-size-200, 16px)",
25
+ color: `var(--ds-text-subtlest, ${N300})`,
26
+ fontWeight: "var(--ds-font-weight-medium, 500)",
27
+ fontSize: "var(--ds-font-size-300, 20px)",
21
28
  lineHeight: "var(--ds-font-lineHeight-300, 24px)",
22
29
  paddingTop: "var(--ds-space-200, 16px)",
23
- paddingBottom: "var(--ds-space-100, 8px)"
30
+ paddingBottom: "var(--ds-space-100, 8px)",
31
+ display: 'flex',
32
+ justifyContent: 'center',
33
+ alignItems: 'center',
34
+ gap: "var(--ds-space-100, 8px)"
35
+ });
36
+ const mainTextStyles = css({
37
+ color: `var(--ds-text-subtlest, ${N300})`
38
+ });
39
+ const learnMoreLinkStyles = css({
40
+ paddingTop: "var(--ds-space-200, 16px)",
41
+ display: 'inline-block'
24
42
  });
43
+ const methodToDescriptionMessage = {
44
+ basic: initialStateViewMessages.searchDescriptionForBasicSearch,
45
+ jql: initialStateViewMessages.searchDescriptionForJQLSearch
46
+ };
25
47
  const jqlSupportDocumentLink = 'https://support.atlassian.com/jira-service-management-cloud/docs/use-advanced-search-with-jira-query-language-jql/';
26
- export const InitialStateView = () => {
27
- const {
28
- formatMessage
29
- } = useIntl();
30
- return jsx("div", {
31
- css: initialStateViewContainerStyles,
32
- "data-testid": "jlol-datasource-modal--initial-state-view"
33
- }, jsx("div", {
34
- css: svgAndTextsWrapperStyles
35
- }, jsx(InitialStateSVG, null), jsx("div", {
36
- css: searchTitleStyles
37
- }, formatMessage(initialStateViewMessages.searchTitle)), jsx("div", null, formatMessage(initialStateViewMessages.searchDescription)), jsx("a", {
38
- href: jqlSupportDocumentLink,
39
- target: "_blank"
40
- }, formatMessage(initialStateViewMessages.learnMoreLink))));
41
- };
48
+ export const InitialStateView = ({
49
+ searchMethod
50
+ }) => jsx("div", {
51
+ css: initialStateViewContainerStyles,
52
+ "data-testid": "jlol-datasource-modal--initial-state-view"
53
+ }, jsx("div", {
54
+ css: svgAndTextsWrapperStyles
55
+ }, jsx(InitialStateSVG, null), jsx("div", {
56
+ css: searchTitleStyles
57
+ }, jsx("div", {
58
+ css: betaTagStyles
59
+ }, jsx(Lozenge, {
60
+ appearance: "new"
61
+ }, jsx(FormattedMessage, initialStateViewMessages.beta))), jsx(FormattedMessage, initialStateViewMessages.searchTitle)), jsx("div", {
62
+ css: mainTextStyles
63
+ }, jsx(FormattedMessage, methodToDescriptionMessage[searchMethod])), searchMethod === 'jql' ? jsx("a", {
64
+ href: jqlSupportDocumentLink,
65
+ target: "_blank",
66
+ css: learnMoreLinkStyles
67
+ }, jsx(FormattedMessage, initialStateViewMessages.learnMoreLink)) : null));
@@ -5,14 +5,24 @@ export const initialStateViewMessages = defineMessages({
5
5
  description: 'The initial modal search state title that gives the user some idea about how to get information',
6
6
  defaultMessage: 'Search for Jira issues'
7
7
  },
8
- searchDescription: {
8
+ beta: {
9
+ id: 'linkDataSource.modal-initial-state.beta',
10
+ description: 'Beta lozenge',
11
+ defaultMessage: 'Beta'
12
+ },
13
+ searchDescriptionForBasicSearch: {
14
+ id: 'linkDataSource.modal-initial-state.searchDescription',
15
+ description: 'The initial modal search state helper message displayed under the search title when basic search mode is selected',
16
+ defaultMessage: 'Search by keyword for issues to insert.'
17
+ },
18
+ searchDescriptionForJQLSearch: {
9
19
  id: 'linkDataSource.modal-initial-state.searchDescription',
10
- description: 'The initial modal search state helper message displayed under the search title',
11
- defaultMessage: 'Start typing or use JQL to search.'
20
+ description: 'The initial modal search state helper message displayed under the search title when JQL search mode is selected',
21
+ defaultMessage: 'Use JQL (Jira Query Language) to search for issues.'
12
22
  },
13
23
  learnMoreLink: {
14
24
  id: 'linkDataSource.modal-initial-state.learnMoreLink',
15
25
  description: 'The link that displays under the search description to help people know more about JQL',
16
- defaultMessage: 'Learn more about searching with JQL'
26
+ defaultMessage: 'Learn how to search with JQL'
17
27
  }
18
28
  });