@atlaskit/link-datasource 2.3.3 → 2.3.5
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 +1201 -1192
- package/dist/cjs/contexts/datasource-experience-id/index.js +28 -0
- package/dist/cjs/contexts/user-interactions/index.js +42 -0
- package/dist/cjs/i18n/cs.js +15 -8
- package/dist/cjs/i18n/da.js +15 -8
- package/dist/cjs/i18n/de.js +15 -8
- package/dist/cjs/i18n/en.js +15 -8
- package/dist/cjs/i18n/en_GB.js +15 -8
- package/dist/cjs/i18n/en_ZZ.js +15 -8
- package/dist/cjs/i18n/es.js +15 -8
- package/dist/cjs/i18n/fi.js +15 -8
- package/dist/cjs/i18n/fr.js +15 -8
- package/dist/cjs/i18n/hu.js +15 -8
- package/dist/cjs/i18n/it.js +15 -8
- package/dist/cjs/i18n/ja.js +15 -8
- package/dist/cjs/i18n/ko.js +15 -8
- package/dist/cjs/i18n/nb.js +15 -8
- package/dist/cjs/i18n/nl.js +15 -8
- package/dist/cjs/i18n/pl.js +15 -8
- package/dist/cjs/i18n/pt_BR.js +15 -8
- package/dist/cjs/i18n/ru.js +15 -8
- package/dist/cjs/i18n/sv.js +15 -8
- package/dist/cjs/i18n/th.js +15 -8
- package/dist/cjs/i18n/tr.js +15 -8
- package/dist/cjs/i18n/uk.js +15 -8
- package/dist/cjs/i18n/vi.js +15 -8
- package/dist/cjs/i18n/zh.js +15 -8
- package/dist/cjs/i18n/zh_TW.js +15 -8
- package/dist/cjs/ui/assets-modal/modal/index.js +20 -18
- package/dist/cjs/ui/assets-modal/modal/render-assets-content/index.js +2 -4
- package/dist/cjs/ui/assets-modal/search-container/aql-search-input/index.js +1 -0
- package/dist/cjs/ui/confluence-search-modal/basic-filters/filters/date-range-picker/trigger.js +4 -1
- package/dist/cjs/ui/confluence-search-modal/modal/confluence-search-initial-state-svg.js +3 -1
- package/dist/cjs/ui/confluence-search-modal/modal/index.js +23 -21
- package/dist/cjs/ui/datasource-table-view/datasourceTableView.js +9 -9
- package/dist/cjs/ui/issue-like-table/column-picker/concatenated-menu-list.js +3 -1
- package/dist/cjs/ui/issue-like-table/column-picker/index.js +6 -5
- package/dist/cjs/ui/issue-like-table/draggable-table-heading.js +1 -0
- package/dist/cjs/ui/issue-like-table/empty-state/index.js +19 -13
- package/dist/cjs/ui/issue-like-table/index.js +24 -14
- package/dist/cjs/ui/issue-like-table/render-type/icon/index.js +3 -1
- package/dist/cjs/ui/issue-like-table/render-type/link/index.js +3 -1
- package/dist/cjs/ui/jira-issues-modal/modal/index.js +31 -28
- package/dist/cjs/ui/table-footer/index.js +1 -0
- package/dist/cjs/ui/table-footer/powered-by-jsm-assets/index.js +2 -0
- package/dist/es2019/contexts/datasource-experience-id/index.js +19 -0
- package/dist/es2019/contexts/user-interactions/index.js +33 -0
- package/dist/es2019/i18n/cs.js +15 -8
- package/dist/es2019/i18n/da.js +15 -8
- package/dist/es2019/i18n/de.js +15 -8
- package/dist/es2019/i18n/en.js +15 -8
- package/dist/es2019/i18n/en_GB.js +15 -8
- package/dist/es2019/i18n/en_ZZ.js +15 -8
- package/dist/es2019/i18n/es.js +15 -8
- package/dist/es2019/i18n/fi.js +15 -8
- package/dist/es2019/i18n/fr.js +15 -8
- package/dist/es2019/i18n/hu.js +15 -8
- package/dist/es2019/i18n/it.js +15 -8
- package/dist/es2019/i18n/ja.js +15 -8
- package/dist/es2019/i18n/ko.js +15 -8
- package/dist/es2019/i18n/nb.js +15 -8
- package/dist/es2019/i18n/nl.js +15 -8
- package/dist/es2019/i18n/pl.js +15 -8
- package/dist/es2019/i18n/pt_BR.js +15 -8
- package/dist/es2019/i18n/ru.js +15 -8
- package/dist/es2019/i18n/sv.js +15 -8
- package/dist/es2019/i18n/th.js +15 -8
- package/dist/es2019/i18n/tr.js +15 -8
- package/dist/es2019/i18n/uk.js +15 -8
- package/dist/es2019/i18n/vi.js +15 -8
- package/dist/es2019/i18n/zh.js +15 -8
- package/dist/es2019/i18n/zh_TW.js +15 -8
- package/dist/es2019/ui/assets-modal/modal/index.js +18 -19
- package/dist/es2019/ui/assets-modal/modal/render-assets-content/index.js +2 -4
- package/dist/es2019/ui/assets-modal/search-container/aql-search-input/index.js +1 -0
- package/dist/es2019/ui/confluence-search-modal/basic-filters/filters/date-range-picker/trigger.js +4 -1
- package/dist/es2019/ui/confluence-search-modal/modal/confluence-search-initial-state-svg.js +3 -1
- package/dist/es2019/ui/confluence-search-modal/modal/index.js +21 -22
- package/dist/es2019/ui/datasource-table-view/datasourceTableView.js +7 -10
- package/dist/es2019/ui/issue-like-table/column-picker/concatenated-menu-list.js +3 -1
- package/dist/es2019/ui/issue-like-table/column-picker/index.js +6 -5
- package/dist/es2019/ui/issue-like-table/draggable-table-heading.js +2 -0
- package/dist/es2019/ui/issue-like-table/empty-state/index.js +6 -1
- package/dist/es2019/ui/issue-like-table/index.js +24 -14
- package/dist/es2019/ui/issue-like-table/render-type/icon/index.js +3 -1
- package/dist/es2019/ui/issue-like-table/render-type/link/index.js +3 -1
- package/dist/es2019/ui/jira-issues-modal/modal/index.js +28 -28
- package/dist/es2019/ui/table-footer/index.js +1 -0
- package/dist/es2019/ui/table-footer/powered-by-jsm-assets/index.js +2 -0
- package/dist/esm/contexts/datasource-experience-id/index.js +20 -0
- package/dist/esm/contexts/user-interactions/index.js +34 -0
- package/dist/esm/i18n/cs.js +15 -8
- package/dist/esm/i18n/da.js +15 -8
- package/dist/esm/i18n/de.js +15 -8
- package/dist/esm/i18n/en.js +15 -8
- package/dist/esm/i18n/en_GB.js +15 -8
- package/dist/esm/i18n/en_ZZ.js +15 -8
- package/dist/esm/i18n/es.js +15 -8
- package/dist/esm/i18n/fi.js +15 -8
- package/dist/esm/i18n/fr.js +15 -8
- package/dist/esm/i18n/hu.js +15 -8
- package/dist/esm/i18n/it.js +15 -8
- package/dist/esm/i18n/ja.js +15 -8
- package/dist/esm/i18n/ko.js +15 -8
- package/dist/esm/i18n/nb.js +15 -8
- package/dist/esm/i18n/nl.js +15 -8
- package/dist/esm/i18n/pl.js +15 -8
- package/dist/esm/i18n/pt_BR.js +15 -8
- package/dist/esm/i18n/ru.js +15 -8
- package/dist/esm/i18n/sv.js +15 -8
- package/dist/esm/i18n/th.js +15 -8
- package/dist/esm/i18n/tr.js +15 -8
- package/dist/esm/i18n/uk.js +15 -8
- package/dist/esm/i18n/vi.js +15 -8
- package/dist/esm/i18n/zh.js +15 -8
- package/dist/esm/i18n/zh_TW.js +15 -8
- package/dist/esm/ui/assets-modal/modal/index.js +20 -18
- package/dist/esm/ui/assets-modal/modal/render-assets-content/index.js +2 -4
- package/dist/esm/ui/assets-modal/search-container/aql-search-input/index.js +1 -0
- package/dist/esm/ui/confluence-search-modal/basic-filters/filters/date-range-picker/trigger.js +4 -1
- package/dist/esm/ui/confluence-search-modal/modal/confluence-search-initial-state-svg.js +3 -1
- package/dist/esm/ui/confluence-search-modal/modal/index.js +23 -21
- package/dist/esm/ui/datasource-table-view/datasourceTableView.js +9 -9
- package/dist/esm/ui/issue-like-table/column-picker/concatenated-menu-list.js +3 -1
- package/dist/esm/ui/issue-like-table/column-picker/index.js +6 -5
- package/dist/esm/ui/issue-like-table/draggable-table-heading.js +1 -0
- package/dist/esm/ui/issue-like-table/empty-state/index.js +19 -13
- package/dist/esm/ui/issue-like-table/index.js +24 -14
- package/dist/esm/ui/issue-like-table/render-type/icon/index.js +3 -1
- package/dist/esm/ui/issue-like-table/render-type/link/index.js +3 -1
- package/dist/esm/ui/jira-issues-modal/modal/index.js +30 -27
- package/dist/esm/ui/table-footer/index.js +1 -0
- package/dist/esm/ui/table-footer/powered-by-jsm-assets/index.js +2 -0
- package/dist/types/contexts/datasource-experience-id/index.d.ts +4 -0
- package/dist/types/contexts/user-interactions/index.d.ts +15 -0
- package/dist/types/i18n/cs.d.ts +15 -8
- package/dist/types/i18n/da.d.ts +15 -8
- package/dist/types/i18n/de.d.ts +15 -8
- package/dist/types/i18n/en.d.ts +15 -8
- package/dist/types/i18n/en_GB.d.ts +15 -8
- package/dist/types/i18n/en_ZZ.d.ts +15 -8
- package/dist/types/i18n/es.d.ts +15 -8
- package/dist/types/i18n/fi.d.ts +15 -8
- package/dist/types/i18n/fr.d.ts +15 -8
- package/dist/types/i18n/hu.d.ts +15 -8
- package/dist/types/i18n/it.d.ts +15 -8
- package/dist/types/i18n/ja.d.ts +15 -8
- package/dist/types/i18n/ko.d.ts +15 -8
- package/dist/types/i18n/nb.d.ts +15 -8
- package/dist/types/i18n/nl.d.ts +15 -8
- package/dist/types/i18n/pl.d.ts +15 -8
- package/dist/types/i18n/pt_BR.d.ts +15 -8
- package/dist/types/i18n/ru.d.ts +15 -8
- package/dist/types/i18n/sv.d.ts +15 -8
- package/dist/types/i18n/th.d.ts +15 -8
- package/dist/types/i18n/tr.d.ts +15 -8
- package/dist/types/i18n/uk.d.ts +15 -8
- package/dist/types/i18n/vi.d.ts +15 -8
- package/dist/types/i18n/zh.d.ts +15 -8
- package/dist/types/i18n/zh_TW.d.ts +15 -8
- package/dist/types/ui/assets-modal/modal/render-assets-content/index.d.ts +0 -1
- 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 +0 -1
- package/dist/types/ui/issue-like-table/index.d.ts +1 -1
- package/dist/types/ui/issue-like-table/types.d.ts +0 -4
- package/dist/types/ui/jira-issues-modal/modal/index.d.ts +0 -2
- package/dist/types-ts4.5/contexts/datasource-experience-id/index.d.ts +4 -0
- package/dist/types-ts4.5/contexts/user-interactions/index.d.ts +15 -0
- package/dist/types-ts4.5/i18n/cs.d.ts +15 -8
- package/dist/types-ts4.5/i18n/da.d.ts +15 -8
- package/dist/types-ts4.5/i18n/de.d.ts +15 -8
- package/dist/types-ts4.5/i18n/en.d.ts +15 -8
- package/dist/types-ts4.5/i18n/en_GB.d.ts +15 -8
- package/dist/types-ts4.5/i18n/en_ZZ.d.ts +15 -8
- package/dist/types-ts4.5/i18n/es.d.ts +15 -8
- package/dist/types-ts4.5/i18n/fi.d.ts +15 -8
- package/dist/types-ts4.5/i18n/fr.d.ts +15 -8
- package/dist/types-ts4.5/i18n/hu.d.ts +15 -8
- package/dist/types-ts4.5/i18n/it.d.ts +15 -8
- package/dist/types-ts4.5/i18n/ja.d.ts +15 -8
- package/dist/types-ts4.5/i18n/ko.d.ts +15 -8
- package/dist/types-ts4.5/i18n/nb.d.ts +15 -8
- package/dist/types-ts4.5/i18n/nl.d.ts +15 -8
- package/dist/types-ts4.5/i18n/pl.d.ts +15 -8
- package/dist/types-ts4.5/i18n/pt_BR.d.ts +15 -8
- package/dist/types-ts4.5/i18n/ru.d.ts +15 -8
- package/dist/types-ts4.5/i18n/sv.d.ts +15 -8
- package/dist/types-ts4.5/i18n/th.d.ts +15 -8
- package/dist/types-ts4.5/i18n/tr.d.ts +15 -8
- package/dist/types-ts4.5/i18n/uk.d.ts +15 -8
- package/dist/types-ts4.5/i18n/vi.d.ts +15 -8
- package/dist/types-ts4.5/i18n/zh.d.ts +15 -8
- package/dist/types-ts4.5/i18n/zh_TW.d.ts +15 -8
- package/dist/types-ts4.5/ui/assets-modal/modal/render-assets-content/index.d.ts +0 -1
- 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 +0 -1
- 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 +0 -4
- package/dist/types-ts4.5/ui/jira-issues-modal/modal/index.d.ts +0 -2
- package/examples-helpers/buildIssueLikeTable.tsx +12 -9
- package/examples-helpers/buildJiraIssuesTable.tsx +8 -5
- package/package.json +4 -4
|
@@ -3,7 +3,6 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
|
3
3
|
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
4
4
|
import { css, jsx } from '@emotion/react';
|
|
5
5
|
import { FormattedMessage } from 'react-intl-next';
|
|
6
|
-
import { v4 as uuidv4 } from 'uuid';
|
|
7
6
|
import { withAnalyticsContext } from '@atlaskit/analytics-next';
|
|
8
7
|
import Button from '@atlaskit/button/standard-button';
|
|
9
8
|
import { IntlMessagesProvider } from '@atlaskit/intl-messages-provider';
|
|
@@ -16,6 +15,8 @@ import { useColumnPickerRenderedFailedUfoExperience } from '../../../analytics/u
|
|
|
16
15
|
import { useDataRenderedUfoExperience } from '../../../analytics/ufoExperiences/hooks/useDataRenderedUfoExperience';
|
|
17
16
|
import { buildDatasourceAdf } from '../../../common/utils/adf';
|
|
18
17
|
import { fetchMessagesForLocale } from '../../../common/utils/locale/fetch-messages-for-locale';
|
|
18
|
+
import { DatasourceExperienceIdProvider, useDatasourceExperienceId } from '../../../contexts/datasource-experience-id';
|
|
19
|
+
import { UserInteractionsProvider, useUserInteractions } from '../../../contexts/user-interactions';
|
|
19
20
|
import { useAssetsClient } from '../../../hooks/useAssetsClient';
|
|
20
21
|
import { useDatasourceTableState } from '../../../hooks/useDatasourceTableState';
|
|
21
22
|
import i18nEN from '../../../i18n/en';
|
|
@@ -31,6 +32,7 @@ import { MODAL_HEIGHT, RenderAssetsContent } from './render-assets-content';
|
|
|
31
32
|
const modalBodyErrorWrapperStyles = css({
|
|
32
33
|
alignItems: 'center',
|
|
33
34
|
display: 'grid',
|
|
35
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values
|
|
34
36
|
height: MODAL_HEIGHT
|
|
35
37
|
});
|
|
36
38
|
const AssetsModalTitle = jsx(ModalTitle, null, jsx(FormattedMessage, modalMessages.insertObjectsTitle));
|
|
@@ -50,9 +52,7 @@ const PlainAssetsConfigModal = props => {
|
|
|
50
52
|
const {
|
|
51
53
|
fireEvent
|
|
52
54
|
} = useDatasourceAnalyticsEvents();
|
|
53
|
-
const
|
|
54
|
-
current: modalRenderInstanceId
|
|
55
|
-
} = useRef(uuidv4());
|
|
55
|
+
const experienceId = useDatasourceExperienceId();
|
|
56
56
|
const {
|
|
57
57
|
workspaceId,
|
|
58
58
|
workspaceError,
|
|
@@ -119,7 +119,7 @@ const PlainAssetsConfigModal = props => {
|
|
|
119
119
|
|
|
120
120
|
/* ------------------------------ OBSERVABILITY ------------------------------ */
|
|
121
121
|
const searchCount = useRef(0);
|
|
122
|
-
const
|
|
122
|
+
const userInteractions = useUserInteractions();
|
|
123
123
|
const visibleColumnCount = useRef((visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.length) || 0);
|
|
124
124
|
const isDataReady = (visibleColumnKeys || []).length > 0;
|
|
125
125
|
const analyticsPayload = useMemo(() => {
|
|
@@ -161,17 +161,17 @@ const PlainAssetsConfigModal = props => {
|
|
|
161
161
|
if (shouldStartUfoExperience) {
|
|
162
162
|
startUfoExperience({
|
|
163
163
|
name: 'datasource-rendered'
|
|
164
|
-
},
|
|
164
|
+
}, experienceId);
|
|
165
165
|
}
|
|
166
|
-
}, [
|
|
166
|
+
}, [experienceId, status]);
|
|
167
167
|
useDataRenderedUfoExperience({
|
|
168
168
|
status,
|
|
169
|
-
experienceId:
|
|
169
|
+
experienceId: experienceId,
|
|
170
170
|
itemCount: responseItems.length,
|
|
171
171
|
canBeLink: false,
|
|
172
172
|
extensionKey
|
|
173
173
|
});
|
|
174
|
-
useColumnPickerRenderedFailedUfoExperience(status,
|
|
174
|
+
useColumnPickerRenderedFailedUfoExperience(status, experienceId);
|
|
175
175
|
/* ------------------------------ END OBSERVABILITY ------------------------------ */
|
|
176
176
|
|
|
177
177
|
const onVisibleColumnKeysChange = useCallback(visibleColumnKeys => {
|
|
@@ -212,7 +212,7 @@ const PlainAssetsConfigModal = props => {
|
|
|
212
212
|
display: DatasourceDisplay.DATASOURCE_TABLE,
|
|
213
213
|
searchCount: searchCount.current,
|
|
214
214
|
searchMethod: DatasourceSearchMethod.DATASOURCE_SEARCH_QUERY,
|
|
215
|
-
actions:
|
|
215
|
+
actions: userInteractions.get()
|
|
216
216
|
},
|
|
217
217
|
eventType: 'ui'
|
|
218
218
|
});
|
|
@@ -244,15 +244,15 @@ const PlainAssetsConfigModal = props => {
|
|
|
244
244
|
}]
|
|
245
245
|
}), consumerEvent);
|
|
246
246
|
}
|
|
247
|
-
}, [aql, schemaId, workspaceId, analyticsPayload, totalCount, retrieveUrlForSmartCardRender, responseItems.length, onInsert, datasourceId, visibleColumnKeys]);
|
|
247
|
+
}, [aql, schemaId, workspaceId, analyticsPayload, totalCount, retrieveUrlForSmartCardRender, responseItems.length, onInsert, datasourceId, visibleColumnKeys, userInteractions]);
|
|
248
248
|
const handleOnSearch = useCallback((searchAql, searchSchemaId) => {
|
|
249
249
|
if (schemaId !== searchSchemaId || aql !== searchAql || status === 'rejected') {
|
|
250
250
|
searchCount.current++;
|
|
251
251
|
if (schemaId !== searchSchemaId) {
|
|
252
|
-
|
|
252
|
+
userInteractions.add(DatasourceAction.SCHEMA_UPDATED);
|
|
253
253
|
}
|
|
254
254
|
if (aql !== searchAql) {
|
|
255
|
-
|
|
255
|
+
userInteractions.add(DatasourceAction.QUERY_UPDATED);
|
|
256
256
|
}
|
|
257
257
|
setAql(searchAql);
|
|
258
258
|
setSchemaId(searchSchemaId);
|
|
@@ -263,7 +263,7 @@ const PlainAssetsConfigModal = props => {
|
|
|
263
263
|
shouldResetColumns: true
|
|
264
264
|
});
|
|
265
265
|
}
|
|
266
|
-
}, [aql, reset, schemaId, status]);
|
|
266
|
+
}, [aql, reset, schemaId, status, userInteractions]);
|
|
267
267
|
const renderErrorState = useCallback(() => {
|
|
268
268
|
if (errorState) {
|
|
269
269
|
switch (errorState) {
|
|
@@ -302,9 +302,9 @@ const PlainAssetsConfigModal = props => {
|
|
|
302
302
|
return {
|
|
303
303
|
...analyticsPayload,
|
|
304
304
|
searchCount: searchCount.current,
|
|
305
|
-
actions:
|
|
305
|
+
actions: userInteractions.get()
|
|
306
306
|
};
|
|
307
|
-
}, [analyticsPayload]);
|
|
307
|
+
}, [analyticsPayload, userInteractions]);
|
|
308
308
|
return jsx(IntlMessagesProvider, {
|
|
309
309
|
defaultMessages: i18nEN,
|
|
310
310
|
loaderFn: fetchMessagesForLocale
|
|
@@ -327,8 +327,7 @@ const PlainAssetsConfigModal = props => {
|
|
|
327
327
|
hasNextPage: hasNextPage,
|
|
328
328
|
loadDatasourceDetails: loadDatasourceDetails,
|
|
329
329
|
columns: columns,
|
|
330
|
-
defaultVisibleColumnKeys: defaultVisibleColumnKeys
|
|
331
|
-
modalRenderInstanceId: modalRenderInstanceId
|
|
330
|
+
defaultVisibleColumnKeys: defaultVisibleColumnKeys
|
|
332
331
|
})), jsx(ModalFooter, null, jsx(CancelButton, {
|
|
333
332
|
onCancel: onCancel,
|
|
334
333
|
getAnalyticsPayload: getCancelButtonAnalyticsPayload,
|
|
@@ -357,4 +356,4 @@ const contextData = {
|
|
|
357
356
|
...analyticsContextAttributes
|
|
358
357
|
}
|
|
359
358
|
};
|
|
360
|
-
export const AssetsConfigModal = withAnalyticsContext(contextData)(PlainAssetsConfigModal);
|
|
359
|
+
export const AssetsConfigModal = withAnalyticsContext(contextData)(props => jsx(DatasourceExperienceIdProvider, null, jsx(UserInteractionsProvider, null, jsx(PlainAssetsConfigModal, props))));
|
|
@@ -56,7 +56,6 @@ export const RenderAssetsContent = props => {
|
|
|
56
56
|
columns,
|
|
57
57
|
defaultVisibleColumnKeys,
|
|
58
58
|
onVisibleColumnKeysChange,
|
|
59
|
-
modalRenderInstanceId,
|
|
60
59
|
isFetchingInitialData
|
|
61
60
|
} = props;
|
|
62
61
|
const resolvedWithNoResults = status === 'resolved' && !responseItems.length;
|
|
@@ -71,9 +70,8 @@ export const RenderAssetsContent = props => {
|
|
|
71
70
|
visibleColumnKeys: visibleColumnKeys || defaultVisibleColumnKeys,
|
|
72
71
|
onNextPage: onNextPage,
|
|
73
72
|
onLoadDatasourceDetails: loadDatasourceDetails,
|
|
74
|
-
onVisibleColumnKeysChange: onVisibleColumnKeysChange
|
|
75
|
-
|
|
76
|
-
})), [columns, defaultVisibleColumnKeys, hasNextPage, loadDatasourceDetails, onNextPage, onVisibleColumnKeysChange, responseItems, status, visibleColumnKeys, modalRenderInstanceId]);
|
|
73
|
+
onVisibleColumnKeysChange: onVisibleColumnKeysChange
|
|
74
|
+
})), [columns, defaultVisibleColumnKeys, hasNextPage, loadDatasourceDetails, onNextPage, onVisibleColumnKeysChange, responseItems, status, visibleColumnKeys]);
|
|
77
75
|
const renderAssetsContentView = useCallback(() => {
|
|
78
76
|
if (isFetchingInitialData) {
|
|
79
77
|
// Placing this check first as it's a priority before all others
|
|
@@ -80,6 +80,7 @@ export const AqlSearchInput = ({
|
|
|
80
80
|
fieldProps
|
|
81
81
|
}) => jsx(Fragment, null, jsx(Textfield, _extends({}, fieldProps, {
|
|
82
82
|
elemBeforeInput: jsx("span", {
|
|
83
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
83
84
|
style: {
|
|
84
85
|
paddingLeft: "var(--ds-space-075, 6px)",
|
|
85
86
|
width: 24
|
package/dist/es2019/ui/confluence-search-modal/basic-filters/filters/date-range-picker/trigger.js
CHANGED
|
@@ -13,7 +13,10 @@ export const PopupTrigger = ({
|
|
|
13
13
|
testId: 'confluence-search-modal--date-range-button',
|
|
14
14
|
onClick: onClick,
|
|
15
15
|
isSelected: isSelected,
|
|
16
|
-
iconAfter:
|
|
16
|
+
iconAfter:
|
|
17
|
+
/*#__PURE__*/
|
|
18
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
19
|
+
React.createElement("span", {
|
|
17
20
|
style: {
|
|
18
21
|
display: 'flex',
|
|
19
22
|
alignItems: 'center'
|
|
@@ -99,7 +99,9 @@ export const ConfluenceSearchInitialStateSVG = () => /*#__PURE__*/React.createEl
|
|
|
99
99
|
d: "M114.678 51.6186C110.935 54.7774 108.407 59.1306 107.525 63.9371C106.643 68.7435 107.46 73.706 109.838 77.9797C112.216 82.2534 116.008 85.574 120.567 87.3761C125.127 89.1783 130.173 89.3507 134.846 87.8638C139.519 86.377 143.53 83.3229 146.197 79.2215C148.863 75.1202 150.02 70.2251 149.47 65.3697C148.92 60.5144 146.698 55.9989 143.181 52.5921C139.665 49.1853 135.071 47.0979 130.183 46.6851C127.4 46.4461 124.596 46.7591 121.935 47.6059C119.273 48.4527 116.807 49.8165 114.678 51.6186Z",
|
|
100
100
|
fill: "white"
|
|
101
101
|
}), /*#__PURE__*/React.createElement("mask", {
|
|
102
|
-
id: "mask0_1_10772"
|
|
102
|
+
id: "mask0_1_10772"
|
|
103
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
104
|
+
,
|
|
103
105
|
style: {
|
|
104
106
|
maskType: 'alpha'
|
|
105
107
|
},
|
|
@@ -3,7 +3,6 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
|
3
3
|
import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
4
4
|
import { jsx } from '@emotion/react';
|
|
5
5
|
import { FormattedMessage, FormattedNumber } from 'react-intl-next';
|
|
6
|
-
import { v4 as uuidv4 } from 'uuid';
|
|
7
6
|
import { withAnalyticsContext } from '@atlaskit/analytics-next';
|
|
8
7
|
import Button from '@atlaskit/button/standard-button';
|
|
9
8
|
import { IntlMessagesProvider } from '@atlaskit/intl-messages-provider';
|
|
@@ -17,6 +16,8 @@ import { componentMetadata } from '../../../analytics/constants';
|
|
|
17
16
|
import { DatasourceAction, DatasourceDisplay, DatasourceSearchMethod } from '../../../analytics/types';
|
|
18
17
|
import { buildDatasourceAdf } from '../../../common/utils/adf';
|
|
19
18
|
import { fetchMessagesForLocale } from '../../../common/utils/locale/fetch-messages-for-locale';
|
|
19
|
+
import { DatasourceExperienceIdProvider } from '../../../contexts/datasource-experience-id';
|
|
20
|
+
import { UserInteractionsProvider, useUserInteractions } from '../../../contexts/user-interactions';
|
|
20
21
|
import { useDatasourceTableState } from '../../../hooks/useDatasourceTableState';
|
|
21
22
|
import i18nEN from '../../../i18n/en';
|
|
22
23
|
import { useAvailableSites } from '../../../services/useAvailableSites';
|
|
@@ -48,9 +49,6 @@ const searchCountStyles = xcss({
|
|
|
48
49
|
fontWeight: 600
|
|
49
50
|
});
|
|
50
51
|
export const PlainConfluenceSearchConfigModal = props => {
|
|
51
|
-
const {
|
|
52
|
-
current: modalRenderInstanceId
|
|
53
|
-
} = useRef(uuidv4());
|
|
54
52
|
const {
|
|
55
53
|
datasourceId,
|
|
56
54
|
columnCustomSizes: initialColumnCustomSizes,
|
|
@@ -81,7 +79,7 @@ export const PlainConfluenceSearchConfigModal = props => {
|
|
|
81
79
|
|
|
82
80
|
// analytics related parameters
|
|
83
81
|
const searchCount = useRef(0);
|
|
84
|
-
const
|
|
82
|
+
const userInteractions = useUserInteractions();
|
|
85
83
|
const visibleColumnCount = useRef((visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.length) || 0);
|
|
86
84
|
const parameters = useMemo(() => ({
|
|
87
85
|
...initialParameters,
|
|
@@ -143,7 +141,7 @@ export const PlainConfluenceSearchConfigModal = props => {
|
|
|
143
141
|
// TODO: further refactoring in EDM-9573
|
|
144
142
|
// https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/pull-requests/82725/overview?commentId=6829171
|
|
145
143
|
const onSiteSelection = useCallback(site => {
|
|
146
|
-
|
|
144
|
+
userInteractions.add(DatasourceAction.INSTANCE_UPDATED);
|
|
147
145
|
setSearchString(undefined);
|
|
148
146
|
setLastModified(undefined);
|
|
149
147
|
setContributorAccountIds([]);
|
|
@@ -151,7 +149,7 @@ export const PlainConfluenceSearchConfigModal = props => {
|
|
|
151
149
|
reset({
|
|
152
150
|
shouldForceRequest: true
|
|
153
151
|
});
|
|
154
|
-
}, [reset]);
|
|
152
|
+
}, [reset, userInteractions]);
|
|
155
153
|
useEffect(() => {
|
|
156
154
|
const newVisibleColumnKeys = !initialVisibleColumnKeys || (initialVisibleColumnKeys || []).length === 0 ? defaultVisibleColumnKeys : initialVisibleColumnKeys;
|
|
157
155
|
visibleColumnCount.current = newVisibleColumnKeys.length;
|
|
@@ -170,10 +168,10 @@ export const PlainConfluenceSearchConfigModal = props => {
|
|
|
170
168
|
// TODO: common functionality of all modals refactor in EDM-9573
|
|
171
169
|
const handleVisibleColumnKeysChange = useCallback((newVisibleColumnKeys = []) => {
|
|
172
170
|
const columnAction = getColumnAction(visibleColumnKeys || [], newVisibleColumnKeys);
|
|
173
|
-
|
|
171
|
+
userInteractions.add(columnAction);
|
|
174
172
|
visibleColumnCount.current = newVisibleColumnKeys.length;
|
|
175
173
|
setVisibleColumnKeys(newVisibleColumnKeys);
|
|
176
|
-
}, [visibleColumnKeys]);
|
|
174
|
+
}, [visibleColumnKeys, userInteractions]);
|
|
177
175
|
|
|
178
176
|
// TODO: further refactoring in EDM-9573
|
|
179
177
|
// https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/pull-requests/82725/overview?commentId=6798258
|
|
@@ -189,13 +187,12 @@ export const PlainConfluenceSearchConfigModal = props => {
|
|
|
189
187
|
onNextPage: onNextPage,
|
|
190
188
|
onLoadDatasourceDetails: loadDatasourceDetails,
|
|
191
189
|
onVisibleColumnKeysChange: handleVisibleColumnKeysChange,
|
|
192
|
-
parentContainerRenderInstanceId: modalRenderInstanceId,
|
|
193
190
|
extensionKey: extensionKey,
|
|
194
191
|
columnCustomSizes: columnCustomSizes,
|
|
195
192
|
onColumnResize: onColumnResize,
|
|
196
193
|
wrappedColumnKeys: wrappedColumnKeys,
|
|
197
194
|
onWrappedColumnChange: getBooleanFF('platform.linking-platform.datasource-word_wrap') ? onWrappedColumnChange : undefined
|
|
198
|
-
})), [status, columns, responseItems, hasNextPage, visibleColumnKeys, defaultVisibleColumnKeys, onNextPage, loadDatasourceDetails, handleVisibleColumnKeysChange,
|
|
195
|
+
})), [status, columns, responseItems, hasNextPage, visibleColumnKeys, defaultVisibleColumnKeys, onNextPage, loadDatasourceDetails, handleVisibleColumnKeysChange, extensionKey, columnCustomSizes, onColumnResize, wrappedColumnKeys, onWrappedColumnChange]);
|
|
199
196
|
const resolvedWithNoResults = status === 'resolved' && !responseItems.length;
|
|
200
197
|
const hasConfluenceSearchParams = selectedConfluenceSite && searchString;
|
|
201
198
|
const selectedConfluenceSiteUrl = selectedConfluenceSite === null || selectedConfluenceSite === void 0 ? void 0 : selectedConfluenceSite.url;
|
|
@@ -224,8 +221,8 @@ export const PlainConfluenceSearchConfigModal = props => {
|
|
|
224
221
|
extensionKey,
|
|
225
222
|
destinationObjectTypes,
|
|
226
223
|
searchCount: searchCount.current,
|
|
227
|
-
actions:
|
|
228
|
-
}), [destinationObjectTypes, extensionKey]);
|
|
224
|
+
actions: userInteractions.get()
|
|
225
|
+
}), [destinationObjectTypes, extensionKey, userInteractions]);
|
|
229
226
|
const isDataReady = (visibleColumnKeys || []).length > 0;
|
|
230
227
|
const fireInlineViewedEvent = useCallback(() => {
|
|
231
228
|
fireEvent('ui.link.viewed.count', {
|
|
@@ -311,7 +308,7 @@ export const PlainConfluenceSearchConfigModal = props => {
|
|
|
311
308
|
display: currentViewMode === 'inline' ? DatasourceDisplay.DATASOURCE_INLINE : DatasourceDisplay.DATASOURCE_TABLE,
|
|
312
309
|
searchCount: searchCount.current,
|
|
313
310
|
searchMethod: DatasourceSearchMethod.DATASOURCE_SEARCH_QUERY,
|
|
314
|
-
actions:
|
|
311
|
+
actions: userInteractions.get()
|
|
315
312
|
},
|
|
316
313
|
eventType: 'ui'
|
|
317
314
|
});
|
|
@@ -351,14 +348,14 @@ export const PlainConfluenceSearchConfigModal = props => {
|
|
|
351
348
|
}]
|
|
352
349
|
}, confluenceSearchUrl), consumerEvent);
|
|
353
350
|
}
|
|
354
|
-
}, [isParametersSet, cloudId, analyticsPayload, totalCount, currentViewMode, onInsert, confluenceSearchUrl, datasourceId, parametersToSend, visibleColumnKeys, columnCustomSizes, wrappedColumnKeys]);
|
|
351
|
+
}, [isParametersSet, cloudId, analyticsPayload, totalCount, currentViewMode, onInsert, confluenceSearchUrl, datasourceId, parametersToSend, visibleColumnKeys, columnCustomSizes, wrappedColumnKeys, userInteractions]);
|
|
355
352
|
const handleViewModeChange = selectedMode => {
|
|
356
|
-
|
|
353
|
+
userInteractions.add(DatasourceAction.DISPLAY_VIEW_CHANGED);
|
|
357
354
|
setCurrentViewMode(selectedMode);
|
|
358
355
|
};
|
|
359
356
|
const onSearch = useCallback((newSearchString, filters) => {
|
|
360
357
|
searchCount.current++;
|
|
361
|
-
|
|
358
|
+
userInteractions.add(DatasourceAction.QUERY_UPDATED);
|
|
362
359
|
if (filters) {
|
|
363
360
|
const {
|
|
364
361
|
editedOrCreatedBy,
|
|
@@ -383,16 +380,16 @@ export const PlainConfluenceSearchConfigModal = props => {
|
|
|
383
380
|
reset({
|
|
384
381
|
shouldForceRequest: true
|
|
385
382
|
});
|
|
386
|
-
}, [reset]);
|
|
383
|
+
}, [reset, userInteractions]);
|
|
387
384
|
const isInsertDisabled = !isParametersSet || status === 'rejected' || status === 'unauthorized' || status === 'loading';
|
|
388
385
|
const getCancelButtonAnalyticsPayload = useCallback(() => {
|
|
389
386
|
return {
|
|
390
387
|
extensionKey,
|
|
391
388
|
destinationObjectTypes,
|
|
392
389
|
searchCount: searchCount.current,
|
|
393
|
-
actions:
|
|
390
|
+
actions: userInteractions.get()
|
|
394
391
|
};
|
|
395
|
-
}, [destinationObjectTypes, extensionKey]);
|
|
392
|
+
}, [destinationObjectTypes, extensionKey, userInteractions]);
|
|
396
393
|
return jsx(IntlMessagesProvider, {
|
|
397
394
|
defaultMessages: i18nEN,
|
|
398
395
|
loaderFn: fetchMessagesForLocale
|
|
@@ -424,7 +421,9 @@ export const PlainConfluenceSearchConfigModal = props => {
|
|
|
424
421
|
}, jsx(LinkUrl, {
|
|
425
422
|
href: confluenceSearchUrl,
|
|
426
423
|
target: "_blank",
|
|
427
|
-
testId: "item-count-url"
|
|
424
|
+
testId: "item-count-url"
|
|
425
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
426
|
+
,
|
|
428
427
|
style: {
|
|
429
428
|
color: `var(--ds-text-accent-gray, ${N800})`
|
|
430
429
|
}
|
|
@@ -458,4 +457,4 @@ const contextData = {
|
|
|
458
457
|
...analyticsContextAttributes
|
|
459
458
|
}
|
|
460
459
|
};
|
|
461
|
-
export const ConfluenceSearchConfigModal = withAnalyticsContext(contextData)(PlainConfluenceSearchConfigModal);
|
|
460
|
+
export const ConfluenceSearchConfigModal = withAnalyticsContext(contextData)(props => jsx(DatasourceExperienceIdProvider, null, jsx(UserInteractionsProvider, null, jsx(PlainConfluenceSearchConfigModal, props))));
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/** @jsx jsx */
|
|
2
2
|
import { useCallback, useEffect, useRef } from 'react';
|
|
3
3
|
import { css, jsx } from '@emotion/react';
|
|
4
|
-
import { v4 as uuidv4 } from 'uuid';
|
|
5
4
|
import { withAnalyticsContext } from '@atlaskit/analytics-next';
|
|
6
5
|
import { IntlMessagesProvider } from '@atlaskit/intl-messages-provider';
|
|
7
6
|
import { useDatasourceAnalyticsEvents } from '../../analytics';
|
|
@@ -10,6 +9,7 @@ import { startUfoExperience } from '../../analytics/ufoExperiences';
|
|
|
10
9
|
import { useColumnPickerRenderedFailedUfoExperience } from '../../analytics/ufoExperiences/hooks/useColumnPickerRenderedFailedUfoExperience';
|
|
11
10
|
import { useDataRenderedUfoExperience } from '../../analytics/ufoExperiences/hooks/useDataRenderedUfoExperience';
|
|
12
11
|
import { fetchMessagesForLocale } from '../../common/utils/locale/fetch-messages-for-locale';
|
|
12
|
+
import { DatasourceExperienceIdProvider, useDatasourceExperienceId } from '../../contexts/datasource-experience-id';
|
|
13
13
|
import { useDatasourceTableState } from '../../hooks/useDatasourceTableState';
|
|
14
14
|
import i18nEN from '../../i18n/en';
|
|
15
15
|
import { ScrollableContainerHeight } from '../../ui/issue-like-table/styled';
|
|
@@ -56,9 +56,7 @@ const DatasourceTableViewWithoutAnalytics = ({
|
|
|
56
56
|
const {
|
|
57
57
|
fireEvent
|
|
58
58
|
} = useDatasourceAnalyticsEvents();
|
|
59
|
-
const
|
|
60
|
-
current: tableRenderInstanceId
|
|
61
|
-
} = useRef(uuidv4());
|
|
59
|
+
const experienceId = useDatasourceExperienceId();
|
|
62
60
|
const visibleColumnCount = useRef((visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.length) || 0);
|
|
63
61
|
|
|
64
62
|
/* Need this to make sure that the datasource in the editor gets updated new info if any edits are made in the modal
|
|
@@ -97,13 +95,13 @@ const DatasourceTableViewWithoutAnalytics = ({
|
|
|
97
95
|
if (shouldStartUfoExperience) {
|
|
98
96
|
startUfoExperience({
|
|
99
97
|
name: 'datasource-rendered'
|
|
100
|
-
},
|
|
98
|
+
}, experienceId);
|
|
101
99
|
}
|
|
102
|
-
}, [datasourceId, parameters, status,
|
|
103
|
-
useColumnPickerRenderedFailedUfoExperience(status,
|
|
100
|
+
}, [datasourceId, parameters, status, experienceId, visibleColumnKeys]);
|
|
101
|
+
useColumnPickerRenderedFailedUfoExperience(status, experienceId);
|
|
104
102
|
useDataRenderedUfoExperience({
|
|
105
103
|
status,
|
|
106
|
-
experienceId:
|
|
104
|
+
experienceId: experienceId,
|
|
107
105
|
itemCount: responseItems.length,
|
|
108
106
|
extensionKey
|
|
109
107
|
});
|
|
@@ -167,7 +165,6 @@ const DatasourceTableViewWithoutAnalytics = ({
|
|
|
167
165
|
wrappedColumnKeys: wrappedColumnKeys,
|
|
168
166
|
onWrappedColumnChange: onWrappedColumnChange,
|
|
169
167
|
scrollableContainerHeight: ScrollableContainerHeight,
|
|
170
|
-
parentContainerRenderInstanceId: tableRenderInstanceId,
|
|
171
168
|
extensionKey: extensionKey
|
|
172
169
|
}) : jsx(EmptyState, {
|
|
173
170
|
testId: "datasource-table-view-skeleton",
|
|
@@ -180,4 +177,4 @@ const DatasourceTableViewWithoutAnalytics = ({
|
|
|
180
177
|
url: url
|
|
181
178
|
})));
|
|
182
179
|
};
|
|
183
|
-
export const DatasourceTableView = withAnalyticsContext(componentMetadata.tableView)(DatasourceTableViewWithoutAnalytics);
|
|
180
|
+
export const DatasourceTableView = withAnalyticsContext(componentMetadata.tableView)(props => jsx(DatasourceExperienceIdProvider, null, jsx(DatasourceTableViewWithoutAnalytics, props)));
|
|
@@ -23,7 +23,9 @@ export const ConcatenatedMenuList = ({
|
|
|
23
23
|
padding: `${"var(--ds-space-050, 4px)"} ${"var(--ds-space-200, 16px)"}`,
|
|
24
24
|
height: 'auto'
|
|
25
25
|
};
|
|
26
|
-
const maximumLimitReachedMessage =
|
|
26
|
+
const maximumLimitReachedMessage =
|
|
27
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
28
|
+
jsx("div", {
|
|
27
29
|
css: messageStyles,
|
|
28
30
|
style: optionStyle
|
|
29
31
|
}, jsx(FormattedMessage, _extends({
|
|
@@ -9,16 +9,17 @@ import ChevronDownIcon from '@atlaskit/icon/glyph/chevron-down';
|
|
|
9
9
|
import { CheckboxOption, createFilter, PopupSelect } from '@atlaskit/select';
|
|
10
10
|
import Tooltip from '@atlaskit/tooltip';
|
|
11
11
|
import { succeedUfoExperience } from '../../../analytics/ufoExperiences';
|
|
12
|
+
import { useDatasourceExperienceId } from '../../../contexts/datasource-experience-id';
|
|
12
13
|
import { ConcatenatedMenuList } from './concatenated-menu-list';
|
|
13
14
|
import { columnPickerMessages } from './messages';
|
|
14
15
|
export const ColumnPicker = ({
|
|
15
16
|
columns,
|
|
16
17
|
selectedColumnKeys,
|
|
17
18
|
onSelectedColumnKeysChange,
|
|
18
|
-
onOpen
|
|
19
|
-
parentContainerRenderInstanceId
|
|
19
|
+
onOpen
|
|
20
20
|
}) => {
|
|
21
21
|
const intl = useIntl();
|
|
22
|
+
const experienceId = useDatasourceExperienceId();
|
|
22
23
|
const [allOptions, setAllOptions] = useState([]);
|
|
23
24
|
const pickerRef = useRef(null);
|
|
24
25
|
const mapColumnToOption = useCallback(({
|
|
@@ -82,13 +83,13 @@ export const ColumnPicker = ({
|
|
|
82
83
|
}, [allOptions]);
|
|
83
84
|
useEffect(() => {
|
|
84
85
|
if (allOptions.length) {
|
|
85
|
-
if (
|
|
86
|
+
if (experienceId) {
|
|
86
87
|
succeedUfoExperience({
|
|
87
88
|
name: 'column-picker-rendered'
|
|
88
|
-
},
|
|
89
|
+
}, experienceId);
|
|
89
90
|
}
|
|
90
91
|
}
|
|
91
|
-
}, [allOptions,
|
|
92
|
+
}, [allOptions, experienceId]);
|
|
92
93
|
return jsx(PopupSelect, {
|
|
93
94
|
classNamePrefix: 'column-picker-popup',
|
|
94
95
|
testId: 'column-picker-popup',
|
|
@@ -306,7 +306,9 @@ export const DraggableTableHeading = ({
|
|
|
306
306
|
ref: mainHeaderCellRef,
|
|
307
307
|
"data-testid": `${id}-column-heading`,
|
|
308
308
|
style: {
|
|
309
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
309
310
|
cursor: 'grab',
|
|
311
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
310
312
|
...getWidthCss({
|
|
311
313
|
shouldUseWidth: resizeIsEnabled,
|
|
312
314
|
width
|
|
@@ -103,8 +103,11 @@ export default (({
|
|
|
103
103
|
style: {
|
|
104
104
|
// the IssueLikeDataTableView wraps the table in a container with the styling below while modal doesn't
|
|
105
105
|
// this maxHeight comes from scrollableContainerHeight
|
|
106
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
106
107
|
maxHeight: ScrollableContainerHeight,
|
|
108
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
107
109
|
padding: "var(--ds-space-0, 0px)",
|
|
110
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
108
111
|
boxSizing: 'border-box'
|
|
109
112
|
}
|
|
110
113
|
}, jsx("table", {
|
|
@@ -117,7 +120,9 @@ export default (({
|
|
|
117
120
|
}, jsx("tr", null, columnsToRender.map(({
|
|
118
121
|
key,
|
|
119
122
|
width
|
|
120
|
-
}) =>
|
|
123
|
+
}) =>
|
|
124
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
125
|
+
jsx(TableHeading, {
|
|
121
126
|
key: key,
|
|
122
127
|
style: {
|
|
123
128
|
width,
|
|
@@ -18,6 +18,7 @@ import Tooltip from '@atlaskit/tooltip';
|
|
|
18
18
|
import { WidthObserver } from '@atlaskit/width-detector';
|
|
19
19
|
import { startUfoExperience, succeedUfoExperience } from '../../analytics/ufoExperiences';
|
|
20
20
|
import { stickyTableHeadersIndex } from '../../common/zindex';
|
|
21
|
+
import { useDatasourceExperienceId } from '../../contexts/datasource-experience-id';
|
|
21
22
|
import { ColumnPicker } from './column-picker';
|
|
22
23
|
import { DragColumnPreview } from './drag-column-preview';
|
|
23
24
|
import { DraggableTableHeading } from './draggable-table-heading';
|
|
@@ -317,11 +318,11 @@ export const IssueLikeDataTableView = ({
|
|
|
317
318
|
status,
|
|
318
319
|
hasNextPage,
|
|
319
320
|
scrollableContainerHeight,
|
|
320
|
-
parentContainerRenderInstanceId,
|
|
321
321
|
extensionKey
|
|
322
322
|
}) => {
|
|
323
323
|
const tableId = useMemo(() => Symbol('unique-id'), []);
|
|
324
324
|
const intl = useIntl();
|
|
325
|
+
const experienceId = useDatasourceExperienceId();
|
|
325
326
|
const tableHeaderRowRef = useRef(null);
|
|
326
327
|
const [lastRowElement, setLastRowElement] = useState(null);
|
|
327
328
|
const [hasFullSchema, setHasFullSchema] = useState(false);
|
|
@@ -346,12 +347,12 @@ export const IssueLikeDataTableView = ({
|
|
|
346
347
|
}
|
|
347
348
|
}, [columns, visibleColumnKeys, hasFullSchema]);
|
|
348
349
|
useEffect(() => {
|
|
349
|
-
if (
|
|
350
|
+
if (experienceId && status === 'resolved') {
|
|
350
351
|
succeedUfoExperience({
|
|
351
352
|
name: 'datasource-rendered'
|
|
352
|
-
},
|
|
353
|
+
}, experienceId);
|
|
353
354
|
}
|
|
354
|
-
}, [
|
|
355
|
+
}, [experienceId, status]);
|
|
355
356
|
const visibleSortedColumns = useMemo(() => visibleColumnKeys.map(visibleKey => orderedColumns.find(({
|
|
356
357
|
key
|
|
357
358
|
}) => visibleKey === key)).filter(Boolean), [orderedColumns, visibleColumnKeys]);
|
|
@@ -536,13 +537,13 @@ export const IssueLikeDataTableView = ({
|
|
|
536
537
|
if (hasFullSchema) {
|
|
537
538
|
return;
|
|
538
539
|
}
|
|
539
|
-
if (
|
|
540
|
+
if (experienceId) {
|
|
540
541
|
startUfoExperience({
|
|
541
542
|
name: 'column-picker-rendered',
|
|
542
543
|
metadata: {
|
|
543
544
|
extensionKey: extensionKey !== null && extensionKey !== void 0 ? extensionKey : undefined
|
|
544
545
|
}
|
|
545
|
-
},
|
|
546
|
+
}, experienceId);
|
|
546
547
|
}
|
|
547
548
|
try {
|
|
548
549
|
await onLoadDatasourceDetails();
|
|
@@ -550,7 +551,7 @@ export const IssueLikeDataTableView = ({
|
|
|
550
551
|
} catch (e) {
|
|
551
552
|
setHasFullSchema(false);
|
|
552
553
|
}
|
|
553
|
-
}, [
|
|
554
|
+
}, [experienceId, extensionKey, hasFullSchema, onLoadDatasourceDetails]);
|
|
554
555
|
const isEditable = onVisibleColumnKeysChange && hasData;
|
|
555
556
|
return jsx("div", {
|
|
556
557
|
/* There is required contentEditable={true} in editor-card-plugin
|
|
@@ -559,7 +560,9 @@ export const IssueLikeDataTableView = ({
|
|
|
559
560
|
*/
|
|
560
561
|
contentEditable: false,
|
|
561
562
|
ref: containerRef,
|
|
562
|
-
css: [tableContainerStyles, scrollableContainerHeight && scrollableContainerStyles]
|
|
563
|
+
css: [tableContainerStyles, scrollableContainerHeight && scrollableContainerStyles]
|
|
564
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
565
|
+
,
|
|
563
566
|
style: scrollableContainerHeight ? {
|
|
564
567
|
maxHeight: `${scrollableContainerHeight}px`
|
|
565
568
|
} : undefined,
|
|
@@ -568,13 +571,17 @@ export const IssueLikeDataTableView = ({
|
|
|
568
571
|
setWidth: debounce(setTableContainerWidth, 100)
|
|
569
572
|
}), jsx(Table, {
|
|
570
573
|
css: tableStyles,
|
|
571
|
-
"data-testid": testId
|
|
574
|
+
"data-testid": testId
|
|
575
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
576
|
+
,
|
|
572
577
|
style: shouldUseWidth ? {
|
|
573
578
|
tableLayout: 'fixed'
|
|
574
579
|
} : {}
|
|
575
580
|
}, jsx("thead", {
|
|
576
581
|
"data-testid": testId && `${testId}--head`,
|
|
577
|
-
css: [noDefaultBorderStyles, tableHeadStyles]
|
|
582
|
+
css: [noDefaultBorderStyles, tableHeadStyles]
|
|
583
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
584
|
+
,
|
|
578
585
|
className: !!onVisibleColumnKeysChange ? 'has-column-picker' : ''
|
|
579
586
|
}, jsx("tr", {
|
|
580
587
|
ref: tableHeaderRowRef
|
|
@@ -628,7 +635,9 @@ export const IssueLikeDataTableView = ({
|
|
|
628
635
|
} else {
|
|
629
636
|
return jsx(TableHeading, {
|
|
630
637
|
key: key,
|
|
631
|
-
"data-testid": `${key}-column-heading
|
|
638
|
+
"data-testid": `${key}-column-heading`
|
|
639
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
640
|
+
,
|
|
632
641
|
style: getWidthCss({
|
|
633
642
|
shouldUseWidth,
|
|
634
643
|
width
|
|
@@ -639,8 +648,7 @@ export const IssueLikeDataTableView = ({
|
|
|
639
648
|
columns: hasFullSchema ? orderedColumns : [],
|
|
640
649
|
selectedColumnKeys: hasFullSchema ? visibleColumnKeys : [],
|
|
641
650
|
onSelectedColumnKeysChange: onSelectedColumnKeysChange,
|
|
642
|
-
onOpen: handlePickerOpen
|
|
643
|
-
parentContainerRenderInstanceId: parentContainerRenderInstanceId
|
|
651
|
+
onOpen: handlePickerOpen
|
|
644
652
|
})))), jsx("tbody", {
|
|
645
653
|
css: noDefaultBorderStyles,
|
|
646
654
|
"data-testid": testId && `${testId}--body`
|
|
@@ -672,7 +680,9 @@ export const IssueLikeDataTableView = ({
|
|
|
672
680
|
return jsx(TableCell, {
|
|
673
681
|
key: cellKey,
|
|
674
682
|
"data-testid": testId && `${testId}--cell-${cellIndex}`,
|
|
675
|
-
colSpan: isEditable && isLastCell ? 2 : undefined
|
|
683
|
+
colSpan: isEditable && isLastCell ? 2 : undefined
|
|
684
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
685
|
+
,
|
|
676
686
|
style: loadingRowStyle,
|
|
677
687
|
css: [wrappedColumnKeys !== null && wrappedColumnKeys !== void 0 && wrappedColumnKeys.includes(cellKey) ? null : truncateStyles]
|
|
678
688
|
}, content);
|
|
@@ -16,7 +16,9 @@ const IconRenderType = ({
|
|
|
16
16
|
return /*#__PURE__*/React.createElement(IconWrapper, null, /*#__PURE__*/React.createElement(Image, {
|
|
17
17
|
src: source,
|
|
18
18
|
alt: label,
|
|
19
|
-
"data-testid": testId
|
|
19
|
+
"data-testid": testId
|
|
20
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
21
|
+
,
|
|
20
22
|
style: {
|
|
21
23
|
minWidth: '20px',
|
|
22
24
|
maxWidth: '20px'
|
|
@@ -26,7 +26,9 @@ const LinkRenderType = ({
|
|
|
26
26
|
const anchor = useMemo(() => /*#__PURE__*/React.createElement(HoverCard, {
|
|
27
27
|
url: url
|
|
28
28
|
}, /*#__PURE__*/React.createElement(LinkUrl, {
|
|
29
|
-
href: url
|
|
29
|
+
href: url
|
|
30
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
31
|
+
,
|
|
30
32
|
style: {
|
|
31
33
|
...linkStyle,
|
|
32
34
|
fontSize: fieldTextFontSize
|