@atlaskit/link-datasource 0.20.0 → 0.21.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 +16 -0
- package/dist/cjs/hooks/useDatasourceTableState.js +137 -57
- package/dist/cjs/ui/datasource-table-view/datasourceTableView.js +8 -2
- package/dist/cjs/ui/issue-like-table/column-picker/index.js +9 -3
- package/dist/cjs/ui/issue-like-table/index.js +61 -21
- package/dist/cjs/ui/jira-issues-modal/modal/index.js +13 -12
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/hooks/useDatasourceTableState.js +84 -19
- package/dist/es2019/ui/datasource-table-view/datasourceTableView.js +8 -2
- package/dist/es2019/ui/issue-like-table/column-picker/index.js +9 -3
- package/dist/es2019/ui/issue-like-table/index.js +24 -5
- package/dist/es2019/ui/jira-issues-modal/modal/index.js +10 -9
- package/dist/es2019/version.json +1 -1
- package/dist/esm/hooks/useDatasourceTableState.js +137 -57
- package/dist/esm/ui/datasource-table-view/datasourceTableView.js +8 -2
- package/dist/esm/ui/issue-like-table/column-picker/index.js +9 -3
- package/dist/esm/ui/issue-like-table/index.js +61 -21
- package/dist/esm/ui/jira-issues-modal/modal/index.js +13 -12
- package/dist/esm/version.json +1 -1
- package/dist/types/hooks/useDatasourceTableState.d.ts +14 -3
- package/dist/types/ui/issue-like-table/column-picker/index.d.ts +1 -1
- package/dist/types/ui/issue-like-table/column-picker/types.d.ts +1 -0
- package/dist/types/ui/issue-like-table/index.d.ts +1 -1
- package/dist/types/ui/issue-like-table/types.d.ts +3 -1
- package/dist/types-ts4.5/hooks/useDatasourceTableState.d.ts +14 -3
- package/dist/types-ts4.5/ui/issue-like-table/column-picker/index.d.ts +1 -1
- package/dist/types-ts4.5/ui/issue-like-table/column-picker/types.d.ts +1 -0
- package/dist/types-ts4.5/ui/issue-like-table/index.d.ts +1 -1
- package/dist/types-ts4.5/ui/issue-like-table/types.d.ts +3 -1
- package/examples-helpers/buildIssueLikeTable.tsx +11 -3
- package/examples-helpers/buildJiraIssuesTable.tsx +7 -2
- package/package.json +3 -3
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
1
2
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
3
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
4
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
5
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
6
|
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; }
|
|
5
7
|
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; }
|
|
6
8
|
/** @jsx jsx */
|
|
@@ -87,6 +89,7 @@ function getColumnWidth(key, type) {
|
|
|
87
89
|
export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
|
|
88
90
|
var testId = _ref2.testId,
|
|
89
91
|
onNextPage = _ref2.onNextPage,
|
|
92
|
+
onLoadDatasourceDetails = _ref2.onLoadDatasourceDetails,
|
|
90
93
|
items = _ref2.items,
|
|
91
94
|
columns = _ref2.columns,
|
|
92
95
|
_ref2$renderItem = _ref2.renderItem,
|
|
@@ -106,14 +109,21 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
|
|
|
106
109
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
107
110
|
isDragPreview = _useState4[0],
|
|
108
111
|
setIsDragPreview = _useState4[1];
|
|
112
|
+
var _useState5 = useState(false),
|
|
113
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
114
|
+
hasFullSchema = _useState6[0],
|
|
115
|
+
setHasFullSchema = _useState6[1];
|
|
109
116
|
var isBottomOfTableVisibleRaw = useIsOnScreen(lastRowElement);
|
|
110
117
|
var containerRef = useRef(null);
|
|
111
|
-
var
|
|
118
|
+
var _useState7 = useState(function () {
|
|
112
119
|
return orderColumns(_toConsumableArray(columns), _toConsumableArray(visibleColumnKeys));
|
|
113
120
|
}),
|
|
114
|
-
|
|
115
|
-
orderedColumns =
|
|
116
|
-
setOrderedColumns =
|
|
121
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
122
|
+
orderedColumns = _useState8[0],
|
|
123
|
+
setOrderedColumns = _useState8[1];
|
|
124
|
+
useEffect(function () {
|
|
125
|
+
setOrderedColumns(orderColumns(_toConsumableArray(columns), _toConsumableArray(visibleColumnKeys)));
|
|
126
|
+
}, [columns, visibleColumnKeys]);
|
|
117
127
|
var visibleSortedColumns = useMemo(function () {
|
|
118
128
|
return visibleColumnKeys.map(function (visibleKey) {
|
|
119
129
|
return orderedColumns.find(function (_ref3) {
|
|
@@ -157,8 +167,10 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
|
|
|
157
167
|
};
|
|
158
168
|
});
|
|
159
169
|
useEffect(function () {
|
|
160
|
-
if (
|
|
161
|
-
void onNextPage(
|
|
170
|
+
if (isBottomOfTableVisibleRaw && hasNextPage && status === 'resolved') {
|
|
171
|
+
void onNextPage({
|
|
172
|
+
isSchemaFromData: false
|
|
173
|
+
});
|
|
162
174
|
}
|
|
163
175
|
}, [isBottomOfTableVisibleRaw, status, hasNextPage, onNextPage]);
|
|
164
176
|
var dndPreviewHeight = 0;
|
|
@@ -264,6 +276,33 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
|
|
|
264
276
|
var onSelectedColumnKeysChange = useCallback(function (newSelectedColumnKeys) {
|
|
265
277
|
onVisibleColumnKeysChange === null || onVisibleColumnKeysChange === void 0 ? void 0 : onVisibleColumnKeysChange(newSelectedColumnKeys);
|
|
266
278
|
}, [onVisibleColumnKeysChange]);
|
|
279
|
+
var handlePickerOpen = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
280
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
281
|
+
while (1) switch (_context.prev = _context.next) {
|
|
282
|
+
case 0:
|
|
283
|
+
if (!hasFullSchema) {
|
|
284
|
+
_context.next = 2;
|
|
285
|
+
break;
|
|
286
|
+
}
|
|
287
|
+
return _context.abrupt("return");
|
|
288
|
+
case 2:
|
|
289
|
+
_context.prev = 2;
|
|
290
|
+
_context.next = 5;
|
|
291
|
+
return onLoadDatasourceDetails();
|
|
292
|
+
case 5:
|
|
293
|
+
setHasFullSchema(true);
|
|
294
|
+
_context.next = 11;
|
|
295
|
+
break;
|
|
296
|
+
case 8:
|
|
297
|
+
_context.prev = 8;
|
|
298
|
+
_context.t0 = _context["catch"](2);
|
|
299
|
+
setHasFullSchema(false);
|
|
300
|
+
case 11:
|
|
301
|
+
case "end":
|
|
302
|
+
return _context.stop();
|
|
303
|
+
}
|
|
304
|
+
}, _callee, null, [[2, 8]]);
|
|
305
|
+
})), [hasFullSchema, onLoadDatasourceDetails]);
|
|
267
306
|
return jsx("div", {
|
|
268
307
|
ref: containerRef,
|
|
269
308
|
css: isDragPreview ? containerDragPreviewStyles : null
|
|
@@ -273,10 +312,10 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
|
|
|
273
312
|
}, jsx("thead", {
|
|
274
313
|
"data-testid": testId && "".concat(testId, "--head"),
|
|
275
314
|
css: tableHeadStyles
|
|
276
|
-
}, jsx("tr", null, headColumns.map(function (
|
|
277
|
-
var key =
|
|
278
|
-
content =
|
|
279
|
-
maxWidth =
|
|
315
|
+
}, jsx("tr", null, headColumns.map(function (_ref11, cellIndex) {
|
|
316
|
+
var key = _ref11.key,
|
|
317
|
+
content = _ref11.content,
|
|
318
|
+
maxWidth = _ref11.maxWidth;
|
|
280
319
|
var TruncatedContent = function TruncatedContent() {
|
|
281
320
|
return jsx("div", {
|
|
282
321
|
css: truncatedCellStyles
|
|
@@ -305,24 +344,25 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
|
|
|
305
344
|
}), onVisibleColumnKeysChange && jsx("th", {
|
|
306
345
|
css: columnPickerHeaderStyles
|
|
307
346
|
}, jsx(ColumnPicker, {
|
|
347
|
+
columns: hasFullSchema ? orderedColumns : [],
|
|
348
|
+
selectedColumnKeys: hasFullSchema ? visibleColumnKeys : [],
|
|
308
349
|
isDatasourceLoading: status === 'loading',
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
onSelectedColumnKeysChange: onSelectedColumnKeysChange
|
|
350
|
+
onSelectedColumnKeysChange: onSelectedColumnKeysChange,
|
|
351
|
+
onOpen: handlePickerOpen
|
|
312
352
|
})))), jsx("tbody", {
|
|
313
353
|
"data-testid": testId && "".concat(testId, "--body")
|
|
314
|
-
}, rows.map(function (
|
|
315
|
-
var key =
|
|
316
|
-
cells =
|
|
317
|
-
ref =
|
|
354
|
+
}, rows.map(function (_ref12) {
|
|
355
|
+
var key = _ref12.key,
|
|
356
|
+
cells = _ref12.cells,
|
|
357
|
+
ref = _ref12.ref;
|
|
318
358
|
return jsx("tr", {
|
|
319
359
|
key: key,
|
|
320
360
|
"data-testid": testId && "".concat(testId, "--row-").concat(key),
|
|
321
361
|
ref: ref
|
|
322
|
-
}, cells.map(function (
|
|
323
|
-
var key =
|
|
324
|
-
content =
|
|
325
|
-
maxWidth =
|
|
362
|
+
}, cells.map(function (_ref13, cellIndex) {
|
|
363
|
+
var key = _ref13.key,
|
|
364
|
+
content = _ref13.content,
|
|
365
|
+
maxWidth = _ref13.maxWidth;
|
|
326
366
|
return jsx("td", {
|
|
327
367
|
key: key,
|
|
328
368
|
"data-testid": testId && "".concat(testId, "--cell-").concat(cellIndex),
|
|
@@ -61,18 +61,23 @@ export var JiraIssuesConfigModal = function JiraIssuesConfigModal(props) {
|
|
|
61
61
|
jql: jql || ''
|
|
62
62
|
} : undefined;
|
|
63
63
|
}, [cloudId, jql]);
|
|
64
|
-
var
|
|
64
|
+
var _useState9 = useState(initialVisibleColumnKeys),
|
|
65
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
66
|
+
visibleColumnKeys = _useState10[0],
|
|
67
|
+
setVisibleColumnKeys = _useState10[1];
|
|
68
|
+
var _useDatasourceTableSt = useDatasourceTableState({
|
|
69
|
+
datasourceId: datasourceId,
|
|
70
|
+
parameters: isParametersSet ? parameters : undefined,
|
|
71
|
+
fieldKeys: visibleColumnKeys
|
|
72
|
+
}),
|
|
65
73
|
reset = _useDatasourceTableSt.reset,
|
|
66
74
|
status = _useDatasourceTableSt.status,
|
|
67
75
|
onNextPage = _useDatasourceTableSt.onNextPage,
|
|
68
76
|
responseItems = _useDatasourceTableSt.responseItems,
|
|
69
77
|
hasNextPage = _useDatasourceTableSt.hasNextPage,
|
|
70
78
|
columns = _useDatasourceTableSt.columns,
|
|
71
|
-
defaultVisibleColumnKeys = _useDatasourceTableSt.defaultVisibleColumnKeys
|
|
72
|
-
|
|
73
|
-
_useState10 = _slicedToArray(_useState9, 2),
|
|
74
|
-
visibleColumnKeys = _useState10[0],
|
|
75
|
-
setVisibleColumnKeys = _useState10[1];
|
|
79
|
+
defaultVisibleColumnKeys = _useDatasourceTableSt.defaultVisibleColumnKeys,
|
|
80
|
+
loadDatasourceDetails = _useDatasourceTableSt.loadDatasourceDetails;
|
|
76
81
|
useEffect(function () {
|
|
77
82
|
var newVisibleColumnKeys = !initialVisibleColumnKeys || (initialVisibleColumnKeys || []).length === 0 ? defaultVisibleColumnKeys : initialVisibleColumnKeys;
|
|
78
83
|
setVisibleColumnKeys(newVisibleColumnKeys);
|
|
@@ -172,11 +177,6 @@ export var JiraIssuesConfigModal = function JiraIssuesConfigModal(props) {
|
|
|
172
177
|
var handleViewModeChange = function handleViewModeChange(selectedMode) {
|
|
173
178
|
setCurrentViewMode(selectedMode);
|
|
174
179
|
};
|
|
175
|
-
useEffect(function () {
|
|
176
|
-
if (status === 'empty' && isParametersSet) {
|
|
177
|
-
void onNextPage();
|
|
178
|
-
}
|
|
179
|
-
}, [status, isParametersSet, onNextPage, reset]);
|
|
180
180
|
var issueLikeDataTableView = useMemo(function () {
|
|
181
181
|
return jsx(IssueLikeDataTableView, {
|
|
182
182
|
testId: "jira-jql-datasource-table",
|
|
@@ -186,9 +186,10 @@ export var JiraIssuesConfigModal = function JiraIssuesConfigModal(props) {
|
|
|
186
186
|
hasNextPage: hasNextPage,
|
|
187
187
|
visibleColumnKeys: visibleColumnKeys || defaultVisibleColumnKeys,
|
|
188
188
|
onNextPage: onNextPage,
|
|
189
|
+
onLoadDatasourceDetails: loadDatasourceDetails,
|
|
189
190
|
onVisibleColumnKeysChange: setVisibleColumnKeys
|
|
190
191
|
});
|
|
191
|
-
}, [columns, defaultVisibleColumnKeys, hasNextPage, onNextPage, responseItems, status, visibleColumnKeys]);
|
|
192
|
+
}, [columns, defaultVisibleColumnKeys, hasNextPage, loadDatasourceDetails, onNextPage, responseItems, status, visibleColumnKeys]);
|
|
192
193
|
var renderCountModeContent = useCallback(function () {
|
|
193
194
|
var url = selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url;
|
|
194
195
|
if (status === 'empty' || !jql || !url) {
|
package/dist/esm/version.json
CHANGED
|
@@ -1,12 +1,23 @@
|
|
|
1
|
-
import { DatasourceDataResponseItem, DatasourceResponseSchemaProperty, DatasourceTableStatusType } from '@atlaskit/linking-types';
|
|
1
|
+
import { DatasourceDataResponseItem, DatasourceParameters, DatasourceResponseSchemaProperty, DatasourceTableStatusType } from '@atlaskit/linking-types';
|
|
2
|
+
export interface onNextPageProps {
|
|
3
|
+
isSchemaFromData?: boolean;
|
|
4
|
+
shouldRequestFirstPage?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export type NextPageType = (requestInfo?: onNextPageProps) => void;
|
|
2
7
|
export interface DatasourceTableState {
|
|
3
8
|
status: DatasourceTableStatusType;
|
|
4
|
-
onNextPage:
|
|
9
|
+
onNextPage: NextPageType;
|
|
5
10
|
reset: () => void;
|
|
11
|
+
loadDatasourceDetails: () => void;
|
|
6
12
|
responseItems: DatasourceDataResponseItem[];
|
|
7
13
|
hasNextPage: boolean;
|
|
8
14
|
columns: DatasourceResponseSchemaProperty[];
|
|
9
15
|
defaultVisibleColumnKeys: string[];
|
|
10
16
|
totalIssueCount?: number;
|
|
11
17
|
}
|
|
12
|
-
export
|
|
18
|
+
export interface DatasourceTableStateProps {
|
|
19
|
+
datasourceId: string;
|
|
20
|
+
parameters?: DatasourceParameters;
|
|
21
|
+
fieldKeys?: string[];
|
|
22
|
+
}
|
|
23
|
+
export declare const useDatasourceTableState: ({ datasourceId, parameters, fieldKeys, }: DatasourceTableStateProps) => DatasourceTableState;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { jsx } from '@emotion/react';
|
|
2
2
|
import { ColumnPickerProps } from './types';
|
|
3
|
-
export declare const ColumnPicker: ({ isDatasourceLoading, columns, selectedColumnKeys, onSelectedColumnKeysChange, }: ColumnPickerProps) => jsx.JSX.Element;
|
|
3
|
+
export declare const ColumnPicker: ({ isDatasourceLoading, columns, selectedColumnKeys, onSelectedColumnKeysChange, onOpen, }: ColumnPickerProps) => jsx.JSX.Element;
|
|
@@ -12,5 +12,5 @@ export interface RowCellType {
|
|
|
12
12
|
content?: React.ReactNode | string;
|
|
13
13
|
maxWidth?: number;
|
|
14
14
|
}
|
|
15
|
-
export declare const IssueLikeDataTableView: ({ testId, onNextPage, items, columns, renderItem, visibleColumnKeys, onVisibleColumnKeysChange, status, hasNextPage, }: IssueLikeDataTableViewProps) => jsx.JSX.Element;
|
|
15
|
+
export declare const IssueLikeDataTableView: ({ testId, onNextPage, onLoadDatasourceDetails, items, columns, renderItem, visibleColumnKeys, onVisibleColumnKeysChange, status, hasNextPage, }: IssueLikeDataTableViewProps) => jsx.JSX.Element;
|
|
16
16
|
export declare const EmptyState: (props: import("./empty-state").Props) => jsx.JSX.Element;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { DatasourceDataResponseItem, DatasourceResponseSchemaProperty, DatasourceTableStatusType, DatasourceType } from '@atlaskit/linking-types';
|
|
3
|
+
import { NextPageType } from '../../hooks/useDatasourceTableState';
|
|
3
4
|
export type TableViewPropsRenderType = (item: DatasourceType) => React.ReactNode;
|
|
4
5
|
export interface IssueLikeDataTableViewProps {
|
|
5
6
|
testId?: string;
|
|
@@ -16,7 +17,8 @@ export interface IssueLikeDataTableViewProps {
|
|
|
16
17
|
hasNextPage: boolean;
|
|
17
18
|
status: DatasourceTableStatusType;
|
|
18
19
|
items: DatasourceDataResponseItem[];
|
|
19
|
-
onNextPage:
|
|
20
|
+
onNextPage: NextPageType;
|
|
21
|
+
onLoadDatasourceDetails: () => void;
|
|
20
22
|
/**
|
|
21
23
|
* A function to define new or override existing render components.
|
|
22
24
|
* eg:
|
|
@@ -1,12 +1,23 @@
|
|
|
1
|
-
import { DatasourceDataResponseItem, DatasourceResponseSchemaProperty, DatasourceTableStatusType } from '@atlaskit/linking-types';
|
|
1
|
+
import { DatasourceDataResponseItem, DatasourceParameters, DatasourceResponseSchemaProperty, DatasourceTableStatusType } from '@atlaskit/linking-types';
|
|
2
|
+
export interface onNextPageProps {
|
|
3
|
+
isSchemaFromData?: boolean;
|
|
4
|
+
shouldRequestFirstPage?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export type NextPageType = (requestInfo?: onNextPageProps) => void;
|
|
2
7
|
export interface DatasourceTableState {
|
|
3
8
|
status: DatasourceTableStatusType;
|
|
4
|
-
onNextPage:
|
|
9
|
+
onNextPage: NextPageType;
|
|
5
10
|
reset: () => void;
|
|
11
|
+
loadDatasourceDetails: () => void;
|
|
6
12
|
responseItems: DatasourceDataResponseItem[];
|
|
7
13
|
hasNextPage: boolean;
|
|
8
14
|
columns: DatasourceResponseSchemaProperty[];
|
|
9
15
|
defaultVisibleColumnKeys: string[];
|
|
10
16
|
totalIssueCount?: number;
|
|
11
17
|
}
|
|
12
|
-
export
|
|
18
|
+
export interface DatasourceTableStateProps {
|
|
19
|
+
datasourceId: string;
|
|
20
|
+
parameters?: DatasourceParameters;
|
|
21
|
+
fieldKeys?: string[];
|
|
22
|
+
}
|
|
23
|
+
export declare const useDatasourceTableState: ({ datasourceId, parameters, fieldKeys, }: DatasourceTableStateProps) => DatasourceTableState;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { jsx } from '@emotion/react';
|
|
2
2
|
import { ColumnPickerProps } from './types';
|
|
3
|
-
export declare const ColumnPicker: ({ isDatasourceLoading, columns, selectedColumnKeys, onSelectedColumnKeysChange, }: ColumnPickerProps) => jsx.JSX.Element;
|
|
3
|
+
export declare const ColumnPicker: ({ isDatasourceLoading, columns, selectedColumnKeys, onSelectedColumnKeysChange, onOpen, }: ColumnPickerProps) => jsx.JSX.Element;
|
|
@@ -12,5 +12,5 @@ export interface RowCellType {
|
|
|
12
12
|
content?: React.ReactNode | string;
|
|
13
13
|
maxWidth?: number;
|
|
14
14
|
}
|
|
15
|
-
export declare const IssueLikeDataTableView: ({ testId, onNextPage, items, columns, renderItem, visibleColumnKeys, onVisibleColumnKeysChange, status, hasNextPage, }: IssueLikeDataTableViewProps) => jsx.JSX.Element;
|
|
15
|
+
export declare const IssueLikeDataTableView: ({ testId, onNextPage, onLoadDatasourceDetails, items, columns, renderItem, visibleColumnKeys, onVisibleColumnKeysChange, status, hasNextPage, }: IssueLikeDataTableViewProps) => jsx.JSX.Element;
|
|
16
16
|
export declare const EmptyState: (props: import("./empty-state").Props) => jsx.JSX.Element;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { DatasourceDataResponseItem, DatasourceResponseSchemaProperty, DatasourceTableStatusType, DatasourceType } from '@atlaskit/linking-types';
|
|
3
|
+
import { NextPageType } from '../../hooks/useDatasourceTableState';
|
|
3
4
|
export type TableViewPropsRenderType = (item: DatasourceType) => React.ReactNode;
|
|
4
5
|
export interface IssueLikeDataTableViewProps {
|
|
5
6
|
testId?: string;
|
|
@@ -16,7 +17,8 @@ export interface IssueLikeDataTableViewProps {
|
|
|
16
17
|
hasNextPage: boolean;
|
|
17
18
|
status: DatasourceTableStatusType;
|
|
18
19
|
items: DatasourceDataResponseItem[];
|
|
19
|
-
onNextPage:
|
|
20
|
+
onNextPage: NextPageType;
|
|
21
|
+
onLoadDatasourceDetails: () => void;
|
|
20
22
|
/**
|
|
21
23
|
* A function to define new or override existing render components.
|
|
22
24
|
* eg:
|
|
@@ -6,7 +6,10 @@ import styled from '@emotion/styled';
|
|
|
6
6
|
import { IntlProvider } from 'react-intl-next';
|
|
7
7
|
|
|
8
8
|
import { SmartCardProvider } from '@atlaskit/link-provider';
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
initialVisibleColumnKeys,
|
|
11
|
+
mockDatasourceFetchRequests,
|
|
12
|
+
} from '@atlaskit/link-test-helpers/datasource';
|
|
10
13
|
|
|
11
14
|
import { useDatasourceTableState } from '../src/hooks/useDatasourceTableState';
|
|
12
15
|
import { IssueLikeDataTableView } from '../src/ui/issue-like-table';
|
|
@@ -44,10 +47,14 @@ const ExampleBody = ({ isReadonly }: Props) => {
|
|
|
44
47
|
hasNextPage,
|
|
45
48
|
defaultVisibleColumnKeys,
|
|
46
49
|
columns,
|
|
47
|
-
|
|
50
|
+
loadDatasourceDetails,
|
|
51
|
+
} = useDatasourceTableState({
|
|
52
|
+
datasourceId: 'some-datasource-id',
|
|
53
|
+
parameters,
|
|
54
|
+
});
|
|
48
55
|
|
|
49
56
|
const [visibleColumnKeys, setVisibleColumnKeys] = useState<string[]>(
|
|
50
|
-
|
|
57
|
+
initialVisibleColumnKeys,
|
|
51
58
|
);
|
|
52
59
|
|
|
53
60
|
useEffect(() => {
|
|
@@ -63,6 +70,7 @@ const ExampleBody = ({ isReadonly }: Props) => {
|
|
|
63
70
|
testId="link-datasource"
|
|
64
71
|
items={responseItems}
|
|
65
72
|
onNextPage={onNextPage}
|
|
73
|
+
onLoadDatasourceDetails={loadDatasourceDetails}
|
|
66
74
|
hasNextPage={hasNextPage}
|
|
67
75
|
status={status}
|
|
68
76
|
columns={columns}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import React, { useMemo, useState } from 'react';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
initialVisibleColumnKeys,
|
|
5
|
+
mockDatasourceFetchRequests,
|
|
6
|
+
} from '@atlaskit/link-test-helpers/datasource';
|
|
4
7
|
|
|
5
8
|
import { DatasourceTableView } from '../src';
|
|
6
9
|
import { JiraIssueDatasourceParameters } from '../src/ui/jira-issues-modal/types';
|
|
@@ -10,7 +13,9 @@ mockDatasourceFetchRequests();
|
|
|
10
13
|
export const ExampleJiraIssuesTableView = () => {
|
|
11
14
|
const cloudId = 'some-cloud-id';
|
|
12
15
|
|
|
13
|
-
const [visibleColumnKeys, setVisibleColumnKeys] = useState<string[]>(
|
|
16
|
+
const [visibleColumnKeys, setVisibleColumnKeys] = useState<string[]>(
|
|
17
|
+
initialVisibleColumnKeys,
|
|
18
|
+
);
|
|
14
19
|
|
|
15
20
|
const parameters = useMemo<JiraIssueDatasourceParameters>(
|
|
16
21
|
() => ({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/link-datasource",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.1",
|
|
4
4
|
"description": "UI Components to support linking platform dataset feature",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"@atlaskit/icon": "^21.12.0",
|
|
35
35
|
"@atlaskit/icon-object": "^6.3.0",
|
|
36
36
|
"@atlaskit/image": "^1.1.0",
|
|
37
|
-
"@atlaskit/link-client-extension": "^1.
|
|
37
|
+
"@atlaskit/link-client-extension": "^1.2.0",
|
|
38
38
|
"@atlaskit/linking-common": "^2.14.0",
|
|
39
39
|
"@atlaskit/linking-types": "^5.0.0",
|
|
40
40
|
"@atlaskit/lozenge": "^11.4.0",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"@atlaskit/smart-card": "^26.5.0",
|
|
48
48
|
"@atlaskit/spinner": "^15.5.0",
|
|
49
49
|
"@atlaskit/tag": "^11.5.0",
|
|
50
|
-
"@atlaskit/textfield": "5.5.
|
|
50
|
+
"@atlaskit/textfield": "5.5.1",
|
|
51
51
|
"@atlaskit/theme": "^12.5.0",
|
|
52
52
|
"@atlaskit/tokens": "^1.5.0",
|
|
53
53
|
"@atlassianlabs/jql-editor": "^1.2.0",
|