@atlaskit/link-datasource 2.3.3 → 2.3.4
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 +9 -0
- package/dist/cjs/contexts/datasource-experience-id/index.js +28 -0
- package/dist/cjs/ui/assets-modal/modal/index.js +11 -10
- package/dist/cjs/ui/assets-modal/modal/render-assets-content/index.js +2 -4
- package/dist/cjs/ui/confluence-search-modal/modal/index.js +8 -7
- package/dist/cjs/ui/datasource-table-view/datasourceTableView.js +9 -9
- package/dist/cjs/ui/issue-like-table/column-picker/index.js +6 -5
- package/dist/cjs/ui/issue-like-table/index.js +9 -9
- package/dist/cjs/ui/jira-issues-modal/modal/index.js +15 -13
- package/dist/es2019/contexts/datasource-experience-id/index.js +19 -0
- package/dist/es2019/ui/assets-modal/modal/index.js +9 -11
- package/dist/es2019/ui/assets-modal/modal/render-assets-content/index.js +2 -4
- package/dist/es2019/ui/confluence-search-modal/modal/index.js +6 -8
- package/dist/es2019/ui/datasource-table-view/datasourceTableView.js +7 -10
- package/dist/es2019/ui/issue-like-table/column-picker/index.js +6 -5
- package/dist/es2019/ui/issue-like-table/index.js +9 -9
- package/dist/es2019/ui/jira-issues-modal/modal/index.js +12 -13
- package/dist/esm/contexts/datasource-experience-id/index.js +20 -0
- package/dist/esm/ui/assets-modal/modal/index.js +11 -10
- package/dist/esm/ui/assets-modal/modal/render-assets-content/index.js +2 -4
- package/dist/esm/ui/confluence-search-modal/modal/index.js +8 -7
- package/dist/esm/ui/datasource-table-view/datasourceTableView.js +9 -9
- package/dist/esm/ui/issue-like-table/column-picker/index.js +6 -5
- package/dist/esm/ui/issue-like-table/index.js +9 -9
- package/dist/esm/ui/jira-issues-modal/modal/index.js +14 -12
- package/dist/types/contexts/datasource-experience-id/index.d.ts +4 -0
- 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/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 +2 -2
|
@@ -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)));
|
|
@@ -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',
|
|
@@ -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
|
|
@@ -639,8 +640,7 @@ export const IssueLikeDataTableView = ({
|
|
|
639
640
|
columns: hasFullSchema ? orderedColumns : [],
|
|
640
641
|
selectedColumnKeys: hasFullSchema ? visibleColumnKeys : [],
|
|
641
642
|
onSelectedColumnKeysChange: onSelectedColumnKeysChange,
|
|
642
|
-
onOpen: handlePickerOpen
|
|
643
|
-
parentContainerRenderInstanceId: parentContainerRenderInstanceId
|
|
643
|
+
onOpen: handlePickerOpen
|
|
644
644
|
})))), jsx("tbody", {
|
|
645
645
|
css: noDefaultBorderStyles,
|
|
646
646
|
"data-testid": testId && `${testId}--body`
|
|
@@ -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 { css, 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';
|
|
@@ -20,6 +19,7 @@ import { useDataRenderedUfoExperience } from '../../../analytics/ufoExperiences/
|
|
|
20
19
|
import { mapSearchMethod } from '../../../analytics/utils';
|
|
21
20
|
import { buildDatasourceAdf } from '../../../common/utils/adf';
|
|
22
21
|
import { fetchMessagesForLocale } from '../../../common/utils/locale/fetch-messages-for-locale';
|
|
22
|
+
import { DatasourceExperienceIdProvider, useDatasourceExperienceId } from '../../../contexts/datasource-experience-id';
|
|
23
23
|
import { useDatasourceTableState } from '../../../hooks/useDatasourceTableState';
|
|
24
24
|
import i18nEN from '../../../i18n/en';
|
|
25
25
|
import { useAvailableSites } from '../../../services/useAvailableSites';
|
|
@@ -56,7 +56,7 @@ const getDisplayValue = (currentViewMode, itemCount) => {
|
|
|
56
56
|
return itemCount === 1 ? DatasourceDisplay.INLINE : DatasourceDisplay.DATASOURCE_INLINE;
|
|
57
57
|
};
|
|
58
58
|
const jqlSupportDocumentLink = 'https://support.atlassian.com/jira-service-management-cloud/docs/use-advanced-search-with-jira-query-language-jql/';
|
|
59
|
-
|
|
59
|
+
const PlainJiraIssuesConfigModal = props => {
|
|
60
60
|
const {
|
|
61
61
|
datasourceId,
|
|
62
62
|
columnCustomSizes: initialColumnCustomSizes,
|
|
@@ -120,9 +120,7 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
120
120
|
const {
|
|
121
121
|
fireEvent
|
|
122
122
|
} = useDatasourceAnalyticsEvents();
|
|
123
|
-
const
|
|
124
|
-
current: modalRenderInstanceId
|
|
125
|
-
} = useRef(uuidv4());
|
|
123
|
+
const experienceId = useDatasourceExperienceId();
|
|
126
124
|
const analyticsPayload = useMemo(() => ({
|
|
127
125
|
extensionKey,
|
|
128
126
|
destinationObjectTypes
|
|
@@ -146,12 +144,12 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
146
144
|
if (shouldStartUfoExperience) {
|
|
147
145
|
startUfoExperience({
|
|
148
146
|
name: 'datasource-rendered'
|
|
149
|
-
},
|
|
147
|
+
}, experienceId);
|
|
150
148
|
}
|
|
151
|
-
}, [
|
|
149
|
+
}, [experienceId, status]);
|
|
152
150
|
useDataRenderedUfoExperience({
|
|
153
151
|
status,
|
|
154
|
-
experienceId:
|
|
152
|
+
experienceId: experienceId,
|
|
155
153
|
itemCount: responseItems.length,
|
|
156
154
|
canBeLink: currentViewMode === 'inline',
|
|
157
155
|
extensionKey
|
|
@@ -212,7 +210,7 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
212
210
|
fireCountViewedEvent();
|
|
213
211
|
}
|
|
214
212
|
}, [currentViewMode, status, fireIssueViewAnalytics, fireCountViewedEvent]);
|
|
215
|
-
useColumnPickerRenderedFailedUfoExperience(status,
|
|
213
|
+
useColumnPickerRenderedFailedUfoExperience(status, experienceId);
|
|
216
214
|
const onSearch = useCallback((newParameters, {
|
|
217
215
|
searchMethod,
|
|
218
216
|
basicFilterSelections,
|
|
@@ -362,13 +360,12 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
362
360
|
onNextPage: handleOnNextPage,
|
|
363
361
|
onLoadDatasourceDetails: loadDatasourceDetails,
|
|
364
362
|
onVisibleColumnKeysChange: handleVisibleColumnKeysChange,
|
|
365
|
-
parentContainerRenderInstanceId: modalRenderInstanceId,
|
|
366
363
|
extensionKey: extensionKey,
|
|
367
364
|
columnCustomSizes: columnCustomSizes,
|
|
368
365
|
onColumnResize: onColumnResize,
|
|
369
366
|
wrappedColumnKeys: wrappedColumnKeys,
|
|
370
367
|
onWrappedColumnChange: getBooleanFF('platform.linking-platform.datasource-word_wrap') ? onWrappedColumnChange : undefined
|
|
371
|
-
})), [status, columns, responseItems, hasNextPage, visibleColumnKeys, defaultVisibleColumnKeys, handleOnNextPage, loadDatasourceDetails, handleVisibleColumnKeysChange,
|
|
368
|
+
})), [status, columns, responseItems, hasNextPage, visibleColumnKeys, defaultVisibleColumnKeys, handleOnNextPage, loadDatasourceDetails, handleVisibleColumnKeysChange, extensionKey, columnCustomSizes, onColumnResize, wrappedColumnKeys, onWrappedColumnChange]);
|
|
372
369
|
const renderCountModeContent = useCallback(() => {
|
|
373
370
|
const selectedJiraSiteUrl = selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url;
|
|
374
371
|
if (status === 'unauthorized') {
|
|
@@ -470,7 +467,9 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
470
467
|
}, jsx(LinkUrl, {
|
|
471
468
|
href: jqlUrl,
|
|
472
469
|
target: "_blank",
|
|
473
|
-
testId: "item-count-url"
|
|
470
|
+
testId: "item-count-url"
|
|
471
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
|
|
472
|
+
,
|
|
474
473
|
style: {
|
|
475
474
|
color: `var(--ds-text-accent-gray, ${N800})`
|
|
476
475
|
}
|
|
@@ -504,4 +503,4 @@ const contextData = {
|
|
|
504
503
|
...analyticsContextAttributes
|
|
505
504
|
}
|
|
506
505
|
};
|
|
507
|
-
export const JiraIssuesConfigModal = withAnalyticsContext(contextData)(PlainJiraIssuesConfigModal);
|
|
506
|
+
export const JiraIssuesConfigModal = withAnalyticsContext(contextData)(props => jsx(DatasourceExperienceIdProvider, null, jsx(PlainJiraIssuesConfigModal, props)));
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React, { useContext, useMemo } from 'react';
|
|
2
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
3
|
+
var DatasourceExperienceIdContext = /*#__PURE__*/React.createContext(undefined);
|
|
4
|
+
var DatasourceExperienceIdProvider = function DatasourceExperienceIdProvider(_ref) {
|
|
5
|
+
var children = _ref.children;
|
|
6
|
+
var value = useMemo(function () {
|
|
7
|
+
return uuidv4();
|
|
8
|
+
}, []);
|
|
9
|
+
return /*#__PURE__*/React.createElement(DatasourceExperienceIdContext.Provider, {
|
|
10
|
+
value: value
|
|
11
|
+
}, children);
|
|
12
|
+
};
|
|
13
|
+
var useDatasourceExperienceId = function useDatasourceExperienceId() {
|
|
14
|
+
var context = useContext(DatasourceExperienceIdContext);
|
|
15
|
+
if (!context) {
|
|
16
|
+
throw Error('useDatasourceExperienceId() must be wrapped in <DatasourceExperienceIdProvider>');
|
|
17
|
+
}
|
|
18
|
+
return context;
|
|
19
|
+
};
|
|
20
|
+
export { DatasourceExperienceIdProvider, useDatasourceExperienceId };
|
|
@@ -7,7 +7,6 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
7
7
|
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
8
8
|
import { css, jsx } from '@emotion/react';
|
|
9
9
|
import { FormattedMessage } from 'react-intl-next';
|
|
10
|
-
import { v4 as uuidv4 } from 'uuid';
|
|
11
10
|
import { withAnalyticsContext } from '@atlaskit/analytics-next';
|
|
12
11
|
import Button from '@atlaskit/button/standard-button';
|
|
13
12
|
import { IntlMessagesProvider } from '@atlaskit/intl-messages-provider';
|
|
@@ -20,6 +19,7 @@ import { useColumnPickerRenderedFailedUfoExperience } from '../../../analytics/u
|
|
|
20
19
|
import { useDataRenderedUfoExperience } from '../../../analytics/ufoExperiences/hooks/useDataRenderedUfoExperience';
|
|
21
20
|
import { buildDatasourceAdf } from '../../../common/utils/adf';
|
|
22
21
|
import { fetchMessagesForLocale } from '../../../common/utils/locale/fetch-messages-for-locale';
|
|
22
|
+
import { DatasourceExperienceIdProvider, useDatasourceExperienceId } from '../../../contexts/datasource-experience-id';
|
|
23
23
|
import { useAssetsClient } from '../../../hooks/useAssetsClient';
|
|
24
24
|
import { useDatasourceTableState } from '../../../hooks/useDatasourceTableState';
|
|
25
25
|
import i18nEN from '../../../i18n/en';
|
|
@@ -35,6 +35,7 @@ import { MODAL_HEIGHT, RenderAssetsContent } from './render-assets-content';
|
|
|
35
35
|
var modalBodyErrorWrapperStyles = css({
|
|
36
36
|
alignItems: 'center',
|
|
37
37
|
display: 'grid',
|
|
38
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values
|
|
38
39
|
height: MODAL_HEIGHT
|
|
39
40
|
});
|
|
40
41
|
var AssetsModalTitle = jsx(ModalTitle, null, jsx(FormattedMessage, modalMessages.insertObjectsTitle));
|
|
@@ -66,8 +67,7 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
|
|
|
66
67
|
setErrorState = _useState10[1];
|
|
67
68
|
var _useDatasourceAnalyti = useDatasourceAnalyticsEvents(),
|
|
68
69
|
fireEvent = _useDatasourceAnalyti.fireEvent;
|
|
69
|
-
var
|
|
70
|
-
modalRenderInstanceId = _useRef.current;
|
|
70
|
+
var experienceId = useDatasourceExperienceId();
|
|
71
71
|
var _useAssetsClient = useAssetsClient(initialParameters),
|
|
72
72
|
workspaceId = _useAssetsClient.workspaceId,
|
|
73
73
|
workspaceError = _useAssetsClient.workspaceError,
|
|
@@ -176,17 +176,17 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
|
|
|
176
176
|
if (shouldStartUfoExperience) {
|
|
177
177
|
startUfoExperience({
|
|
178
178
|
name: 'datasource-rendered'
|
|
179
|
-
},
|
|
179
|
+
}, experienceId);
|
|
180
180
|
}
|
|
181
|
-
}, [
|
|
181
|
+
}, [experienceId, status]);
|
|
182
182
|
useDataRenderedUfoExperience({
|
|
183
183
|
status: status,
|
|
184
|
-
experienceId:
|
|
184
|
+
experienceId: experienceId,
|
|
185
185
|
itemCount: responseItems.length,
|
|
186
186
|
canBeLink: false,
|
|
187
187
|
extensionKey: extensionKey
|
|
188
188
|
});
|
|
189
|
-
useColumnPickerRenderedFailedUfoExperience(status,
|
|
189
|
+
useColumnPickerRenderedFailedUfoExperience(status, experienceId);
|
|
190
190
|
/* ------------------------------ END OBSERVABILITY ------------------------------ */
|
|
191
191
|
|
|
192
192
|
var onVisibleColumnKeysChange = useCallback(function (visibleColumnKeys) {
|
|
@@ -343,8 +343,7 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
|
|
|
343
343
|
hasNextPage: hasNextPage,
|
|
344
344
|
loadDatasourceDetails: loadDatasourceDetails,
|
|
345
345
|
columns: columns,
|
|
346
|
-
defaultVisibleColumnKeys: defaultVisibleColumnKeys
|
|
347
|
-
modalRenderInstanceId: modalRenderInstanceId
|
|
346
|
+
defaultVisibleColumnKeys: defaultVisibleColumnKeys
|
|
348
347
|
})), jsx(ModalFooter, null, jsx(CancelButton, {
|
|
349
348
|
onCancel: onCancel,
|
|
350
349
|
getAnalyticsPayload: getCancelButtonAnalyticsPayload,
|
|
@@ -369,4 +368,6 @@ var analyticsContextData = _objectSpread(_objectSpread({}, componentMetadata.con
|
|
|
369
368
|
var contextData = _objectSpread(_objectSpread({}, analyticsContextData), {}, {
|
|
370
369
|
attributes: _objectSpread({}, analyticsContextAttributes)
|
|
371
370
|
});
|
|
372
|
-
export var AssetsConfigModal = withAnalyticsContext(contextData)(
|
|
371
|
+
export var AssetsConfigModal = withAnalyticsContext(contextData)(function (props) {
|
|
372
|
+
return jsx(DatasourceExperienceIdProvider, null, jsx(PlainAssetsConfigModal, props));
|
|
373
|
+
});
|
|
@@ -65,7 +65,6 @@ export var RenderAssetsContent = function RenderAssetsContent(props) {
|
|
|
65
65
|
columns = props.columns,
|
|
66
66
|
defaultVisibleColumnKeys = props.defaultVisibleColumnKeys,
|
|
67
67
|
onVisibleColumnKeysChange = props.onVisibleColumnKeysChange,
|
|
68
|
-
modalRenderInstanceId = props.modalRenderInstanceId,
|
|
69
68
|
isFetchingInitialData = props.isFetchingInitialData;
|
|
70
69
|
var resolvedWithNoResults = status === 'resolved' && !responseItems.length;
|
|
71
70
|
var issueLikeDataTableView = useMemo(function () {
|
|
@@ -80,10 +79,9 @@ export var RenderAssetsContent = function RenderAssetsContent(props) {
|
|
|
80
79
|
visibleColumnKeys: visibleColumnKeys || defaultVisibleColumnKeys,
|
|
81
80
|
onNextPage: onNextPage,
|
|
82
81
|
onLoadDatasourceDetails: loadDatasourceDetails,
|
|
83
|
-
onVisibleColumnKeysChange: onVisibleColumnKeysChange
|
|
84
|
-
parentContainerRenderInstanceId: modalRenderInstanceId
|
|
82
|
+
onVisibleColumnKeysChange: onVisibleColumnKeysChange
|
|
85
83
|
}));
|
|
86
|
-
}, [columns, defaultVisibleColumnKeys, hasNextPage, loadDatasourceDetails, onNextPage, onVisibleColumnKeysChange, responseItems, status, visibleColumnKeys
|
|
84
|
+
}, [columns, defaultVisibleColumnKeys, hasNextPage, loadDatasourceDetails, onNextPage, onVisibleColumnKeysChange, responseItems, status, visibleColumnKeys]);
|
|
87
85
|
var renderAssetsContentView = useCallback(function () {
|
|
88
86
|
if (isFetchingInitialData) {
|
|
89
87
|
// Placing this check first as it's a priority before all others
|
|
@@ -7,7 +7,6 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
7
7
|
import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
8
8
|
import { jsx } from '@emotion/react';
|
|
9
9
|
import { FormattedMessage, FormattedNumber } from 'react-intl-next';
|
|
10
|
-
import { v4 as uuidv4 } from 'uuid';
|
|
11
10
|
import { withAnalyticsContext } from '@atlaskit/analytics-next';
|
|
12
11
|
import Button from '@atlaskit/button/standard-button';
|
|
13
12
|
import { IntlMessagesProvider } from '@atlaskit/intl-messages-provider';
|
|
@@ -21,6 +20,7 @@ import { componentMetadata } from '../../../analytics/constants';
|
|
|
21
20
|
import { DatasourceAction, DatasourceDisplay, DatasourceSearchMethod } from '../../../analytics/types';
|
|
22
21
|
import { buildDatasourceAdf } from '../../../common/utils/adf';
|
|
23
22
|
import { fetchMessagesForLocale } from '../../../common/utils/locale/fetch-messages-for-locale';
|
|
23
|
+
import { DatasourceExperienceIdProvider } from '../../../contexts/datasource-experience-id';
|
|
24
24
|
import { useDatasourceTableState } from '../../../hooks/useDatasourceTableState';
|
|
25
25
|
import i18nEN from '../../../i18n/en';
|
|
26
26
|
import { useAvailableSites } from '../../../services/useAvailableSites';
|
|
@@ -52,8 +52,6 @@ var searchCountStyles = xcss({
|
|
|
52
52
|
fontWeight: 600
|
|
53
53
|
});
|
|
54
54
|
export var PlainConfluenceSearchConfigModal = function PlainConfluenceSearchConfigModal(props) {
|
|
55
|
-
var _useRef = useRef(uuidv4()),
|
|
56
|
-
modalRenderInstanceId = _useRef.current;
|
|
57
55
|
var datasourceId = props.datasourceId,
|
|
58
56
|
initialColumnCustomSizes = props.columnCustomSizes,
|
|
59
57
|
initialWrappedColumnKeys = props.wrappedColumnKeys,
|
|
@@ -210,14 +208,13 @@ export var PlainConfluenceSearchConfigModal = function PlainConfluenceSearchConf
|
|
|
210
208
|
onNextPage: onNextPage,
|
|
211
209
|
onLoadDatasourceDetails: loadDatasourceDetails,
|
|
212
210
|
onVisibleColumnKeysChange: handleVisibleColumnKeysChange,
|
|
213
|
-
parentContainerRenderInstanceId: modalRenderInstanceId,
|
|
214
211
|
extensionKey: extensionKey,
|
|
215
212
|
columnCustomSizes: columnCustomSizes,
|
|
216
213
|
onColumnResize: onColumnResize,
|
|
217
214
|
wrappedColumnKeys: wrappedColumnKeys,
|
|
218
215
|
onWrappedColumnChange: getBooleanFF('platform.linking-platform.datasource-word_wrap') ? onWrappedColumnChange : undefined
|
|
219
216
|
}));
|
|
220
|
-
}, [status, columns, responseItems, hasNextPage, visibleColumnKeys, defaultVisibleColumnKeys, onNextPage, loadDatasourceDetails, handleVisibleColumnKeysChange,
|
|
217
|
+
}, [status, columns, responseItems, hasNextPage, visibleColumnKeys, defaultVisibleColumnKeys, onNextPage, loadDatasourceDetails, handleVisibleColumnKeysChange, extensionKey, columnCustomSizes, onColumnResize, wrappedColumnKeys, onWrappedColumnChange]);
|
|
221
218
|
var resolvedWithNoResults = status === 'resolved' && !responseItems.length;
|
|
222
219
|
var hasConfluenceSearchParams = selectedConfluenceSite && searchString;
|
|
223
220
|
var selectedConfluenceSiteUrl = selectedConfluenceSite === null || selectedConfluenceSite === void 0 ? void 0 : selectedConfluenceSite.url;
|
|
@@ -444,7 +441,9 @@ export var PlainConfluenceSearchConfigModal = function PlainConfluenceSearchConf
|
|
|
444
441
|
}, jsx(LinkUrl, {
|
|
445
442
|
href: confluenceSearchUrl,
|
|
446
443
|
target: "_blank",
|
|
447
|
-
testId: "item-count-url"
|
|
444
|
+
testId: "item-count-url"
|
|
445
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
|
|
446
|
+
,
|
|
448
447
|
style: {
|
|
449
448
|
color: "var(--ds-text-accent-gray, ".concat(N800, ")")
|
|
450
449
|
}
|
|
@@ -474,4 +473,6 @@ var analyticsContextData = _objectSpread(_objectSpread({}, componentMetadata.con
|
|
|
474
473
|
var contextData = _objectSpread(_objectSpread({}, analyticsContextData), {}, {
|
|
475
474
|
attributes: _objectSpread({}, analyticsContextAttributes)
|
|
476
475
|
});
|
|
477
|
-
export var ConfluenceSearchConfigModal = withAnalyticsContext(contextData)(
|
|
476
|
+
export var ConfluenceSearchConfigModal = withAnalyticsContext(contextData)(function (props) {
|
|
477
|
+
return jsx(DatasourceExperienceIdProvider, null, jsx(PlainConfluenceSearchConfigModal, props));
|
|
478
|
+
});
|
|
@@ -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';
|
|
@@ -54,8 +54,7 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
|
|
|
54
54
|
authDetails = _useDatasourceTableSt.authDetails;
|
|
55
55
|
var _useDatasourceAnalyti = useDatasourceAnalyticsEvents(),
|
|
56
56
|
fireEvent = _useDatasourceAnalyti.fireEvent;
|
|
57
|
-
var
|
|
58
|
-
tableRenderInstanceId = _useRef.current;
|
|
57
|
+
var experienceId = useDatasourceExperienceId();
|
|
59
58
|
var visibleColumnCount = useRef((visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.length) || 0);
|
|
60
59
|
|
|
61
60
|
/* Need this to make sure that the datasource in the editor gets updated new info if any edits are made in the modal
|
|
@@ -94,13 +93,13 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
|
|
|
94
93
|
if (shouldStartUfoExperience) {
|
|
95
94
|
startUfoExperience({
|
|
96
95
|
name: 'datasource-rendered'
|
|
97
|
-
},
|
|
96
|
+
}, experienceId);
|
|
98
97
|
}
|
|
99
|
-
}, [datasourceId, parameters, status,
|
|
100
|
-
useColumnPickerRenderedFailedUfoExperience(status,
|
|
98
|
+
}, [datasourceId, parameters, status, experienceId, visibleColumnKeys]);
|
|
99
|
+
useColumnPickerRenderedFailedUfoExperience(status, experienceId);
|
|
101
100
|
useDataRenderedUfoExperience({
|
|
102
101
|
status: status,
|
|
103
|
-
experienceId:
|
|
102
|
+
experienceId: experienceId,
|
|
104
103
|
itemCount: responseItems.length,
|
|
105
104
|
extensionKey: extensionKey
|
|
106
105
|
});
|
|
@@ -164,7 +163,6 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
|
|
|
164
163
|
wrappedColumnKeys: wrappedColumnKeys,
|
|
165
164
|
onWrappedColumnChange: onWrappedColumnChange,
|
|
166
165
|
scrollableContainerHeight: ScrollableContainerHeight,
|
|
167
|
-
parentContainerRenderInstanceId: tableRenderInstanceId,
|
|
168
166
|
extensionKey: extensionKey
|
|
169
167
|
}) : jsx(EmptyState, {
|
|
170
168
|
testId: "datasource-table-view-skeleton",
|
|
@@ -177,4 +175,6 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
|
|
|
177
175
|
url: url
|
|
178
176
|
})));
|
|
179
177
|
};
|
|
180
|
-
export var DatasourceTableView = withAnalyticsContext(componentMetadata.tableView)(
|
|
178
|
+
export var DatasourceTableView = withAnalyticsContext(componentMetadata.tableView)(function (props) {
|
|
179
|
+
return jsx(DatasourceExperienceIdProvider, null, jsx(DatasourceTableViewWithoutAnalytics, props));
|
|
180
|
+
});
|
|
@@ -13,15 +13,16 @@ import ChevronDownIcon from '@atlaskit/icon/glyph/chevron-down';
|
|
|
13
13
|
import { CheckboxOption, createFilter, PopupSelect } from '@atlaskit/select';
|
|
14
14
|
import Tooltip from '@atlaskit/tooltip';
|
|
15
15
|
import { succeedUfoExperience } from '../../../analytics/ufoExperiences';
|
|
16
|
+
import { useDatasourceExperienceId } from '../../../contexts/datasource-experience-id';
|
|
16
17
|
import { ConcatenatedMenuList } from './concatenated-menu-list';
|
|
17
18
|
import { columnPickerMessages } from './messages';
|
|
18
19
|
export var ColumnPicker = function ColumnPicker(_ref) {
|
|
19
20
|
var columns = _ref.columns,
|
|
20
21
|
selectedColumnKeys = _ref.selectedColumnKeys,
|
|
21
22
|
onSelectedColumnKeysChange = _ref.onSelectedColumnKeysChange,
|
|
22
|
-
onOpen = _ref.onOpen
|
|
23
|
-
parentContainerRenderInstanceId = _ref.parentContainerRenderInstanceId;
|
|
23
|
+
onOpen = _ref.onOpen;
|
|
24
24
|
var intl = useIntl();
|
|
25
|
+
var experienceId = useDatasourceExperienceId();
|
|
25
26
|
var _useState = useState([]),
|
|
26
27
|
_useState2 = _slicedToArray(_useState, 2),
|
|
27
28
|
allOptions = _useState2[0],
|
|
@@ -100,13 +101,13 @@ export var ColumnPicker = function ColumnPicker(_ref) {
|
|
|
100
101
|
}, [allOptions]);
|
|
101
102
|
useEffect(function () {
|
|
102
103
|
if (allOptions.length) {
|
|
103
|
-
if (
|
|
104
|
+
if (experienceId) {
|
|
104
105
|
succeedUfoExperience({
|
|
105
106
|
name: 'column-picker-rendered'
|
|
106
|
-
},
|
|
107
|
+
}, experienceId);
|
|
107
108
|
}
|
|
108
109
|
}
|
|
109
|
-
}, [allOptions,
|
|
110
|
+
}, [allOptions, experienceId]);
|
|
110
111
|
return jsx(PopupSelect, {
|
|
111
112
|
classNamePrefix: 'column-picker-popup',
|
|
112
113
|
testId: 'column-picker-popup',
|
|
@@ -26,6 +26,7 @@ import Tooltip from '@atlaskit/tooltip';
|
|
|
26
26
|
import { WidthObserver } from '@atlaskit/width-detector';
|
|
27
27
|
import { startUfoExperience, succeedUfoExperience } from '../../analytics/ufoExperiences';
|
|
28
28
|
import { stickyTableHeadersIndex } from '../../common/zindex';
|
|
29
|
+
import { useDatasourceExperienceId } from '../../contexts/datasource-experience-id';
|
|
29
30
|
import { ColumnPicker } from './column-picker';
|
|
30
31
|
import { DragColumnPreview } from './drag-column-preview';
|
|
31
32
|
import { DraggableTableHeading } from './draggable-table-heading';
|
|
@@ -283,12 +284,12 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref5) {
|
|
|
283
284
|
status = _ref5.status,
|
|
284
285
|
hasNextPage = _ref5.hasNextPage,
|
|
285
286
|
scrollableContainerHeight = _ref5.scrollableContainerHeight,
|
|
286
|
-
parentContainerRenderInstanceId = _ref5.parentContainerRenderInstanceId,
|
|
287
287
|
extensionKey = _ref5.extensionKey;
|
|
288
288
|
var tableId = useMemo(function () {
|
|
289
289
|
return Symbol('unique-id');
|
|
290
290
|
}, []);
|
|
291
291
|
var intl = useIntl();
|
|
292
|
+
var experienceId = useDatasourceExperienceId();
|
|
292
293
|
var tableHeaderRowRef = useRef(null);
|
|
293
294
|
var _useState = useState(null),
|
|
294
295
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -325,12 +326,12 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref5) {
|
|
|
325
326
|
}
|
|
326
327
|
}, [columns, visibleColumnKeys, hasFullSchema]);
|
|
327
328
|
useEffect(function () {
|
|
328
|
-
if (
|
|
329
|
+
if (experienceId && status === 'resolved') {
|
|
329
330
|
succeedUfoExperience({
|
|
330
331
|
name: 'datasource-rendered'
|
|
331
|
-
},
|
|
332
|
+
}, experienceId);
|
|
332
333
|
}
|
|
333
|
-
}, [
|
|
334
|
+
}, [experienceId, status]);
|
|
334
335
|
var visibleSortedColumns = useMemo(function () {
|
|
335
336
|
return visibleColumnKeys.map(function (visibleKey) {
|
|
336
337
|
return orderedColumns.find(function (_ref6) {
|
|
@@ -543,13 +544,13 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref5) {
|
|
|
543
544
|
}
|
|
544
545
|
return _context.abrupt("return");
|
|
545
546
|
case 2:
|
|
546
|
-
if (
|
|
547
|
+
if (experienceId) {
|
|
547
548
|
startUfoExperience({
|
|
548
549
|
name: 'column-picker-rendered',
|
|
549
550
|
metadata: {
|
|
550
551
|
extensionKey: extensionKey !== null && extensionKey !== void 0 ? extensionKey : undefined
|
|
551
552
|
}
|
|
552
|
-
},
|
|
553
|
+
}, experienceId);
|
|
553
554
|
}
|
|
554
555
|
_context.prev = 3;
|
|
555
556
|
_context.next = 6;
|
|
@@ -567,7 +568,7 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref5) {
|
|
|
567
568
|
return _context.stop();
|
|
568
569
|
}
|
|
569
570
|
}, _callee, null, [[3, 9]]);
|
|
570
|
-
})), [
|
|
571
|
+
})), [experienceId, extensionKey, hasFullSchema, onLoadDatasourceDetails]);
|
|
571
572
|
var isEditable = onVisibleColumnKeysChange && hasData;
|
|
572
573
|
return jsx("div", {
|
|
573
574
|
/* There is required contentEditable={true} in editor-card-plugin
|
|
@@ -655,8 +656,7 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref5) {
|
|
|
655
656
|
columns: hasFullSchema ? orderedColumns : [],
|
|
656
657
|
selectedColumnKeys: hasFullSchema ? visibleColumnKeys : [],
|
|
657
658
|
onSelectedColumnKeysChange: onSelectedColumnKeysChange,
|
|
658
|
-
onOpen: handlePickerOpen
|
|
659
|
-
parentContainerRenderInstanceId: parentContainerRenderInstanceId
|
|
659
|
+
onOpen: handlePickerOpen
|
|
660
660
|
})))), jsx("tbody", {
|
|
661
661
|
css: noDefaultBorderStyles,
|
|
662
662
|
"data-testid": testId && "".concat(testId, "--body")
|