@atlaskit/link-datasource 0.32.0 → 0.33.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @atlaskit/link-datasource
2
2
 
3
+ ## 0.33.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`3c77a5b1377`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3c77a5b1377) - Change behaviour of Assets Config Modal schema select to fetch on mount
8
+
9
+ ## 0.33.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [`6ee82691c4e`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6ee82691c4e) - [ux] Changed shimmer on empty state view to only occur when loading data initially
14
+
3
15
  ## 0.32.0
4
16
 
5
17
  ### Minor Changes
@@ -4,27 +4,44 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.SEARCH_DEBOUNCE_MS = exports.AssetsObjectSchemaSelect = void 0;
7
+ exports.selectInAModalStyleFixProps = exports.SEARCH_DEBOUNCE_MS = exports.AssetsObjectSchemaSelect = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
11
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
- var _react = require("react");
14
- var _react2 = require("@emotion/react");
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+ var _react = require("@emotion/react");
15
14
  var _debouncePromise = _interopRequireDefault(require("debounce-promise"));
16
15
  var _reactIntlNext = require("react-intl-next");
17
16
  var _form = require("@atlaskit/form");
18
17
  var _select = require("@atlaskit/select");
18
+ var _constants = require("@atlaskit/theme/constants");
19
19
  var _useObjectSchemas2 = require("../../../../hooks/useObjectSchemas");
20
20
  var _types = require("../../../../types/assets/types");
21
21
  var _styled = require("../styled");
22
22
  var _messages = require("./messages");
23
23
  var _utils = require("./utils");
24
24
  var _excluded = ["onChange", "onFocus"];
25
- /** @jsx jsx */
25
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
26
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } /** @jsx jsx */
26
27
  var SEARCH_DEBOUNCE_MS = 350;
28
+
29
+ /**
30
+ * Rendering a `<Select>` in a `<Modal>` results in the select options getting cut off by the bottom of the modal and
31
+ * scrolling. This is a work-around for that, see https://atlassian.slack.com/archives/CFJ9DU39U/p1623179496484100
32
+ */
27
33
  exports.SEARCH_DEBOUNCE_MS = SEARCH_DEBOUNCE_MS;
34
+ var selectInAModalStyleFixProps = {
35
+ styles: {
36
+ menuPortal: function menuPortal(base) {
37
+ return _objectSpread(_objectSpread({}, base), {}, {
38
+ zIndex: _constants.layers.modal()
39
+ });
40
+ }
41
+ },
42
+ menuPortalTarget: document.body
43
+ };
44
+ exports.selectInAModalStyleFixProps = selectInAModalStyleFixProps;
28
45
  var AssetsObjectSchemaSelect = function AssetsObjectSchemaSelect(_ref) {
29
46
  var value = _ref.value,
30
47
  workspaceId = _ref.workspaceId,
@@ -35,10 +52,6 @@ var AssetsObjectSchemaSelect = function AssetsObjectSchemaSelect(_ref) {
35
52
  var _useObjectSchemas = (0, _useObjectSchemas2.useObjectSchemas)(workspaceId),
36
53
  fetchObjectSchemas = _useObjectSchemas.fetchObjectSchemas,
37
54
  objectSchemasLoading = _useObjectSchemas.objectSchemasLoading;
38
- var _useState = (0, _react.useState)(undefined),
39
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
40
- defaultOptions = _useState2[0],
41
- setDefaultOptions = _useState2[1];
42
55
  var selectedObjectSchema = value ? (0, _utils.objectSchemaToSelectOption)(value) : undefined;
43
56
  var loadOptions = /*#__PURE__*/function () {
44
57
  var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(inputValue) {
@@ -71,7 +84,7 @@ var AssetsObjectSchemaSelect = function AssetsObjectSchemaSelect(_ref) {
71
84
  }
72
85
  return undefined;
73
86
  };
74
- return (0, _react2.jsx)(_styled.FieldContainer, null, (0, _react2.jsx)(_form.Field, {
87
+ return (0, _react.jsx)(_styled.FieldContainer, null, (0, _react.jsx)(_form.Field, {
75
88
  name: _types.objectSchemaKey,
76
89
  defaultValue: selectedObjectSchema,
77
90
  validate: function validate(value) {
@@ -82,22 +95,18 @@ var AssetsObjectSchemaSelect = function AssetsObjectSchemaSelect(_ref) {
82
95
  _onChange = _ref3$fieldProps.onChange,
83
96
  onFocus = _ref3$fieldProps.onFocus,
84
97
  restFieldProps = (0, _objectWithoutProperties2.default)(_ref3$fieldProps, _excluded);
85
- return (0, _react2.jsx)(_select.AsyncSelect, (0, _extends2.default)({
98
+ return (0, _react.jsx)(_select.AsyncSelect, (0, _extends2.default)({
86
99
  classNamePrefix: classNamePrefix,
87
100
  isLoading: objectSchemasLoading,
88
- defaultOptions: defaultOptions || [],
101
+ defaultOptions: true // setting to true causes the loadOptions to be called on mount
102
+ ,
89
103
  isSearchable: true,
90
104
  loadOptions: debouncedLoadOptions,
91
105
  placeholder: formatMessage(_messages.objectSchemaSelectMessages.placeholder),
92
106
  onChange: function onChange(newOption) {
93
107
  return newOption && _onChange(newOption);
94
- },
95
- onFocus: function onFocus() {
96
- if (!defaultOptions) {
97
- loadOptions('').then(setDefaultOptions);
98
- }
99
108
  }
100
- }, restFieldProps));
109
+ }, selectInAModalStyleFixProps, restFieldProps));
101
110
  }));
102
111
  };
103
112
  exports.AssetsObjectSchemaSelect = AssetsObjectSchemaSelect;
@@ -72,7 +72,8 @@ var DatasourceTableView = function DatasourceTableView(_ref) {
72
72
  scrollableContainerHeight: 590
73
73
  }) : (0, _react2.jsx)(_emptyState.default, {
74
74
  testId: "datasource-table-view-skeleton",
75
- isCompact: true
75
+ isCompact: true,
76
+ isLoading: !isDataReady || status === 'loading'
76
77
  }), (0, _react2.jsx)(_tableFooter.TableFooter, {
77
78
  issueCount: isDataReady ? totalCount : undefined,
78
79
  onRefresh: reset,
@@ -65,7 +65,7 @@ var cellStyles = (0, _react.css)({
65
65
  paddingRight: "var(--ds-space-100, 8px)"
66
66
  }
67
67
  });
68
- var renderItem = function renderItem(_ref, _ref2) {
68
+ var renderItem = function renderItem(_ref, _ref2, isShimmering) {
69
69
  var key = _ref.key,
70
70
  width = _ref.width;
71
71
  var priority = _ref2.priority,
@@ -75,9 +75,11 @@ var renderItem = function renderItem(_ref, _ref2) {
75
75
  switch (key) {
76
76
  case 'assignee':
77
77
  return (0, _react.jsx)(_user.default, null, (0, _react.jsx)(_linkingCommon.Skeleton, {
78
- width: width,
78
+ borderRadius: 8,
79
+ testId: "empty-state-skeleton",
79
80
  height: 13,
80
- borderRadius: 8
81
+ isShimmering: isShimmering,
82
+ width: width
81
83
  }));
82
84
  case 'priority':
83
85
  return (0, _react.jsx)(_priority.default, {
@@ -90,27 +92,35 @@ var renderItem = function renderItem(_ref, _ref2) {
90
92
  case 'summary':
91
93
  return (0, _react.jsx)(_linkingCommon.Skeleton, {
92
94
  appearance: "blue",
93
- width: summaryWidth,
94
95
  borderRadius: 10,
95
- height: 13
96
+ testId: "empty-state-skeleton",
97
+ height: 13,
98
+ isShimmering: isShimmering,
99
+ width: summaryWidth
96
100
  });
97
101
  case 'status':
98
102
  return (0, _react.jsx)(_linkingCommon.Skeleton, {
99
103
  appearance: "blue",
100
- width: statusWidth,
104
+ borderRadius: 3,
105
+ testId: "empty-state-skeleton",
101
106
  height: 16,
102
- borderRadius: 3
107
+ isShimmering: isShimmering,
108
+ width: statusWidth
103
109
  });
104
110
  default:
105
111
  return (0, _react.jsx)(_linkingCommon.Skeleton, {
106
- width: width,
112
+ borderRadius: 8,
113
+ testId: "empty-state-skeleton",
107
114
  height: 13,
108
- borderRadius: 8
115
+ isShimmering: isShimmering,
116
+ width: width
109
117
  });
110
118
  }
111
119
  };
112
120
  var _default = function _default(_ref3) {
113
121
  var isCompact = _ref3.isCompact,
122
+ _ref3$isLoading = _ref3.isLoading,
123
+ isLoading = _ref3$isLoading === void 0 ? false : _ref3$isLoading,
114
124
  testId = _ref3.testId;
115
125
  var columnsToRender = isCompact ? baseColumns.slice(0, 6) : baseColumns;
116
126
  return (0, _react.jsx)("table", {
@@ -125,9 +135,11 @@ var _default = function _default(_ref3) {
125
135
  }
126
136
  }, (0, _react.jsx)(_linkingCommon.Skeleton, {
127
137
  appearance: "darkGray",
128
- width: width,
138
+ borderRadius: 8,
139
+ testId: "empty-state-skeleton",
140
+ isShimmering: isLoading,
129
141
  height: 13,
130
- borderRadius: 8
142
+ width: width
131
143
  }));
132
144
  }))), (0, _react.jsx)("tbody", {
133
145
  css: tableBodyStyles
@@ -138,7 +150,7 @@ var _default = function _default(_ref3) {
138
150
  return (0, _react.jsx)("td", {
139
151
  css: cellStyles,
140
152
  key: column.key
141
- }, renderItem(column, row));
153
+ }, renderItem(column, row, isLoading));
142
154
  }));
143
155
  })));
144
156
  };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/link-datasource",
3
- "version": "0.32.0",
3
+ "version": "0.33.1",
4
4
  "sideEffects": false
5
5
  }
@@ -1,17 +1,32 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  /** @jsx jsx */
3
- import { useState } from 'react';
3
+
4
4
  import { jsx } from '@emotion/react';
5
5
  import debounce from 'debounce-promise';
6
6
  import { useIntl } from 'react-intl-next';
7
7
  import { Field } from '@atlaskit/form';
8
8
  import { AsyncSelect } from '@atlaskit/select';
9
+ import { layers } from '@atlaskit/theme/constants';
9
10
  import { useObjectSchemas } from '../../../../hooks/useObjectSchemas';
10
11
  import { objectSchemaKey } from '../../../../types/assets/types';
11
12
  import { FieldContainer } from '../styled';
12
13
  import { objectSchemaSelectMessages } from './messages';
13
14
  import { objectSchemaToSelectOption } from './utils';
14
15
  export const SEARCH_DEBOUNCE_MS = 350;
16
+
17
+ /**
18
+ * Rendering a `<Select>` in a `<Modal>` results in the select options getting cut off by the bottom of the modal and
19
+ * scrolling. This is a work-around for that, see https://atlassian.slack.com/archives/CFJ9DU39U/p1623179496484100
20
+ */
21
+ export const selectInAModalStyleFixProps = {
22
+ styles: {
23
+ menuPortal: base => ({
24
+ ...base,
25
+ zIndex: layers.modal()
26
+ })
27
+ },
28
+ menuPortalTarget: document.body
29
+ };
15
30
  export const AssetsObjectSchemaSelect = ({
16
31
  value,
17
32
  workspaceId,
@@ -24,7 +39,6 @@ export const AssetsObjectSchemaSelect = ({
24
39
  fetchObjectSchemas,
25
40
  objectSchemasLoading
26
41
  } = useObjectSchemas(workspaceId);
27
- const [defaultOptions, setDefaultOptions] = useState(undefined);
28
42
  const selectedObjectSchema = value ? objectSchemaToSelectOption(value) : undefined;
29
43
  const loadOptions = async inputValue => {
30
44
  const objectSchemas = await fetchObjectSchemas(inputValue);
@@ -51,15 +65,11 @@ export const AssetsObjectSchemaSelect = ({
51
65
  }) => jsx(AsyncSelect, _extends({
52
66
  classNamePrefix: classNamePrefix,
53
67
  isLoading: objectSchemasLoading,
54
- defaultOptions: defaultOptions || [],
68
+ defaultOptions: true // setting to true causes the loadOptions to be called on mount
69
+ ,
55
70
  isSearchable: true,
56
71
  loadOptions: debouncedLoadOptions,
57
72
  placeholder: formatMessage(objectSchemaSelectMessages.placeholder),
58
- onChange: newOption => newOption && onChange(newOption),
59
- onFocus: () => {
60
- if (!defaultOptions) {
61
- loadOptions('').then(setDefaultOptions);
62
- }
63
- }
64
- }, restFieldProps))));
73
+ onChange: newOption => newOption && onChange(newOption)
74
+ }, selectInAModalStyleFixProps, restFieldProps))));
65
75
  };
@@ -66,7 +66,8 @@ export const DatasourceTableView = ({
66
66
  scrollableContainerHeight: 590
67
67
  }) : jsx(EmptyState, {
68
68
  testId: "datasource-table-view-skeleton",
69
- isCompact: true
69
+ isCompact: true,
70
+ isLoading: !isDataReady || status === 'loading'
70
71
  }), jsx(TableFooter, {
71
72
  issueCount: isDataReady ? totalCount : undefined,
72
73
  onRefresh: reset,
@@ -63,13 +63,15 @@ const renderItem = ({
63
63
  type,
64
64
  summaryWidth,
65
65
  statusWidth
66
- }) => {
66
+ }, isShimmering) => {
67
67
  switch (key) {
68
68
  case 'assignee':
69
69
  return jsx(UserType, null, jsx(Skeleton, {
70
- width: width,
70
+ borderRadius: 8,
71
+ testId: "empty-state-skeleton",
71
72
  height: 13,
72
- borderRadius: 8
73
+ isShimmering: isShimmering,
74
+ width: width
73
75
  }));
74
76
  case 'priority':
75
77
  return jsx(Priority, {
@@ -82,27 +84,34 @@ const renderItem = ({
82
84
  case 'summary':
83
85
  return jsx(Skeleton, {
84
86
  appearance: "blue",
85
- width: summaryWidth,
86
87
  borderRadius: 10,
87
- height: 13
88
+ testId: "empty-state-skeleton",
89
+ height: 13,
90
+ isShimmering: isShimmering,
91
+ width: summaryWidth
88
92
  });
89
93
  case 'status':
90
94
  return jsx(Skeleton, {
91
95
  appearance: "blue",
92
- width: statusWidth,
96
+ borderRadius: 3,
97
+ testId: "empty-state-skeleton",
93
98
  height: 16,
94
- borderRadius: 3
99
+ isShimmering: isShimmering,
100
+ width: statusWidth
95
101
  });
96
102
  default:
97
103
  return jsx(Skeleton, {
98
- width: width,
104
+ borderRadius: 8,
105
+ testId: "empty-state-skeleton",
99
106
  height: 13,
100
- borderRadius: 8
107
+ isShimmering: isShimmering,
108
+ width: width
101
109
  });
102
110
  }
103
111
  };
104
112
  export default (({
105
113
  isCompact,
114
+ isLoading = false,
106
115
  testId
107
116
  }) => {
108
117
  const columnsToRender = isCompact ? baseColumns.slice(0, 6) : baseColumns;
@@ -118,9 +127,11 @@ export default (({
118
127
  }
119
128
  }, jsx(Skeleton, {
120
129
  appearance: "darkGray",
121
- width: width,
130
+ borderRadius: 8,
131
+ testId: "empty-state-skeleton",
132
+ isShimmering: isLoading,
122
133
  height: 13,
123
- borderRadius: 8
134
+ width: width
124
135
  }))))), jsx("tbody", {
125
136
  css: tableBodyStyles
126
137
  }, rows.map(row => jsx("tr", {
@@ -128,5 +139,5 @@ export default (({
128
139
  }, columnsToRender.map(column => jsx("td", {
129
140
  css: cellStyles,
130
141
  key: column.key
131
- }, renderItem(column, row)))))));
142
+ }, renderItem(column, row, isLoading)))))));
132
143
  });
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/link-datasource",
3
- "version": "0.32.0",
3
+ "version": "0.33.1",
4
4
  "sideEffects": false
5
5
  }
@@ -1,22 +1,40 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
3
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
4
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
5
  var _excluded = ["onChange", "onFocus"];
6
6
  import _regeneratorRuntime from "@babel/runtime/regenerator";
7
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
8
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
9
  /** @jsx jsx */
8
- import { useState } from 'react';
10
+
9
11
  import { jsx } from '@emotion/react';
10
12
  import debounce from 'debounce-promise';
11
13
  import { useIntl } from 'react-intl-next';
12
14
  import { Field } from '@atlaskit/form';
13
15
  import { AsyncSelect } from '@atlaskit/select';
16
+ import { layers } from '@atlaskit/theme/constants';
14
17
  import { useObjectSchemas } from '../../../../hooks/useObjectSchemas';
15
18
  import { objectSchemaKey } from '../../../../types/assets/types';
16
19
  import { FieldContainer } from '../styled';
17
20
  import { objectSchemaSelectMessages } from './messages';
18
21
  import { objectSchemaToSelectOption } from './utils';
19
22
  export var SEARCH_DEBOUNCE_MS = 350;
23
+
24
+ /**
25
+ * Rendering a `<Select>` in a `<Modal>` results in the select options getting cut off by the bottom of the modal and
26
+ * scrolling. This is a work-around for that, see https://atlassian.slack.com/archives/CFJ9DU39U/p1623179496484100
27
+ */
28
+ export var selectInAModalStyleFixProps = {
29
+ styles: {
30
+ menuPortal: function menuPortal(base) {
31
+ return _objectSpread(_objectSpread({}, base), {}, {
32
+ zIndex: layers.modal()
33
+ });
34
+ }
35
+ },
36
+ menuPortalTarget: document.body
37
+ };
20
38
  export var AssetsObjectSchemaSelect = function AssetsObjectSchemaSelect(_ref) {
21
39
  var value = _ref.value,
22
40
  workspaceId = _ref.workspaceId,
@@ -27,10 +45,6 @@ export var AssetsObjectSchemaSelect = function AssetsObjectSchemaSelect(_ref) {
27
45
  var _useObjectSchemas = useObjectSchemas(workspaceId),
28
46
  fetchObjectSchemas = _useObjectSchemas.fetchObjectSchemas,
29
47
  objectSchemasLoading = _useObjectSchemas.objectSchemasLoading;
30
- var _useState = useState(undefined),
31
- _useState2 = _slicedToArray(_useState, 2),
32
- defaultOptions = _useState2[0],
33
- setDefaultOptions = _useState2[1];
34
48
  var selectedObjectSchema = value ? objectSchemaToSelectOption(value) : undefined;
35
49
  var loadOptions = /*#__PURE__*/function () {
36
50
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(inputValue) {
@@ -77,18 +91,14 @@ export var AssetsObjectSchemaSelect = function AssetsObjectSchemaSelect(_ref) {
77
91
  return jsx(AsyncSelect, _extends({
78
92
  classNamePrefix: classNamePrefix,
79
93
  isLoading: objectSchemasLoading,
80
- defaultOptions: defaultOptions || [],
94
+ defaultOptions: true // setting to true causes the loadOptions to be called on mount
95
+ ,
81
96
  isSearchable: true,
82
97
  loadOptions: debouncedLoadOptions,
83
98
  placeholder: formatMessage(objectSchemaSelectMessages.placeholder),
84
99
  onChange: function onChange(newOption) {
85
100
  return newOption && _onChange(newOption);
86
- },
87
- onFocus: function onFocus() {
88
- if (!defaultOptions) {
89
- loadOptions('').then(setDefaultOptions);
90
- }
91
101
  }
92
- }, restFieldProps));
102
+ }, selectInAModalStyleFixProps, restFieldProps));
93
103
  }));
94
104
  };
@@ -64,7 +64,8 @@ export var DatasourceTableView = function DatasourceTableView(_ref) {
64
64
  scrollableContainerHeight: 590
65
65
  }) : jsx(EmptyState, {
66
66
  testId: "datasource-table-view-skeleton",
67
- isCompact: true
67
+ isCompact: true,
68
+ isLoading: !isDataReady || status === 'loading'
68
69
  }), jsx(TableFooter, {
69
70
  issueCount: isDataReady ? totalCount : undefined,
70
71
  onRefresh: reset,
@@ -57,7 +57,7 @@ var cellStyles = css({
57
57
  paddingRight: "var(--ds-space-100, 8px)"
58
58
  }
59
59
  });
60
- var renderItem = function renderItem(_ref, _ref2) {
60
+ var renderItem = function renderItem(_ref, _ref2, isShimmering) {
61
61
  var key = _ref.key,
62
62
  width = _ref.width;
63
63
  var priority = _ref2.priority,
@@ -67,9 +67,11 @@ var renderItem = function renderItem(_ref, _ref2) {
67
67
  switch (key) {
68
68
  case 'assignee':
69
69
  return jsx(UserType, null, jsx(Skeleton, {
70
- width: width,
70
+ borderRadius: 8,
71
+ testId: "empty-state-skeleton",
71
72
  height: 13,
72
- borderRadius: 8
73
+ isShimmering: isShimmering,
74
+ width: width
73
75
  }));
74
76
  case 'priority':
75
77
  return jsx(Priority, {
@@ -82,27 +84,35 @@ var renderItem = function renderItem(_ref, _ref2) {
82
84
  case 'summary':
83
85
  return jsx(Skeleton, {
84
86
  appearance: "blue",
85
- width: summaryWidth,
86
87
  borderRadius: 10,
87
- height: 13
88
+ testId: "empty-state-skeleton",
89
+ height: 13,
90
+ isShimmering: isShimmering,
91
+ width: summaryWidth
88
92
  });
89
93
  case 'status':
90
94
  return jsx(Skeleton, {
91
95
  appearance: "blue",
92
- width: statusWidth,
96
+ borderRadius: 3,
97
+ testId: "empty-state-skeleton",
93
98
  height: 16,
94
- borderRadius: 3
99
+ isShimmering: isShimmering,
100
+ width: statusWidth
95
101
  });
96
102
  default:
97
103
  return jsx(Skeleton, {
98
- width: width,
104
+ borderRadius: 8,
105
+ testId: "empty-state-skeleton",
99
106
  height: 13,
100
- borderRadius: 8
107
+ isShimmering: isShimmering,
108
+ width: width
101
109
  });
102
110
  }
103
111
  };
104
112
  export default (function (_ref3) {
105
113
  var isCompact = _ref3.isCompact,
114
+ _ref3$isLoading = _ref3.isLoading,
115
+ isLoading = _ref3$isLoading === void 0 ? false : _ref3$isLoading,
106
116
  testId = _ref3.testId;
107
117
  var columnsToRender = isCompact ? baseColumns.slice(0, 6) : baseColumns;
108
118
  return jsx("table", {
@@ -117,9 +127,11 @@ export default (function (_ref3) {
117
127
  }
118
128
  }, jsx(Skeleton, {
119
129
  appearance: "darkGray",
120
- width: width,
130
+ borderRadius: 8,
131
+ testId: "empty-state-skeleton",
132
+ isShimmering: isLoading,
121
133
  height: 13,
122
- borderRadius: 8
134
+ width: width
123
135
  }));
124
136
  }))), jsx("tbody", {
125
137
  css: tableBodyStyles
@@ -130,7 +142,7 @@ export default (function (_ref3) {
130
142
  return jsx("td", {
131
143
  css: cellStyles,
132
144
  key: column.key
133
- }, renderItem(column, row));
145
+ }, renderItem(column, row, isLoading));
134
146
  }));
135
147
  })));
136
148
  });
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/link-datasource",
3
- "version": "0.32.0",
3
+ "version": "0.33.1",
4
4
  "sideEffects": false
5
5
  }
@@ -1,3 +1,4 @@
1
+ /** @jsx jsx */
1
2
  import { jsx } from '@emotion/react';
2
3
  import { ObjectSchema } from '../../../../types/assets/types';
3
4
  type AssetsObjectSchemaSelectProps = {
@@ -6,5 +7,15 @@ type AssetsObjectSchemaSelectProps = {
6
7
  classNamePrefix?: string;
7
8
  };
8
9
  export declare const SEARCH_DEBOUNCE_MS = 350;
10
+ /**
11
+ * Rendering a `<Select>` in a `<Modal>` results in the select options getting cut off by the bottom of the modal and
12
+ * scrolling. This is a work-around for that, see https://atlassian.slack.com/archives/CFJ9DU39U/p1623179496484100
13
+ */
14
+ export declare const selectInAModalStyleFixProps: {
15
+ styles: {
16
+ menuPortal: (base: any) => any;
17
+ };
18
+ menuPortalTarget: HTMLElement;
19
+ };
9
20
  export declare const AssetsObjectSchemaSelect: ({ value, workspaceId, classNamePrefix, }: AssetsObjectSchemaSelectProps) => jsx.JSX.Element;
10
21
  export {};
@@ -2,7 +2,8 @@
2
2
  import { jsx } from '@emotion/react';
3
3
  export interface Props {
4
4
  isCompact?: boolean;
5
+ isLoading?: boolean;
5
6
  testId?: string;
6
7
  }
7
- declare const _default: ({ isCompact, testId }: Props) => jsx.JSX.Element;
8
+ declare const _default: ({ isCompact, isLoading, testId }: Props) => jsx.JSX.Element;
8
9
  export default _default;
@@ -13,4 +13,4 @@ export interface RowCellType {
13
13
  maxWidth?: number;
14
14
  }
15
15
  export declare const IssueLikeDataTableView: ({ testId, onNextPage, onLoadDatasourceDetails, items, columns, renderItem, visibleColumnKeys, onVisibleColumnKeysChange, status, hasNextPage, scrollableContainerHeight, }: IssueLikeDataTableViewProps) => jsx.JSX.Element;
16
- export declare const EmptyState: ({ isCompact, testId }: import("./empty-state").Props) => jsx.JSX.Element;
16
+ export declare const EmptyState: ({ isCompact, isLoading, testId }: import("./empty-state").Props) => jsx.JSX.Element;
@@ -1,3 +1,4 @@
1
+ /** @jsx jsx */
1
2
  import { jsx } from '@emotion/react';
2
3
  import { ObjectSchema } from '../../../../types/assets/types';
3
4
  type AssetsObjectSchemaSelectProps = {
@@ -6,5 +7,15 @@ type AssetsObjectSchemaSelectProps = {
6
7
  classNamePrefix?: string;
7
8
  };
8
9
  export declare const SEARCH_DEBOUNCE_MS = 350;
10
+ /**
11
+ * Rendering a `<Select>` in a `<Modal>` results in the select options getting cut off by the bottom of the modal and
12
+ * scrolling. This is a work-around for that, see https://atlassian.slack.com/archives/CFJ9DU39U/p1623179496484100
13
+ */
14
+ export declare const selectInAModalStyleFixProps: {
15
+ styles: {
16
+ menuPortal: (base: any) => any;
17
+ };
18
+ menuPortalTarget: HTMLElement;
19
+ };
9
20
  export declare const AssetsObjectSchemaSelect: ({ value, workspaceId, classNamePrefix, }: AssetsObjectSchemaSelectProps) => jsx.JSX.Element;
10
21
  export {};
@@ -2,7 +2,8 @@
2
2
  import { jsx } from '@emotion/react';
3
3
  export interface Props {
4
4
  isCompact?: boolean;
5
+ isLoading?: boolean;
5
6
  testId?: string;
6
7
  }
7
- declare const _default: ({ isCompact, testId }: Props) => jsx.JSX.Element;
8
+ declare const _default: ({ isCompact, isLoading, testId }: Props) => jsx.JSX.Element;
8
9
  export default _default;
@@ -13,4 +13,4 @@ export interface RowCellType {
13
13
  maxWidth?: number;
14
14
  }
15
15
  export declare const IssueLikeDataTableView: ({ testId, onNextPage, onLoadDatasourceDetails, items, columns, renderItem, visibleColumnKeys, onVisibleColumnKeysChange, status, hasNextPage, scrollableContainerHeight, }: IssueLikeDataTableViewProps) => jsx.JSX.Element;
16
- export declare const EmptyState: ({ isCompact, testId }: import("./empty-state").Props) => jsx.JSX.Element;
16
+ export declare const EmptyState: ({ isCompact, isLoading, testId }: import("./empty-state").Props) => jsx.JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/link-datasource",
3
- "version": "0.32.0",
3
+ "version": "0.33.1",
4
4
  "description": "UI Components to support linking platform dataset feature",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -55,7 +55,7 @@
55
55
  "@atlaskit/tag": "^11.5.0",
56
56
  "@atlaskit/textfield": "5.6.3",
57
57
  "@atlaskit/theme": "^12.5.0",
58
- "@atlaskit/tokens": "^1.13.0",
58
+ "@atlaskit/tokens": "^1.14.0",
59
59
  "@atlassianlabs/jql-editor": "^2.0.1",
60
60
  "@atlassianlabs/jql-editor-autocomplete-rest": "^1.1.2",
61
61
  "@babel/runtime": "^7.0.0",