@atlaskit/link-datasource 2.5.10 → 2.5.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/i18n/cs.js +0 -2
  3. package/dist/cjs/i18n/da.js +0 -2
  4. package/dist/cjs/i18n/de.js +0 -2
  5. package/dist/cjs/i18n/en.js +0 -2
  6. package/dist/cjs/i18n/en_GB.js +0 -2
  7. package/dist/cjs/i18n/en_ZZ.js +0 -2
  8. package/dist/cjs/i18n/es.js +0 -2
  9. package/dist/cjs/i18n/fi.js +0 -2
  10. package/dist/cjs/i18n/fr.js +0 -2
  11. package/dist/cjs/i18n/hu.js +0 -2
  12. package/dist/cjs/i18n/it.js +0 -2
  13. package/dist/cjs/i18n/ja.js +0 -2
  14. package/dist/cjs/i18n/ko.js +0 -2
  15. package/dist/cjs/i18n/nb.js +0 -2
  16. package/dist/cjs/i18n/nl.js +0 -2
  17. package/dist/cjs/i18n/pl.js +0 -2
  18. package/dist/cjs/i18n/pt_BR.js +0 -2
  19. package/dist/cjs/i18n/ru.js +0 -2
  20. package/dist/cjs/i18n/sv.js +0 -2
  21. package/dist/cjs/i18n/th.js +0 -2
  22. package/dist/cjs/i18n/tr.js +0 -2
  23. package/dist/cjs/i18n/uk.js +0 -2
  24. package/dist/cjs/i18n/vi.js +0 -2
  25. package/dist/cjs/i18n/zh.js +0 -2
  26. package/dist/cjs/i18n/zh_TW.js +0 -2
  27. package/dist/cjs/ui/common/modal/datasource-context/index.js +77 -0
  28. package/dist/cjs/ui/common/modal/datasources-table-in-modal-preview/index.js +47 -0
  29. package/dist/cjs/ui/common/modal/datasources-table-in-modal-preview/use-column-visibility/index.js +33 -0
  30. package/dist/cjs/ui/{jira-issues-modal → common/modal}/mode-switcher/index.js +19 -1
  31. package/dist/cjs/ui/common/modal/mode-switcher/useViewModeContext.js +42 -0
  32. package/dist/cjs/ui/confluence-search-modal/modal/ModalOld.js +2 -2
  33. package/dist/cjs/ui/confluence-search-modal/modal/index.js +85 -126
  34. package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/isQueryTooComplex.js +1 -1
  35. package/dist/cjs/ui/jira-issues-modal/jira-search-container/index.js +2 -2
  36. package/dist/cjs/ui/jira-issues-modal/modal/ModalOld.js +492 -0
  37. package/dist/cjs/ui/jira-issues-modal/modal/index.js +35 -38
  38. package/dist/es2019/i18n/cs.js +0 -2
  39. package/dist/es2019/i18n/da.js +0 -2
  40. package/dist/es2019/i18n/de.js +0 -2
  41. package/dist/es2019/i18n/en.js +0 -2
  42. package/dist/es2019/i18n/en_GB.js +0 -2
  43. package/dist/es2019/i18n/en_ZZ.js +0 -2
  44. package/dist/es2019/i18n/es.js +0 -2
  45. package/dist/es2019/i18n/fi.js +0 -2
  46. package/dist/es2019/i18n/fr.js +0 -2
  47. package/dist/es2019/i18n/hu.js +0 -2
  48. package/dist/es2019/i18n/it.js +0 -2
  49. package/dist/es2019/i18n/ja.js +0 -2
  50. package/dist/es2019/i18n/ko.js +0 -2
  51. package/dist/es2019/i18n/nb.js +0 -2
  52. package/dist/es2019/i18n/nl.js +0 -2
  53. package/dist/es2019/i18n/pl.js +0 -2
  54. package/dist/es2019/i18n/pt_BR.js +0 -2
  55. package/dist/es2019/i18n/ru.js +0 -2
  56. package/dist/es2019/i18n/sv.js +0 -2
  57. package/dist/es2019/i18n/th.js +0 -2
  58. package/dist/es2019/i18n/tr.js +0 -2
  59. package/dist/es2019/i18n/uk.js +0 -2
  60. package/dist/es2019/i18n/vi.js +0 -2
  61. package/dist/es2019/i18n/zh.js +0 -2
  62. package/dist/es2019/i18n/zh_TW.js +0 -2
  63. package/dist/es2019/ui/common/modal/datasource-context/index.js +62 -0
  64. package/dist/es2019/ui/common/modal/datasources-table-in-modal-preview/index.js +41 -0
  65. package/dist/es2019/ui/common/modal/datasources-table-in-modal-preview/use-column-visibility/index.js +27 -0
  66. package/dist/es2019/ui/{jira-issues-modal → common/modal}/mode-switcher/index.js +19 -0
  67. package/dist/es2019/ui/common/modal/mode-switcher/useViewModeContext.js +26 -0
  68. package/dist/es2019/ui/confluence-search-modal/modal/ModalOld.js +2 -2
  69. package/dist/es2019/ui/confluence-search-modal/modal/index.js +76 -100
  70. package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/isQueryTooComplex.js +2 -2
  71. package/dist/es2019/ui/jira-issues-modal/jira-search-container/index.js +3 -3
  72. package/dist/es2019/ui/jira-issues-modal/modal/ModalOld.js +476 -0
  73. package/dist/es2019/ui/jira-issues-modal/modal/index.js +24 -18
  74. package/dist/esm/i18n/cs.js +0 -2
  75. package/dist/esm/i18n/da.js +0 -2
  76. package/dist/esm/i18n/de.js +0 -2
  77. package/dist/esm/i18n/en.js +0 -2
  78. package/dist/esm/i18n/en_GB.js +0 -2
  79. package/dist/esm/i18n/en_ZZ.js +0 -2
  80. package/dist/esm/i18n/es.js +0 -2
  81. package/dist/esm/i18n/fi.js +0 -2
  82. package/dist/esm/i18n/fr.js +0 -2
  83. package/dist/esm/i18n/hu.js +0 -2
  84. package/dist/esm/i18n/it.js +0 -2
  85. package/dist/esm/i18n/ja.js +0 -2
  86. package/dist/esm/i18n/ko.js +0 -2
  87. package/dist/esm/i18n/nb.js +0 -2
  88. package/dist/esm/i18n/nl.js +0 -2
  89. package/dist/esm/i18n/pl.js +0 -2
  90. package/dist/esm/i18n/pt_BR.js +0 -2
  91. package/dist/esm/i18n/ru.js +0 -2
  92. package/dist/esm/i18n/sv.js +0 -2
  93. package/dist/esm/i18n/th.js +0 -2
  94. package/dist/esm/i18n/tr.js +0 -2
  95. package/dist/esm/i18n/uk.js +0 -2
  96. package/dist/esm/i18n/vi.js +0 -2
  97. package/dist/esm/i18n/zh.js +0 -2
  98. package/dist/esm/i18n/zh_TW.js +0 -2
  99. package/dist/esm/ui/common/modal/datasource-context/index.js +67 -0
  100. package/dist/esm/ui/common/modal/datasources-table-in-modal-preview/index.js +40 -0
  101. package/dist/esm/ui/common/modal/datasources-table-in-modal-preview/use-column-visibility/index.js +27 -0
  102. package/dist/esm/ui/{jira-issues-modal → common/modal}/mode-switcher/index.js +18 -0
  103. package/dist/esm/ui/common/modal/mode-switcher/useViewModeContext.js +31 -0
  104. package/dist/esm/ui/confluence-search-modal/modal/ModalOld.js +2 -2
  105. package/dist/esm/ui/confluence-search-modal/modal/index.js +85 -125
  106. package/dist/esm/ui/jira-issues-modal/basic-filters/utils/isQueryTooComplex.js +2 -2
  107. package/dist/esm/ui/jira-issues-modal/jira-search-container/index.js +3 -3
  108. package/dist/esm/ui/jira-issues-modal/modal/ModalOld.js +489 -0
  109. package/dist/esm/ui/jira-issues-modal/modal/index.js +37 -38
  110. package/dist/types/i18n/cs.d.ts +0 -2
  111. package/dist/types/i18n/da.d.ts +0 -2
  112. package/dist/types/i18n/de.d.ts +0 -2
  113. package/dist/types/i18n/en.d.ts +0 -2
  114. package/dist/types/i18n/en_GB.d.ts +0 -2
  115. package/dist/types/i18n/en_ZZ.d.ts +0 -2
  116. package/dist/types/i18n/es.d.ts +0 -2
  117. package/dist/types/i18n/fi.d.ts +0 -2
  118. package/dist/types/i18n/fr.d.ts +0 -2
  119. package/dist/types/i18n/hu.d.ts +0 -2
  120. package/dist/types/i18n/it.d.ts +0 -2
  121. package/dist/types/i18n/ja.d.ts +0 -2
  122. package/dist/types/i18n/ko.d.ts +0 -2
  123. package/dist/types/i18n/nb.d.ts +0 -2
  124. package/dist/types/i18n/nl.d.ts +0 -2
  125. package/dist/types/i18n/pl.d.ts +0 -2
  126. package/dist/types/i18n/pt_BR.d.ts +0 -2
  127. package/dist/types/i18n/ru.d.ts +0 -2
  128. package/dist/types/i18n/sv.d.ts +0 -2
  129. package/dist/types/i18n/th.d.ts +0 -2
  130. package/dist/types/i18n/tr.d.ts +0 -2
  131. package/dist/types/i18n/uk.d.ts +0 -2
  132. package/dist/types/i18n/vi.d.ts +0 -2
  133. package/dist/types/i18n/zh.d.ts +0 -2
  134. package/dist/types/i18n/zh_TW.d.ts +0 -2
  135. package/dist/types/ui/common/modal/datasource-context/index.d.ts +24 -0
  136. package/dist/types/ui/common/modal/datasources-table-in-modal-preview/index.d.ts +5 -0
  137. package/dist/types/ui/common/modal/datasources-table-in-modal-preview/use-column-resize/index.d.ts +3 -0
  138. package/dist/types/ui/common/modal/datasources-table-in-modal-preview/use-column-visibility/index.d.ts +11 -0
  139. package/dist/types/ui/common/modal/datasources-table-in-modal-preview/use-column-wrapping/index.d.ts +3 -0
  140. package/dist/{types-ts4.5/ui/jira-issues-modal → types/ui/common/modal}/mode-switcher/index.d.ts +1 -0
  141. package/dist/types/ui/common/modal/mode-switcher/useViewModeContext.d.ts +14 -0
  142. package/dist/types/ui/jira-issues-modal/modal/ModalOld.d.ts +3 -0
  143. package/dist/types-ts4.5/i18n/cs.d.ts +0 -2
  144. package/dist/types-ts4.5/i18n/da.d.ts +0 -2
  145. package/dist/types-ts4.5/i18n/de.d.ts +0 -2
  146. package/dist/types-ts4.5/i18n/en.d.ts +0 -2
  147. package/dist/types-ts4.5/i18n/en_GB.d.ts +0 -2
  148. package/dist/types-ts4.5/i18n/en_ZZ.d.ts +0 -2
  149. package/dist/types-ts4.5/i18n/es.d.ts +0 -2
  150. package/dist/types-ts4.5/i18n/fi.d.ts +0 -2
  151. package/dist/types-ts4.5/i18n/fr.d.ts +0 -2
  152. package/dist/types-ts4.5/i18n/hu.d.ts +0 -2
  153. package/dist/types-ts4.5/i18n/it.d.ts +0 -2
  154. package/dist/types-ts4.5/i18n/ja.d.ts +0 -2
  155. package/dist/types-ts4.5/i18n/ko.d.ts +0 -2
  156. package/dist/types-ts4.5/i18n/nb.d.ts +0 -2
  157. package/dist/types-ts4.5/i18n/nl.d.ts +0 -2
  158. package/dist/types-ts4.5/i18n/pl.d.ts +0 -2
  159. package/dist/types-ts4.5/i18n/pt_BR.d.ts +0 -2
  160. package/dist/types-ts4.5/i18n/ru.d.ts +0 -2
  161. package/dist/types-ts4.5/i18n/sv.d.ts +0 -2
  162. package/dist/types-ts4.5/i18n/th.d.ts +0 -2
  163. package/dist/types-ts4.5/i18n/tr.d.ts +0 -2
  164. package/dist/types-ts4.5/i18n/uk.d.ts +0 -2
  165. package/dist/types-ts4.5/i18n/vi.d.ts +0 -2
  166. package/dist/types-ts4.5/i18n/zh.d.ts +0 -2
  167. package/dist/types-ts4.5/i18n/zh_TW.d.ts +0 -2
  168. package/dist/types-ts4.5/ui/common/modal/datasource-context/index.d.ts +24 -0
  169. package/dist/types-ts4.5/ui/common/modal/datasources-table-in-modal-preview/index.d.ts +5 -0
  170. package/dist/types-ts4.5/ui/common/modal/datasources-table-in-modal-preview/use-column-resize/index.d.ts +3 -0
  171. package/dist/types-ts4.5/ui/common/modal/datasources-table-in-modal-preview/use-column-visibility/index.d.ts +11 -0
  172. package/dist/types-ts4.5/ui/common/modal/datasources-table-in-modal-preview/use-column-wrapping/index.d.ts +3 -0
  173. package/dist/{types/ui/jira-issues-modal → types-ts4.5/ui/common/modal}/mode-switcher/index.d.ts +1 -0
  174. package/dist/types-ts4.5/ui/common/modal/mode-switcher/useViewModeContext.d.ts +14 -0
  175. package/dist/types-ts4.5/ui/jira-issues-modal/modal/ModalOld.d.ts +3 -0
  176. package/examples-helpers/useCommonTableProps.tsx +2 -2
  177. package/package.json +6 -6
  178. package/dist/cjs/ui/common/modal/datasource-context/DatasourceContext.js +0 -18
  179. package/dist/cjs/ui/common/modal/datasource-context/DatasourceContextProvider.js +0 -35
  180. package/dist/cjs/ui/datasources-table-in-modal-preview/index.js +0 -26
  181. package/dist/es2019/ui/common/modal/datasource-context/DatasourceContext.js +0 -9
  182. package/dist/es2019/ui/common/modal/datasource-context/DatasourceContextProvider.js +0 -27
  183. package/dist/es2019/ui/datasources-table-in-modal-preview/index.js +0 -20
  184. package/dist/esm/ui/common/modal/datasource-context/DatasourceContext.js +0 -9
  185. package/dist/esm/ui/common/modal/datasource-context/DatasourceContextProvider.js +0 -26
  186. package/dist/esm/ui/datasources-table-in-modal-preview/index.js +0 -19
  187. package/dist/types/ui/common/modal/datasource-context/DatasourceContext.d.ts +0 -11
  188. package/dist/types/ui/common/modal/datasource-context/DatasourceContextProvider.d.ts +0 -10
  189. package/dist/types/ui/datasources-table-in-modal-preview/index.d.ts +0 -20
  190. package/dist/types/ui/issue-like-table/use-column-resize/index.d.ts +0 -5
  191. package/dist/types/ui/issue-like-table/use-column-wrapping/index.d.ts +0 -4
  192. package/dist/types-ts4.5/ui/common/modal/datasource-context/DatasourceContext.d.ts +0 -11
  193. package/dist/types-ts4.5/ui/common/modal/datasource-context/DatasourceContextProvider.d.ts +0 -10
  194. package/dist/types-ts4.5/ui/datasources-table-in-modal-preview/index.d.ts +0 -20
  195. package/dist/types-ts4.5/ui/issue-like-table/use-column-resize/index.d.ts +0 -5
  196. package/dist/types-ts4.5/ui/issue-like-table/use-column-wrapping/index.d.ts +0 -4
  197. /package/dist/cjs/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-resize/index.js +0 -0
  198. /package/dist/cjs/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-wrapping/index.js +0 -0
  199. /package/dist/es2019/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-resize/index.js +0 -0
  200. /package/dist/es2019/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-wrapping/index.js +0 -0
  201. /package/dist/esm/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-resize/index.js +0 -0
  202. /package/dist/esm/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-wrapping/index.js +0 -0
@@ -0,0 +1,26 @@
1
+ /** @jsx jsx */
2
+ import React, { createContext, useContext, useMemo, useState } from 'react';
3
+
4
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
5
+ import { jsx } from '@emotion/react';
6
+ const ViewModeContext = /*#__PURE__*/createContext(null);
7
+ export const DatasourceViewModeProvider = ({
8
+ viewMode: initialViewMode,
9
+ children
10
+ }) => {
11
+ const [currentViewMode, setCurrentViewMode] = useState(initialViewMode);
12
+ const value = useMemo(() => ({
13
+ currentViewMode,
14
+ setCurrentViewMode
15
+ }), [currentViewMode, setCurrentViewMode]);
16
+ return jsx(ViewModeContext.Provider, {
17
+ value: value
18
+ }, children);
19
+ };
20
+ export const useViewModeContext = () => {
21
+ const value = useContext(ViewModeContext);
22
+ if (!value) {
23
+ throw new Error('useViewModeContext must be called within DatasourceViewModeProvider');
24
+ }
25
+ return value;
26
+ };
@@ -26,12 +26,12 @@ import { CancelButton } from '../../common/modal/cancel-button';
26
26
  import { ContentContainer } from '../../common/modal/content-container';
27
27
  import { SmartCardPlaceholder, SmartLink } from '../../common/modal/count-view-smart-link';
28
28
  import { DatasourceModal } from '../../common/modal/datasource-modal';
29
+ import { useColumnResize } from '../../common/modal/datasources-table-in-modal-preview/use-column-resize';
30
+ import { useColumnWrapping } from '../../common/modal/datasources-table-in-modal-preview/use-column-wrapping';
29
31
  import { DisplayViewDropDown } from '../../common/modal/display-view-dropdown/display-view-drop-down';
30
32
  import TableSearchCount from '../../common/modal/search-count';
31
33
  import { SiteSelector } from '../../common/modal/site-selector';
32
34
  import { EmptyState, IssueLikeDataTableView } from '../../issue-like-table';
33
- import { useColumnResize } from '../../issue-like-table/use-column-resize';
34
- import { useColumnWrapping } from '../../issue-like-table/use-column-wrapping';
35
35
  import { getColumnAction } from '../../issue-like-table/utils';
36
36
  import ConfluenceSearchContainer from '../confluence-search-container';
37
37
  import { ConfluenceSearchInitialStateSVG } from './confluence-search-initial-state-svg';
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @atlaskit/platform/ensure-feature-flag-prefix */
1
2
  /** @jsx jsx */
2
3
  import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';
3
4
 
@@ -17,7 +18,6 @@ import { buildDatasourceAdf } from '../../../common/utils/adf';
17
18
  import { fetchMessagesForLocale } from '../../../common/utils/locale/fetch-messages-for-locale';
18
19
  import { DatasourceExperienceIdProvider } from '../../../contexts/datasource-experience-id';
19
20
  import { UserInteractionsProvider, useUserInteractions } from '../../../contexts/user-interactions';
20
- import { useDatasourceTableState } from '../../../hooks/useDatasourceTableState';
21
21
  import i18nEN from '../../../i18n/en';
22
22
  import { useAvailableSites } from '../../../services/useAvailableSites';
23
23
  import { AccessRequired } from '../../common/error-state/access-required';
@@ -28,44 +28,66 @@ import { InitialStateView } from '../../common/initial-state-view';
28
28
  import { CancelButton } from '../../common/modal/cancel-button';
29
29
  import { ContentContainer } from '../../common/modal/content-container';
30
30
  import { SmartCardPlaceholder, SmartLink } from '../../common/modal/count-view-smart-link';
31
- import { useDatasourceContext } from '../../common/modal/datasource-context/DatasourceContext';
32
- import { DatasourceContextProvider } from '../../common/modal/datasource-context/DatasourceContextProvider';
31
+ import { DatasourceContextProvider, useDatasourceContext } from '../../common/modal/datasource-context';
33
32
  import { DatasourceModal } from '../../common/modal/datasource-modal';
34
- import { DisplayViewDropDown } from '../../common/modal/display-view-dropdown/display-view-drop-down';
33
+ import DatasourcesTableInModalPreview from '../../common/modal/datasources-table-in-modal-preview';
34
+ import { DatasourceViewModeDropDown } from '../../common/modal/mode-switcher';
35
+ import { DatasourceViewModeProvider, useViewModeContext } from '../../common/modal/mode-switcher/useViewModeContext';
35
36
  import TableSearchCount from '../../common/modal/search-count';
36
37
  import { SiteSelector } from '../../common/modal/site-selector';
37
- import DatasourcesTableUsingContext from '../../datasources-table-in-modal-preview';
38
38
  import { EmptyState } from '../../issue-like-table';
39
- import { getColumnAction } from '../../issue-like-table/utils';
40
39
  import ConfluenceSearchContainer from '../confluence-search-container';
41
40
  import { ConfluenceSearchInitialStateSVG } from './confluence-search-initial-state-svg';
42
41
  import { confluenceSearchModalMessages } from './messages';
43
42
  import { PlainConfluenceSearchConfigModal as PlainConfluenceSearchConfigModalOld } from './ModalOld';
43
+ const DEFAULT_VIEW_MODE = 'table';
44
44
  const inputContainerStyles = xcss({
45
45
  alignItems: 'baseline',
46
46
  display: 'flex',
47
47
  minHeight: '72px'
48
48
  });
49
+ const isValidParameters = parameters => {
50
+ var _parameters$contribut;
51
+ return !!(parameters && parameters.cloudId && (parameters.searchString !== undefined || (_parameters$contribut = parameters.contributorAccountIds) !== null && _parameters$contribut !== void 0 && _parameters$contribut.length || parameters.lastModified || parameters.lastModifiedFrom || parameters.lastModifiedTo));
52
+ };
53
+ const useUpdateParametersOnFormUpdate = (cloudId, searchString, lastModified, contributorAccountIds, overrideParameters) => {
54
+ const {
55
+ setParameters
56
+ } = useDatasourceContext();
57
+ useEffect(() => {
58
+ setParameters(parameters => {
59
+ return {
60
+ ...parameters,
61
+ cloudId: cloudId || '',
62
+ searchString,
63
+ lastModified: lastModified === null || lastModified === void 0 ? void 0 : lastModified.value,
64
+ lastModifiedFrom: lastModified === null || lastModified === void 0 ? void 0 : lastModified.from,
65
+ lastModifiedTo: lastModified === null || lastModified === void 0 ? void 0 : lastModified.to,
66
+ contributorAccountIds: contributorAccountIds.length > 0 ? contributorAccountIds : undefined,
67
+ ...(overrideParameters !== null && overrideParameters !== void 0 ? overrideParameters : {})
68
+ };
69
+ });
70
+ }, [cloudId, searchString, lastModified, contributorAccountIds, setParameters, overrideParameters]);
71
+ };
49
72
  export const PlainConfluenceSearchConfigModal = props => {
50
73
  const {
51
74
  datasourceId,
52
75
  onCancel,
53
76
  onInsert,
54
- viewMode = 'table',
55
77
  parameters: initialParameters,
56
78
  url: urlBeingEdited,
57
- visibleColumnKeys: initialVisibleColumnKeys,
58
79
  disableDisplayDropdown = false,
59
80
  overrideParameters
60
81
  } = props;
61
- const [currentViewMode, setCurrentViewMode] = useState(viewMode);
82
+ const {
83
+ currentViewMode
84
+ } = useViewModeContext();
62
85
  const [cloudId, setCloudId] = useState(initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.cloudId);
63
86
  const {
64
87
  availableSites,
65
88
  selectedSite: selectedConfluenceSite
66
89
  } = useAvailableSites('confluence', cloudId);
67
90
  const [searchString, setSearchString] = useState(initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.searchString);
68
- const [visibleColumnKeys, setVisibleColumnKeys] = useState(initialVisibleColumnKeys);
69
91
  const [contributorAccountIds, setContributorAccountIds] = useState((initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.contributorAccountIds) || []);
70
92
  const [lastModified, setLastModified] = useState(initialParameters !== null && initialParameters !== void 0 && initialParameters.lastModified ? {
71
93
  value: initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.lastModified,
@@ -76,43 +98,21 @@ export const PlainConfluenceSearchConfigModal = props => {
76
98
  // analytics related parameters
77
99
  const searchCount = useRef(0);
78
100
  const userInteractions = useUserInteractions();
79
- const visibleColumnCount = useRef((visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.length) || 0);
80
- const parameters = useMemo(() => ({
81
- ...initialParameters,
82
- cloudId: cloudId || '',
83
- searchString,
84
- lastModified: lastModified === null || lastModified === void 0 ? void 0 : lastModified.value,
85
- lastModifiedFrom: lastModified === null || lastModified === void 0 ? void 0 : lastModified.from,
86
- lastModifiedTo: lastModified === null || lastModified === void 0 ? void 0 : lastModified.to,
87
- contributorAccountIds: (contributorAccountIds === null || contributorAccountIds === void 0 ? void 0 : contributorAccountIds.length) > 0 ? contributorAccountIds : undefined
88
- }), [initialParameters, cloudId, searchString, lastModified, contributorAccountIds]);
89
- const isParametersSet = useMemo(() => !!cloudId && Object.values(parameters !== null && parameters !== void 0 ? parameters : {}).filter(v => v !== undefined).length > 1, [cloudId, parameters]);
90
- const parametersToSend = useMemo(() => {
91
- if (!isParametersSet) {
92
- return undefined;
93
- }
94
- return {
95
- ...parameters,
96
- ...(overrideParameters !== null && overrideParameters !== void 0 ? overrideParameters : {})
97
- };
98
- }, [parameters, overrideParameters, isParametersSet]);
101
+ useUpdateParametersOnFormUpdate(cloudId, searchString, lastModified, contributorAccountIds, overrideParameters);
99
102
  const {
100
- reset,
101
- status,
102
- onNextPage,
103
- responseItems,
104
- hasNextPage,
105
- columns,
106
- defaultVisibleColumnKeys,
107
- loadDatasourceDetails,
108
- totalCount,
109
- extensionKey = null,
110
- destinationObjectTypes
111
- } = useDatasourceTableState({
112
- datasourceId,
113
- parameters: parametersToSend,
114
- fieldKeys: visibleColumnKeys
115
- });
103
+ visibleColumnKeys,
104
+ tableState: {
105
+ reset,
106
+ status,
107
+ responseItems,
108
+ extensionKey = null,
109
+ destinationObjectTypes,
110
+ totalCount,
111
+ columns
112
+ },
113
+ visibleColumnCount,
114
+ parameters
115
+ } = useDatasourceContext();
116
116
  const {
117
117
  fireEvent
118
118
  } = useDatasourceAnalyticsEvents();
@@ -146,36 +146,7 @@ export const PlainConfluenceSearchConfigModal = props => {
146
146
  shouldForceRequest: true
147
147
  });
148
148
  }, [reset, userInteractions]);
149
- useEffect(() => {
150
- const newVisibleColumnKeys = !initialVisibleColumnKeys || (initialVisibleColumnKeys || []).length === 0 ? defaultVisibleColumnKeys : initialVisibleColumnKeys;
151
- visibleColumnCount.current = newVisibleColumnKeys.length;
152
- setVisibleColumnKeys(newVisibleColumnKeys);
153
- }, [initialVisibleColumnKeys, defaultVisibleColumnKeys]);
154
149
  const siteSelectorLabel = availableSites && availableSites.length > 1 ? confluenceSearchModalMessages.insertIssuesTitleManySites : confluenceSearchModalMessages.insertIssuesTitle;
155
-
156
- // TODO: common functionality of all modals refactor in EDM-9573
157
- const handleVisibleColumnKeysChange = useCallback((newVisibleColumnKeys = []) => {
158
- const columnAction = getColumnAction(visibleColumnKeys || [], newVisibleColumnKeys);
159
- userInteractions.add(columnAction);
160
- visibleColumnCount.current = newVisibleColumnKeys.length;
161
- setVisibleColumnKeys(newVisibleColumnKeys);
162
- }, [visibleColumnKeys, userInteractions]);
163
- const confluenceSearchTable = useMemo(() => {
164
- return jsx(ContentContainer, {
165
- withTableBorder: true
166
- }, jsx(DatasourcesTableUsingContext, {
167
- testId: "confluence-search-datasource-table",
168
- status: status,
169
- columns: columns,
170
- items: responseItems,
171
- hasNextPage: hasNextPage,
172
- visibleColumnKeys: visibleColumnKeys || defaultVisibleColumnKeys,
173
- onNextPage: onNextPage,
174
- onLoadDatasourceDetails: loadDatasourceDetails,
175
- onVisibleColumnKeysChange: handleVisibleColumnKeysChange,
176
- extensionKey: extensionKey
177
- }));
178
- }, [status, columns, responseItems, hasNextPage, visibleColumnKeys, defaultVisibleColumnKeys, onNextPage, loadDatasourceDetails, handleVisibleColumnKeysChange, extensionKey]);
179
150
  const resolvedWithNoResults = status === 'resolved' && !responseItems.length;
180
151
  const hasConfluenceSearchParams = selectedConfluenceSite && searchString;
181
152
  const selectedConfluenceSiteUrl = selectedConfluenceSite === null || selectedConfluenceSite === void 0 ? void 0 : selectedConfluenceSite.url;
@@ -223,7 +194,7 @@ export const PlainConfluenceSearchConfigModal = props => {
223
194
  displayedColumnCount: visibleColumnCount.current
224
195
  });
225
196
  }
226
- }, [analyticsPayload, fireEvent, totalCount, isDataReady]);
197
+ }, [isDataReady, fireEvent, analyticsPayload, totalCount, visibleColumnCount]);
227
198
  useEffect(() => {
228
199
  const isResolved = status === 'resolved';
229
200
  const isTableViewMode = currentViewMode === 'table';
@@ -259,8 +230,12 @@ export const PlainConfluenceSearchConfigModal = props => {
259
230
  description: confluenceSearchModalMessages.initialViewSearchDescription
260
231
  }));
261
232
  }
262
- return confluenceSearchTable;
263
- }, [columns.length, selectedConfluenceSiteUrl, confluenceSearchTable, resolvedWithNoResults, status, urlBeingEdited, hasConfluenceSearchParams]);
233
+ return jsx(ContentContainer, {
234
+ withTableBorder: true
235
+ }, jsx(DatasourcesTableInModalPreview, {
236
+ testId: "confluence-search-datasource-table"
237
+ }));
238
+ }, [columns.length, selectedConfluenceSiteUrl, resolvedWithNoResults, status, urlBeingEdited, hasConfluenceSearchParams]);
264
239
  const renderInlineLinkModalContent = useCallback(() => {
265
240
  if (status === 'unauthorized') {
266
241
  return jsx(AccessRequired, {
@@ -283,7 +258,7 @@ export const PlainConfluenceSearchConfigModal = props => {
283
258
  } = useDatasourceContext();
284
259
  const onInsertPressed = useCallback((e, analyticsEvent) => {
285
260
  var _insertButtonClickedE;
286
- if (!isParametersSet || !cloudId || !confluenceSearchUrl) {
261
+ if (!parameters || !isValidParameters(parameters) || !confluenceSearchUrl) {
287
262
  return;
288
263
  }
289
264
  const insertButtonClickedEvent = analyticsEvent.update({
@@ -311,10 +286,7 @@ export const PlainConfluenceSearchConfigModal = props => {
311
286
  } else {
312
287
  onInsert(buildDatasourceAdf({
313
288
  id: datasourceId,
314
- parameters: {
315
- ...parametersToSend,
316
- cloudId
317
- },
289
+ parameters: parameters,
318
290
  views: [{
319
291
  type: 'table',
320
292
  properties: {
@@ -335,11 +307,7 @@ export const PlainConfluenceSearchConfigModal = props => {
335
307
  }]
336
308
  }, confluenceSearchUrl), consumerEvent);
337
309
  }
338
- }, [isParametersSet, cloudId, analyticsPayload, totalCount, currentViewMode, onInsert, confluenceSearchUrl, datasourceId, parametersToSend, visibleColumnKeys, columnCustomSizes, wrappedColumnKeys, userInteractions]);
339
- const handleViewModeChange = selectedMode => {
340
- userInteractions.add(DatasourceAction.DISPLAY_VIEW_CHANGED);
341
- setCurrentViewMode(selectedMode);
342
- };
310
+ }, [parameters, confluenceSearchUrl, analyticsPayload, totalCount, visibleColumnCount, currentViewMode, userInteractions, onInsert, datasourceId, visibleColumnKeys, columnCustomSizes, wrappedColumnKeys]);
343
311
  const onSearch = useCallback((newSearchString, filters) => {
344
312
  searchCount.current++;
345
313
  userInteractions.add(DatasourceAction.QUERY_UPDATED);
@@ -368,7 +336,7 @@ export const PlainConfluenceSearchConfigModal = props => {
368
336
  shouldForceRequest: true
369
337
  });
370
338
  }, [reset, userInteractions]);
371
- const isInsertDisabled = !isParametersSet || status === 'rejected' || status === 'unauthorized' || status === 'loading';
339
+ const isInsertDisabled = !isValidParameters(parameters) || status === 'rejected' || status === 'unauthorized' || status === 'loading';
372
340
  const getCancelButtonAnalyticsPayload = useCallback(() => {
373
341
  return {
374
342
  extensionKey,
@@ -389,15 +357,14 @@ export const PlainConfluenceSearchConfigModal = props => {
389
357
  selectedSite: selectedConfluenceSite,
390
358
  testId: "confluence-search-datasource-modal--site-selector",
391
359
  label: siteSelectorLabel
392
- })), !hasNoConfluenceSites && !disableDisplayDropdown && jsx(DisplayViewDropDown, {
393
- onViewModeChange: handleViewModeChange,
394
- viewMode: currentViewMode
395
- })), jsx(ModalBody, null, !hasNoConfluenceSites ? jsx(Fragment, null, jsx(Box, {
360
+ })), !hasNoConfluenceSites && !disableDisplayDropdown && jsx(DatasourceViewModeDropDown, null)), jsx(ModalBody, null, !hasNoConfluenceSites ? jsx(Fragment, null, jsx(Box, {
396
361
  xcss: inputContainerStyles
397
362
  }, jsx(ConfluenceSearchContainer, {
398
363
  isSearching: status === 'loading',
399
364
  onSearch: onSearch,
400
- parameters: parameters
365
+ parameters: isValidParameters(parameters) ? parameters : {
366
+ cloudId: ''
367
+ }
401
368
  })), currentViewMode === 'inline' ? renderInlineLinkModalContent() : renderTableModalContent()) : jsx(NoInstancesView, {
402
369
  title: confluenceSearchModalMessages.noAccessToConfluenceSitesTitle,
403
370
  description: confluenceSearchModalMessages.noAccessToConfluenceSitesDescription,
@@ -431,9 +398,18 @@ const contextData = {
431
398
  ...analyticsContextAttributes
432
399
  }
433
400
  };
434
- export const ConfluenceSearchConfigModal = withAnalyticsContext(contextData)(props => jsx(DatasourceExperienceIdProvider, null, jsx(UserInteractionsProvider, null, fg('platform.linking-platform.datasources.use-refactored-config-modal') ? jsx(DatasourceContextProvider, {
435
- initialColumnCustomSizes: props.columnCustomSizes,
436
- initialWrappedColumnKeys: props.wrappedColumnKeys
437
- }, jsx(PlainConfluenceSearchConfigModal, props)) :
438
- // TODO on cleanup 'use-refactored-config-modal' ff, delete `ModalOld.tsx` as well
439
- jsx(PlainConfluenceSearchConfigModalOld, props))));
401
+ export const ConfluenceSearchConfigModal = withAnalyticsContext(contextData)(props => {
402
+ var _props$viewMode;
403
+ return jsx(DatasourceExperienceIdProvider, null, jsx(UserInteractionsProvider, null, fg('platform-datasources-use-refactored-config-modal') ? jsx(DatasourceContextProvider, {
404
+ datasourceId: props.datasourceId,
405
+ initialVisibleColumnKeys: props.visibleColumnKeys,
406
+ initialColumnCustomSizes: props.columnCustomSizes,
407
+ initialWrappedColumnKeys: props.wrappedColumnKeys,
408
+ initialParameters: props.parameters,
409
+ isValidParameters: isValidParameters
410
+ }, jsx(DatasourceViewModeProvider, {
411
+ viewMode: (_props$viewMode = props.viewMode) !== null && _props$viewMode !== void 0 ? _props$viewMode : DEFAULT_VIEW_MODE
412
+ }, jsx(PlainConfluenceSearchConfigModal, props))) :
413
+ // TODO on cleanup 'use-refactored-config-modal' ff, delete `ModalOld.tsx` as well
414
+ jsx(PlainConfluenceSearchConfigModalOld, props)));
415
+ });
@@ -1,7 +1,7 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import mergeWith from 'lodash/mergeWith';
3
3
  import { AbstractJastVisitor, COMPOUND_OPERATOR_AND, COMPOUND_OPERATOR_OR, JastBuilder, OPERATOR_EQUALS, OPERATOR_IN, OPERATOR_LIKE } from '@atlaskit/jql-ast';
4
- import { getBooleanFF } from '@atlaskit/platform-feature-flags';
4
+ import { fg } from '@atlaskit/platform-feature-flags';
5
5
  import { ALLOWED_ORDER_BY_KEYS } from '../../jira-search-container';
6
6
  import { isClauseTooComplex } from './isClauseTooComplex';
7
7
  import { isValidJql } from './index';
@@ -83,7 +83,7 @@ class JqlClauseCollectingVisitor extends AbstractJastVisitor {
83
83
  }
84
84
  }
85
85
  export const isQueryTooComplex = jql => {
86
- if (!getBooleanFF('platform.linking-platform.datasource.show-jlol-basic-filters') || !jql) {
86
+ if (!fg('platform.linking-platform.datasource.show-jlol-basic-filters') || !jql) {
87
87
  return false;
88
88
  }
89
89
  if (!isValidJql(jql)) {
@@ -5,17 +5,17 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react';
5
5
  import { css, jsx } from '@emotion/react';
6
6
  import { useIntl } from 'react-intl-next';
7
7
  import { useDebouncedCallback } from 'use-debounce';
8
- import { getBooleanFF } from '@atlaskit/platform-feature-flags';
8
+ import { fg } from '@atlaskit/platform-feature-flags';
9
9
  import { Flex, xcss } from '@atlaskit/primitives';
10
10
  import { useDatasourceAnalyticsEvents } from '../../../analytics';
11
11
  import { BasicSearchInput } from '../../common/modal/basic-search-input';
12
12
  import { basicSearchInputMessages } from '../../common/modal/basic-search-input/messages';
13
+ import { ModeSwitcher } from '../../common/modal/mode-switcher';
13
14
  import { FILTER_SELECTION_DEBOUNCE_MS } from '../../common/modal/popup-select/constants';
14
15
  import { BasicFilters } from '../basic-filters';
15
16
  import { useHydrateJqlQuery } from '../basic-filters/hooks/useHydrateJqlQuery';
16
17
  import { isQueryTooComplex } from '../basic-filters/utils/isQueryTooComplex';
17
18
  import { JiraJQLEditor } from '../jql-editor';
18
- import { ModeSwitcher } from '../mode-switcher';
19
19
  import { buildJQL } from './buildJQL';
20
20
  import { modeSwitcherMessages } from './messages';
21
21
  const inputContainerStyles = css({
@@ -56,7 +56,7 @@ export const JiraSearchContainer = props => {
56
56
  const [orderDirection, setOrderDirection] = useState();
57
57
  const [filterSelections, setFilterSelections] = useState({});
58
58
  const showBasicFilters = useMemo(() => {
59
- if (getBooleanFF('platform.linking-platform.datasource.show-jlol-basic-filters')) {
59
+ if (fg('platform.linking-platform.datasource.show-jlol-basic-filters')) {
60
60
  return true;
61
61
  }
62
62
  return false;