@atlaskit/link-datasource 0.19.1 → 0.20.0

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 (29) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/cjs/hooks/useDatasourceTableState.js +1 -1
  3. package/dist/cjs/ui/issue-like-table/column-picker/index.js +8 -4
  4. package/dist/cjs/ui/issue-like-table/column-picker/messages.js +15 -0
  5. package/dist/cjs/ui/issue-like-table/index.js +4 -3
  6. package/dist/cjs/ui/issue-like-table/styled.js +1 -1
  7. package/dist/cjs/ui/jira-issues-modal/modal/index.js +1 -1
  8. package/dist/cjs/version.json +1 -1
  9. package/dist/es2019/hooks/useDatasourceTableState.js +1 -1
  10. package/dist/es2019/ui/issue-like-table/column-picker/index.js +7 -3
  11. package/dist/es2019/ui/issue-like-table/column-picker/messages.js +8 -0
  12. package/dist/es2019/ui/issue-like-table/index.js +4 -3
  13. package/dist/es2019/ui/issue-like-table/styled.js +1 -1
  14. package/dist/es2019/ui/jira-issues-modal/modal/index.js +1 -1
  15. package/dist/es2019/version.json +1 -1
  16. package/dist/esm/hooks/useDatasourceTableState.js +1 -1
  17. package/dist/esm/ui/issue-like-table/column-picker/index.js +8 -4
  18. package/dist/esm/ui/issue-like-table/column-picker/messages.js +8 -0
  19. package/dist/esm/ui/issue-like-table/index.js +4 -3
  20. package/dist/esm/ui/issue-like-table/styled.js +1 -1
  21. package/dist/esm/ui/jira-issues-modal/modal/index.js +1 -1
  22. package/dist/esm/version.json +1 -1
  23. package/dist/types/ui/issue-like-table/column-picker/index.d.ts +1 -1
  24. package/dist/types/ui/issue-like-table/column-picker/messages.d.ts +7 -0
  25. package/dist/types/ui/issue-like-table/column-picker/types.d.ts +1 -0
  26. package/dist/types-ts4.5/ui/issue-like-table/column-picker/index.d.ts +1 -1
  27. package/dist/types-ts4.5/ui/issue-like-table/column-picker/messages.d.ts +7 -0
  28. package/dist/types-ts4.5/ui/issue-like-table/column-picker/types.d.ts +1 -0
  29. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @atlaskit/link-datasource
2
2
 
3
+ ## 0.20.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`0407e628d5b`](https://bitbucket.org/atlassian/atlassian-frontend/commits/0407e628d5b) - [ux] Fix some table bugs
8
+
3
9
  ## 0.19.1
4
10
 
5
11
  ### Patch Changes
@@ -87,7 +87,7 @@ var useDatasourceTableState = function useDatasourceTableState(datasourceId, par
87
87
  _context2.next = 5;
88
88
  return getDatasourceData(datasourceId, {
89
89
  parameters: parameters,
90
- pageSize: 10,
90
+ pageSize: 20,
91
91
  pageCursor: nextCursor,
92
92
  fields: fields
93
93
  });
@@ -11,16 +11,20 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
11
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
12
  var _react = require("react");
13
13
  var _react2 = require("@emotion/react");
14
+ var _reactIntlNext = require("react-intl-next");
14
15
  var _standardButton = _interopRequireDefault(require("@atlaskit/button/standard-button"));
15
16
  var _board = _interopRequireDefault(require("@atlaskit/icon/glyph/board"));
16
17
  var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/glyph/chevron-down"));
17
18
  var _select = require("@atlaskit/select");
19
+ var _messages = require("./messages");
18
20
  var _excluded = ["isOpen"];
19
21
  /** @jsx jsx */
20
22
  var ColumnPicker = function ColumnPicker(_ref) {
21
- var columns = _ref.columns,
23
+ var isDatasourceLoading = _ref.isDatasourceLoading,
24
+ columns = _ref.columns,
22
25
  selectedColumnKeys = _ref.selectedColumnKeys,
23
26
  onSelectedColumnKeysChange = _ref.onSelectedColumnKeysChange;
27
+ var intl = (0, _reactIntlNext.useIntl)();
24
28
  var _useState = (0, _react.useState)([]),
25
29
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
26
30
  allOptions = _useState2[0],
@@ -85,8 +89,7 @@ var ColumnPicker = function ColumnPicker(_ref) {
85
89
  closeMenuOnSelect: false,
86
90
  hideSelectedOptions: false,
87
91
  isMulti: true,
88
- placeholder: "Search for fields" // TODO Translate
89
- ,
92
+ placeholder: intl.formatMessage(_messages.columnPickerMessages.search),
90
93
  "aria-label": "Search for fields",
91
94
  onChange: handleChange,
92
95
  target: function target(_ref8) {
@@ -103,7 +106,8 @@ var ColumnPicker = function ColumnPicker(_ref) {
103
106
  })),
104
107
  spacing: "compact",
105
108
  appearance: "subtle",
106
- testId: "column-picker-trigger-button"
109
+ testId: "column-picker-trigger-button",
110
+ isDisabled: isDatasourceLoading
107
111
  }));
108
112
  }
109
113
  });
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.columnPickerMessages = void 0;
7
+ var _reactIntlNext = require("react-intl-next");
8
+ var columnPickerMessages = (0, _reactIntlNext.defineMessages)({
9
+ search: {
10
+ id: 'linkDataSource.column-picker.search',
11
+ description: 'Search bar message to look for more fields',
12
+ defaultMessage: 'Search for fields'
13
+ }
14
+ });
15
+ exports.columnPickerMessages = columnPickerMessages;
@@ -87,7 +87,7 @@ function getColumnWidth(key, type) {
87
87
  case 'string':
88
88
  return BASE_WIDTH * 22;
89
89
  default:
90
- undefined;
90
+ return undefined;
91
91
  }
92
92
  }
93
93
  var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
@@ -129,7 +129,7 @@ var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
129
129
  }).filter(Boolean);
130
130
  }, [orderedColumns, visibleColumnKeys]);
131
131
 
132
- // TODO seems like this component can't handle some combination of incremental data retreaval.
132
+ // TODO seems like this component can't handle some combination of incremental data retrieval.
133
133
  // If data comes first, then columns and then visibleColumnKeys it blows up,
134
134
  // or some other combination.
135
135
 
@@ -288,7 +288,7 @@ var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
288
288
  css: truncatedCellStyles
289
289
  }, content);
290
290
  };
291
- if (onVisibleColumnKeysChange) {
291
+ if (onVisibleColumnKeysChange && status !== 'loading') {
292
292
  return (0, _react2.jsx)(_draggableTableHeading.DraggableTableHeading, {
293
293
  tableId: tableId,
294
294
  key: key,
@@ -311,6 +311,7 @@ var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
311
311
  }), onVisibleColumnKeysChange && (0, _react2.jsx)("th", {
312
312
  css: columnPickerHeaderStyles
313
313
  }, (0, _react2.jsx)(_columnPicker.ColumnPicker, {
314
+ isDatasourceLoading: status === 'loading',
314
315
  columns: orderedColumns,
315
316
  selectedColumnKeys: visibleColumnKeys,
316
317
  onSelectedColumnKeysChange: onSelectedColumnKeysChange
@@ -8,7 +8,7 @@ exports.TableHeading = exports.Table = void 0;
8
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
9
  var _styled = _interopRequireDefault(require("@emotion/styled"));
10
10
  var _templateObject, _templateObject2;
11
- var Table = _styled.default.table(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n width: auto;\n"])));
11
+ var Table = _styled.default.table(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n width: 100%;\n"])));
12
12
  exports.Table = Table;
13
13
  var TableHeading = _styled.default.th(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n position: relative;\n padding-block: ", ";\n line-height: ", ";\n"])), "var(--ds-space-100, 8px)", "var(--ds-font-lineHeight-300, 24px)");
14
14
  exports.TableHeading = TableHeading;
@@ -268,7 +268,7 @@ var JiraIssuesConfigModal = function JiraIssuesConfigModal(props) {
268
268
  }, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _messages.modalMessages.cancelButtonText)), (0, _react2.jsx)(_standardButton.default, {
269
269
  appearance: "primary",
270
270
  onClick: onInsertPressed,
271
- isDisabled: !isParametersSet,
271
+ isDisabled: !isParametersSet || status === 'loading',
272
272
  testId: 'jira-jql-datasource-modal--insert-button'
273
273
  }, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _messages.modalMessages.insertIssuesButtonText))))));
274
274
  };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/link-datasource",
3
- "version": "0.19.1",
3
+ "version": "0.20.0",
4
4
  "sideEffects": false
5
5
  }
@@ -35,7 +35,7 @@ export const useDatasourceTableState = (datasourceId, parameters, fields) => {
35
35
  totalIssues
36
36
  } = await getDatasourceData(datasourceId, {
37
37
  parameters,
38
- pageSize: 10,
38
+ pageSize: 20,
39
39
  pageCursor: nextCursor,
40
40
  fields
41
41
  });
@@ -2,15 +2,19 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  /** @jsx jsx */
3
3
  import { useCallback, useEffect, useState } from 'react';
4
4
  import { jsx } from '@emotion/react';
5
+ import { useIntl } from 'react-intl-next';
5
6
  import Button from '@atlaskit/button/standard-button';
6
7
  import BoardIcon from '@atlaskit/icon/glyph/board';
7
8
  import ChevronDownIcon from '@atlaskit/icon/glyph/chevron-down';
8
9
  import { CheckboxOption, PopupSelect } from '@atlaskit/select';
10
+ import { columnPickerMessages } from './messages';
9
11
  export const ColumnPicker = ({
12
+ isDatasourceLoading,
10
13
  columns,
11
14
  selectedColumnKeys,
12
15
  onSelectedColumnKeysChange
13
16
  }) => {
17
+ const intl = useIntl();
14
18
  const [allOptions, setAllOptions] = useState([]);
15
19
  const mapColumnToOption = useCallback(({
16
20
  key,
@@ -62,8 +66,7 @@ export const ColumnPicker = ({
62
66
  closeMenuOnSelect: false,
63
67
  hideSelectedOptions: false,
64
68
  isMulti: true,
65
- placeholder: "Search for fields" // TODO Translate
66
- ,
69
+ placeholder: intl.formatMessage(columnPickerMessages.search),
67
70
  "aria-label": "Search for fields",
68
71
  onChange: handleChange,
69
72
  target: ({
@@ -80,7 +83,8 @@ export const ColumnPicker = ({
80
83
  })),
81
84
  spacing: "compact",
82
85
  appearance: "subtle",
83
- testId: "column-picker-trigger-button"
86
+ testId: "column-picker-trigger-button",
87
+ isDisabled: isDatasourceLoading
84
88
  }))
85
89
  });
86
90
  };
@@ -0,0 +1,8 @@
1
+ import { defineMessages } from 'react-intl-next';
2
+ export const columnPickerMessages = defineMessages({
3
+ search: {
4
+ id: 'linkDataSource.column-picker.search',
5
+ description: 'Search bar message to look for more fields',
6
+ defaultMessage: 'Search for fields'
7
+ }
8
+ });
@@ -79,7 +79,7 @@ function getColumnWidth(key, type) {
79
79
  case 'string':
80
80
  return BASE_WIDTH * 22;
81
81
  default:
82
- undefined;
82
+ return undefined;
83
83
  }
84
84
  }
85
85
  export const IssueLikeDataTableView = ({
@@ -103,7 +103,7 @@ export const IssueLikeDataTableView = ({
103
103
  key
104
104
  }) => visibleKey === key)).filter(Boolean), [orderedColumns, visibleColumnKeys]);
105
105
 
106
- // TODO seems like this component can't handle some combination of incremental data retreaval.
106
+ // TODO seems like this component can't handle some combination of incremental data retrieval.
107
107
  // If data comes first, then columns and then visibleColumnKeys it blows up,
108
108
  // or some other combination.
109
109
 
@@ -252,7 +252,7 @@ export const IssueLikeDataTableView = ({
252
252
  const TruncatedContent = () => jsx("div", {
253
253
  css: truncatedCellStyles
254
254
  }, content);
255
- if (onVisibleColumnKeysChange) {
255
+ if (onVisibleColumnKeysChange && status !== 'loading') {
256
256
  return jsx(DraggableTableHeading, {
257
257
  tableId: tableId,
258
258
  key: key,
@@ -275,6 +275,7 @@ export const IssueLikeDataTableView = ({
275
275
  }), onVisibleColumnKeysChange && jsx("th", {
276
276
  css: columnPickerHeaderStyles
277
277
  }, jsx(ColumnPicker, {
278
+ isDatasourceLoading: status === 'loading',
278
279
  columns: orderedColumns,
279
280
  selectedColumnKeys: visibleColumnKeys,
280
281
  onSelectedColumnKeysChange: onSelectedColumnKeysChange
@@ -1,6 +1,6 @@
1
1
  import styled from '@emotion/styled';
2
2
  export const Table = styled.table`
3
- width: auto;
3
+ width: 100%;
4
4
  `;
5
5
  export const TableHeading = styled.th`
6
6
  position: relative;
@@ -217,7 +217,7 @@ export const JiraIssuesConfigModal = props => {
217
217
  }, jsx(FormattedMessage, modalMessages.cancelButtonText)), jsx(Button, {
218
218
  appearance: "primary",
219
219
  onClick: onInsertPressed,
220
- isDisabled: !isParametersSet,
220
+ isDisabled: !isParametersSet || status === 'loading',
221
221
  testId: 'jira-jql-datasource-modal--insert-button'
222
222
  }, jsx(FormattedMessage, modalMessages.insertIssuesButtonText))))));
223
223
  };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/link-datasource",
3
- "version": "0.19.1",
3
+ "version": "0.20.0",
4
4
  "sideEffects": false
5
5
  }
@@ -80,7 +80,7 @@ export var useDatasourceTableState = function useDatasourceTableState(datasource
80
80
  _context2.next = 5;
81
81
  return getDatasourceData(datasourceId, {
82
82
  parameters: parameters,
83
- pageSize: 10,
83
+ pageSize: 20,
84
84
  pageCursor: nextCursor,
85
85
  fields: fields
86
86
  });
@@ -6,14 +6,18 @@ var _excluded = ["isOpen"];
6
6
  /** @jsx jsx */
7
7
  import { useCallback, useEffect, useState } from 'react';
8
8
  import { jsx } from '@emotion/react';
9
+ import { useIntl } from 'react-intl-next';
9
10
  import Button from '@atlaskit/button/standard-button';
10
11
  import BoardIcon from '@atlaskit/icon/glyph/board';
11
12
  import ChevronDownIcon from '@atlaskit/icon/glyph/chevron-down';
12
13
  import { CheckboxOption, PopupSelect } from '@atlaskit/select';
14
+ import { columnPickerMessages } from './messages';
13
15
  export var ColumnPicker = function ColumnPicker(_ref) {
14
- var columns = _ref.columns,
16
+ var isDatasourceLoading = _ref.isDatasourceLoading,
17
+ columns = _ref.columns,
15
18
  selectedColumnKeys = _ref.selectedColumnKeys,
16
19
  onSelectedColumnKeysChange = _ref.onSelectedColumnKeysChange;
20
+ var intl = useIntl();
17
21
  var _useState = useState([]),
18
22
  _useState2 = _slicedToArray(_useState, 2),
19
23
  allOptions = _useState2[0],
@@ -78,8 +82,7 @@ export var ColumnPicker = function ColumnPicker(_ref) {
78
82
  closeMenuOnSelect: false,
79
83
  hideSelectedOptions: false,
80
84
  isMulti: true,
81
- placeholder: "Search for fields" // TODO Translate
82
- ,
85
+ placeholder: intl.formatMessage(columnPickerMessages.search),
83
86
  "aria-label": "Search for fields",
84
87
  onChange: handleChange,
85
88
  target: function target(_ref8) {
@@ -96,7 +99,8 @@ export var ColumnPicker = function ColumnPicker(_ref) {
96
99
  })),
97
100
  spacing: "compact",
98
101
  appearance: "subtle",
99
- testId: "column-picker-trigger-button"
102
+ testId: "column-picker-trigger-button",
103
+ isDisabled: isDatasourceLoading
100
104
  }));
101
105
  }
102
106
  });
@@ -0,0 +1,8 @@
1
+ import { defineMessages } from 'react-intl-next';
2
+ export var columnPickerMessages = defineMessages({
3
+ search: {
4
+ id: 'linkDataSource.column-picker.search',
5
+ description: 'Search bar message to look for more fields',
6
+ defaultMessage: 'Search for fields'
7
+ }
8
+ });
@@ -81,7 +81,7 @@ function getColumnWidth(key, type) {
81
81
  case 'string':
82
82
  return BASE_WIDTH * 22;
83
83
  default:
84
- undefined;
84
+ return undefined;
85
85
  }
86
86
  }
87
87
  export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
@@ -123,7 +123,7 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
123
123
  }).filter(Boolean);
124
124
  }, [orderedColumns, visibleColumnKeys]);
125
125
 
126
- // TODO seems like this component can't handle some combination of incremental data retreaval.
126
+ // TODO seems like this component can't handle some combination of incremental data retrieval.
127
127
  // If data comes first, then columns and then visibleColumnKeys it blows up,
128
128
  // or some other combination.
129
129
 
@@ -282,7 +282,7 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
282
282
  css: truncatedCellStyles
283
283
  }, content);
284
284
  };
285
- if (onVisibleColumnKeysChange) {
285
+ if (onVisibleColumnKeysChange && status !== 'loading') {
286
286
  return jsx(DraggableTableHeading, {
287
287
  tableId: tableId,
288
288
  key: key,
@@ -305,6 +305,7 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
305
305
  }), onVisibleColumnKeysChange && jsx("th", {
306
306
  css: columnPickerHeaderStyles
307
307
  }, jsx(ColumnPicker, {
308
+ isDatasourceLoading: status === 'loading',
308
309
  columns: orderedColumns,
309
310
  selectedColumnKeys: visibleColumnKeys,
310
311
  onSelectedColumnKeysChange: onSelectedColumnKeysChange
@@ -1,5 +1,5 @@
1
1
  import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
2
2
  var _templateObject, _templateObject2;
3
3
  import styled from '@emotion/styled';
4
- export var Table = styled.table(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: auto;\n"])));
4
+ export var Table = styled.table(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: 100%;\n"])));
5
5
  export var TableHeading = styled.th(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n position: relative;\n padding-block: ", ";\n line-height: ", ";\n"])), "var(--ds-space-100, 8px)", "var(--ds-font-lineHeight-300, 24px)");
@@ -257,7 +257,7 @@ export var JiraIssuesConfigModal = function JiraIssuesConfigModal(props) {
257
257
  }, jsx(FormattedMessage, modalMessages.cancelButtonText)), jsx(Button, {
258
258
  appearance: "primary",
259
259
  onClick: onInsertPressed,
260
- isDisabled: !isParametersSet,
260
+ isDisabled: !isParametersSet || status === 'loading',
261
261
  testId: 'jira-jql-datasource-modal--insert-button'
262
262
  }, jsx(FormattedMessage, modalMessages.insertIssuesButtonText))))));
263
263
  };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/link-datasource",
3
- "version": "0.19.1",
3
+ "version": "0.20.0",
4
4
  "sideEffects": false
5
5
  }
@@ -1,3 +1,3 @@
1
1
  import { jsx } from '@emotion/react';
2
2
  import { ColumnPickerProps } from './types';
3
- export declare const ColumnPicker: ({ columns, selectedColumnKeys, onSelectedColumnKeysChange, }: ColumnPickerProps) => jsx.JSX.Element;
3
+ export declare const ColumnPicker: ({ isDatasourceLoading, columns, selectedColumnKeys, onSelectedColumnKeysChange, }: ColumnPickerProps) => jsx.JSX.Element;
@@ -0,0 +1,7 @@
1
+ export declare const columnPickerMessages: {
2
+ search: {
3
+ id: string;
4
+ description: string;
5
+ defaultMessage: string;
6
+ };
7
+ };
@@ -1,5 +1,6 @@
1
1
  import { DatasourceResponseSchemaProperty } from '@atlaskit/linking-types';
2
2
  export type ColumnPickerProps = {
3
+ isDatasourceLoading: boolean;
3
4
  columns: DatasourceResponseSchemaProperty[];
4
5
  selectedColumnKeys: string[];
5
6
  onSelectedColumnKeysChange: (selectedColumnKeys: string[]) => void;
@@ -1,3 +1,3 @@
1
1
  import { jsx } from '@emotion/react';
2
2
  import { ColumnPickerProps } from './types';
3
- export declare const ColumnPicker: ({ columns, selectedColumnKeys, onSelectedColumnKeysChange, }: ColumnPickerProps) => jsx.JSX.Element;
3
+ export declare const ColumnPicker: ({ isDatasourceLoading, columns, selectedColumnKeys, onSelectedColumnKeysChange, }: ColumnPickerProps) => jsx.JSX.Element;
@@ -0,0 +1,7 @@
1
+ export declare const columnPickerMessages: {
2
+ search: {
3
+ id: string;
4
+ description: string;
5
+ defaultMessage: string;
6
+ };
7
+ };
@@ -1,5 +1,6 @@
1
1
  import { DatasourceResponseSchemaProperty } from '@atlaskit/linking-types';
2
2
  export type ColumnPickerProps = {
3
+ isDatasourceLoading: boolean;
3
4
  columns: DatasourceResponseSchemaProperty[];
4
5
  selectedColumnKeys: string[];
5
6
  onSelectedColumnKeysChange: (selectedColumnKeys: string[]) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/link-datasource",
3
- "version": "0.19.1",
3
+ "version": "0.20.0",
4
4
  "description": "UI Components to support linking platform dataset feature",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"