@atlaskit/link-datasource 0.29.5 → 0.30.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 (43) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/cjs/ui/assets-modal/modal/index.js +42 -12
  3. package/dist/cjs/ui/assets-modal/modal/render-assets-content/index.js +31 -6
  4. package/dist/cjs/ui/assets-modal/modal/render-assets-content/initial-state-view/assets/crystal-ball-svg.js +528 -0
  5. package/dist/cjs/ui/assets-modal/modal/render-assets-content/initial-state-view/index.js +41 -0
  6. package/dist/cjs/ui/assets-modal/modal/render-assets-content/initial-state-view/messages.js +25 -0
  7. package/dist/cjs/ui/assets-modal/search-container/aql-search-input/index.js +5 -3
  8. package/dist/cjs/ui/assets-modal/search-container/index.js +4 -2
  9. package/dist/cjs/version.json +1 -1
  10. package/dist/es2019/ui/assets-modal/modal/index.js +43 -13
  11. package/dist/es2019/ui/assets-modal/modal/render-assets-content/index.js +27 -6
  12. package/dist/es2019/ui/assets-modal/modal/render-assets-content/initial-state-view/assets/crystal-ball-svg.js +518 -0
  13. package/dist/es2019/ui/assets-modal/modal/render-assets-content/initial-state-view/index.js +35 -0
  14. package/dist/es2019/ui/assets-modal/modal/render-assets-content/initial-state-view/messages.js +18 -0
  15. package/dist/es2019/ui/assets-modal/search-container/aql-search-input/index.js +5 -3
  16. package/dist/es2019/ui/assets-modal/search-container/index.js +4 -2
  17. package/dist/es2019/version.json +1 -1
  18. package/dist/esm/ui/assets-modal/modal/index.js +43 -13
  19. package/dist/esm/ui/assets-modal/modal/render-assets-content/index.js +29 -6
  20. package/dist/esm/ui/assets-modal/modal/render-assets-content/initial-state-view/assets/crystal-ball-svg.js +520 -0
  21. package/dist/esm/ui/assets-modal/modal/render-assets-content/initial-state-view/index.js +34 -0
  22. package/dist/esm/ui/assets-modal/modal/render-assets-content/initial-state-view/messages.js +18 -0
  23. package/dist/esm/ui/assets-modal/search-container/aql-search-input/index.js +5 -3
  24. package/dist/esm/ui/assets-modal/search-container/index.js +4 -2
  25. package/dist/esm/version.json +1 -1
  26. package/dist/types/ui/assets-modal/modal/render-assets-content/index.d.ts +12 -3
  27. package/dist/types/ui/assets-modal/modal/render-assets-content/initial-state-view/assets/crystal-ball-svg.d.ts +2 -0
  28. package/dist/types/ui/assets-modal/modal/render-assets-content/initial-state-view/index.d.ts +3 -0
  29. package/dist/types/ui/assets-modal/modal/render-assets-content/initial-state-view/messages.d.ts +17 -0
  30. package/dist/types/ui/assets-modal/search-container/aql-search-input/index.d.ts +2 -1
  31. package/dist/types/ui/assets-modal/search-container/index.d.ts +1 -0
  32. package/dist/types-ts4.5/ui/assets-modal/modal/render-assets-content/index.d.ts +12 -3
  33. package/dist/types-ts4.5/ui/assets-modal/modal/render-assets-content/initial-state-view/assets/crystal-ball-svg.d.ts +2 -0
  34. package/dist/types-ts4.5/ui/assets-modal/modal/render-assets-content/initial-state-view/index.d.ts +3 -0
  35. package/dist/types-ts4.5/ui/assets-modal/modal/render-assets-content/initial-state-view/messages.d.ts +17 -0
  36. package/dist/types-ts4.5/ui/assets-modal/search-container/aql-search-input/index.d.ts +2 -1
  37. package/dist/types-ts4.5/ui/assets-modal/search-container/index.d.ts +1 -0
  38. package/package.json +3 -3
  39. package/dist/cjs/ui/assets-modal/modal/styled.js +0 -12
  40. package/dist/es2019/ui/assets-modal/modal/styled.js +0 -6
  41. package/dist/esm/ui/assets-modal/modal/styled.js +0 -4
  42. package/dist/types/ui/assets-modal/modal/styled.d.ts +0 -5
  43. package/dist/types-ts4.5/ui/assets-modal/modal/styled.d.ts +0 -5
@@ -1,7 +1,7 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  /** @jsx jsx */
3
3
  import { useCallback, useEffect, useMemo, useState } from 'react';
4
- import { jsx } from '@emotion/react';
4
+ import { css, jsx } from '@emotion/react';
5
5
  import { FormattedMessage } from 'react-intl-next';
6
6
  import Button from '@atlaskit/button/standard-button';
7
7
  import Modal, { ModalBody, ModalFooter, ModalHeader, ModalTitle, ModalTransition } from '@atlaskit/modal-dialog';
@@ -12,7 +12,11 @@ import { AssetsSearchContainer } from '../search-container';
12
12
  import { AssetsSearchContainerLoading } from '../search-container/loading-state';
13
13
  import { modalMessages } from './messages';
14
14
  import { RenderAssetsContent } from './render-assets-content';
15
- import { ModalContentContainer } from './styled';
15
+ var modalBodyWrapperStyles = css({
16
+ display: 'grid',
17
+ height: '420px',
18
+ overflow: 'auto'
19
+ });
16
20
  var AssetsModalTitle = jsx(ModalTitle, null, jsx(FormattedMessage, modalMessages.insertObjectsTitle));
17
21
  export var AssetsConfigModal = function AssetsConfigModal(props) {
18
22
  var datasourceId = props.datasourceId,
@@ -43,22 +47,32 @@ export var AssetsConfigModal = function AssetsConfigModal(props) {
43
47
  return {
44
48
  aql: aql || '',
45
49
  schemaId: schemaId || '',
46
- workspaceId: '',
50
+ workspaceId: workspaceId || '',
47
51
  cloudId: ''
48
52
  };
49
- }, [aql, schemaId]);
53
+ }, [aql, schemaId, workspaceId]);
54
+ var isParametersSet = !!(aql && workspaceId && schemaId);
50
55
  var _useDatasourceTableSt = useDatasourceTableState({
51
56
  datasourceId: datasourceId,
52
- parameters: parameters
57
+ parameters: isParametersSet ? parameters : undefined,
58
+ fieldKeys: visibleColumnKeys
53
59
  }),
54
60
  status = _useDatasourceTableSt.status,
61
+ onNextPage = _useDatasourceTableSt.onNextPage,
55
62
  responseItems = _useDatasourceTableSt.responseItems,
63
+ reset = _useDatasourceTableSt.reset,
64
+ loadDatasourceDetails = _useDatasourceTableSt.loadDatasourceDetails,
65
+ hasNextPage = _useDatasourceTableSt.hasNextPage,
66
+ columns = _useDatasourceTableSt.columns,
56
67
  defaultVisibleColumnKeys = _useDatasourceTableSt.defaultVisibleColumnKeys;
68
+ var onVisibleColumnKeysChange = useCallback(function (visibleColumnKeys) {
69
+ setVisibleColumnKeys(visibleColumnKeys);
70
+ }, []);
57
71
  useEffect(function () {
58
72
  var newVisibleColumnKeys = !initialVisibleColumnKeys || (initialVisibleColumnKeys || []).length === 0 ? defaultVisibleColumnKeys : initialVisibleColumnKeys;
59
73
  setVisibleColumnKeys(newVisibleColumnKeys);
60
74
  }, [initialVisibleColumnKeys, defaultVisibleColumnKeys]);
61
- var isDisabled = status === 'rejected' || status === 'loading' || status === 'empty' || !!workspaceError || assetsClientLoading || !aql || !schemaId;
75
+ var isDisabled = !!workspaceError || status === 'rejected' || status === 'loading' || status === 'empty' || !!workspaceError || assetsClientLoading || !aql || !schemaId;
62
76
  var retrieveUrlForSmartCardRender = useCallback(function () {
63
77
  var _data$key, _data$key$data;
64
78
  var _responseItems = _slicedToArray(responseItems, 1),
@@ -106,9 +120,10 @@ export var AssetsConfigModal = function AssetsConfigModal(props) {
106
120
  }
107
121
  }, [aql, datasourceId, onInsert, responseItems.length, retrieveUrlForSmartCardRender, schemaId, visibleColumnKeys]);
108
122
  var handleOnSearch = useCallback(function (aql, schemaId) {
123
+ reset();
109
124
  setAql(aql);
110
125
  setSchemaId(schemaId);
111
- }, []);
126
+ }, [reset]);
112
127
  var renderModalTitleContent = useCallback(function () {
113
128
  if (workspaceError) {
114
129
  return undefined;
@@ -125,21 +140,36 @@ export var AssetsConfigModal = function AssetsConfigModal(props) {
125
140
  objectSchema: objectSchema
126
141
  },
127
142
  onSearch: handleOnSearch,
128
- modalTitle: AssetsModalTitle
143
+ modalTitle: AssetsModalTitle,
144
+ isSearching: status === 'loading'
129
145
  });
130
146
  }
131
- }, [aql, assetsClientLoading, handleOnSearch, objectSchema, workspaceError, workspaceId]);
147
+ }, [aql, assetsClientLoading, handleOnSearch, objectSchema, status, workspaceError, workspaceId]);
132
148
  return jsx(ModalTransition, null, jsx(Modal, {
133
149
  testId: 'asset-datasource-modal',
134
150
  onClose: onCancel,
135
151
  width: "x-large",
136
- shouldScrollInViewport: true
137
- }, jsx(ModalHeader, null, renderModalTitleContent()), jsx(ModalBody, null, jsx(ModalContentContainer, null, workspaceError ? jsx(ModalLoadingError, null) : jsx(RenderAssetsContent, {
152
+ shouldScrollInViewport: true,
153
+ shouldCloseOnOverlayClick: false
154
+ }, jsx(ModalHeader, null, renderModalTitleContent()), jsx(ModalBody, null, jsx("div", {
155
+ css: modalBodyWrapperStyles
156
+ }, workspaceError ? jsx(ModalLoadingError, null) : jsx(RenderAssetsContent, {
138
157
  status: status,
139
- responseItems: responseItems
158
+ responseItems: responseItems,
159
+ visibleColumnKeys: visibleColumnKeys,
160
+ onVisibleColumnKeysChange: onVisibleColumnKeysChange,
161
+ datasourceId: datasourceId,
162
+ aql: aql,
163
+ schemaId: schemaId,
164
+ onNextPage: onNextPage,
165
+ hasNextPage: hasNextPage,
166
+ loadDatasourceDetails: loadDatasourceDetails,
167
+ columns: columns,
168
+ defaultVisibleColumnKeys: defaultVisibleColumnKeys
140
169
  }))), jsx(ModalFooter, null, jsx(Button, {
141
170
  appearance: "default",
142
- onClick: onCancel
171
+ onClick: onCancel,
172
+ testId: 'asset-datasource-modal--cancel-button'
143
173
  }, jsx(FormattedMessage, modalMessages.cancelButtonText)), jsx(Button, {
144
174
  appearance: "primary",
145
175
  onClick: onInsertPressed,
@@ -1,19 +1,42 @@
1
- import React from 'react';
1
+ import React, { useMemo } from 'react';
2
2
  import { ModalLoadingError } from '../../../common/error-state/modal-loading-error';
3
3
  import { NoResults } from '../../../common/error-state/no-results';
4
- import { EmptyState } from '../../../issue-like-table';
4
+ import { EmptyState, IssueLikeDataTableView } from '../../../issue-like-table';
5
+ import { InitialStateView } from './initial-state-view';
5
6
  export var RenderAssetsContent = function RenderAssetsContent(props) {
6
7
  var status = props.status,
7
- responseItems = props.responseItems;
8
+ responseItems = props.responseItems,
9
+ visibleColumnKeys = props.visibleColumnKeys,
10
+ onNextPage = props.onNextPage,
11
+ hasNextPage = props.hasNextPage,
12
+ loadDatasourceDetails = props.loadDatasourceDetails,
13
+ columns = props.columns,
14
+ defaultVisibleColumnKeys = props.defaultVisibleColumnKeys,
15
+ onVisibleColumnKeysChange = props.onVisibleColumnKeysChange;
8
16
  var resolvedWithNoResults = status === 'resolved' && !responseItems.length;
17
+ var issueLikeDataTableView = useMemo(function () {
18
+ return /*#__PURE__*/React.createElement(IssueLikeDataTableView, {
19
+ testId: "asset-datasource-table",
20
+ status: status,
21
+ columns: columns,
22
+ items: responseItems,
23
+ hasNextPage: hasNextPage,
24
+ visibleColumnKeys: visibleColumnKeys || defaultVisibleColumnKeys,
25
+ onNextPage: onNextPage,
26
+ onLoadDatasourceDetails: loadDatasourceDetails,
27
+ onVisibleColumnKeysChange: onVisibleColumnKeysChange
28
+ });
29
+ }, [columns, defaultVisibleColumnKeys, hasNextPage, loadDatasourceDetails, onNextPage, onVisibleColumnKeysChange, responseItems, status, visibleColumnKeys]);
9
30
  if (status === 'rejected') {
10
31
  return /*#__PURE__*/React.createElement(ModalLoadingError, null);
32
+ } else if (status === 'empty') {
33
+ return /*#__PURE__*/React.createElement(InitialStateView, null);
11
34
  } else if (resolvedWithNoResults) {
12
35
  return /*#__PURE__*/React.createElement(NoResults, null);
13
- } else if (status === 'empty') {
36
+ } else if (status === 'loading' && !columns.length) {
14
37
  return /*#__PURE__*/React.createElement(EmptyState, {
15
- testId: "assets-aql-datasource-modal--empty-state"
38
+ testId: "assets-aql-datasource-modal--loading-state"
16
39
  });
17
40
  }
18
- return /*#__PURE__*/React.createElement("p", null, "TODO add IssueLikeDataTableView component.");
41
+ return issueLikeDataTableView;
19
42
  };