@atlaskit/link-datasource 2.5.9 → 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 (221) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +1 -1
  3. package/dist/cjs/i18n/cs.js +0 -2
  4. package/dist/cjs/i18n/da.js +0 -2
  5. package/dist/cjs/i18n/de.js +0 -2
  6. package/dist/cjs/i18n/en.js +0 -2
  7. package/dist/cjs/i18n/en_GB.js +0 -2
  8. package/dist/cjs/i18n/en_ZZ.js +0 -2
  9. package/dist/cjs/i18n/es.js +0 -2
  10. package/dist/cjs/i18n/fi.js +0 -2
  11. package/dist/cjs/i18n/fr.js +0 -2
  12. package/dist/cjs/i18n/hu.js +0 -2
  13. package/dist/cjs/i18n/it.js +0 -2
  14. package/dist/cjs/i18n/ja.js +0 -2
  15. package/dist/cjs/i18n/ko.js +0 -2
  16. package/dist/cjs/i18n/nb.js +0 -2
  17. package/dist/cjs/i18n/nl.js +0 -2
  18. package/dist/cjs/i18n/pl.js +0 -2
  19. package/dist/cjs/i18n/pt_BR.js +0 -2
  20. package/dist/cjs/i18n/ru.js +0 -2
  21. package/dist/cjs/i18n/sv.js +0 -2
  22. package/dist/cjs/i18n/th.js +0 -2
  23. package/dist/cjs/i18n/tr.js +0 -2
  24. package/dist/cjs/i18n/uk.js +0 -2
  25. package/dist/cjs/i18n/vi.js +0 -2
  26. package/dist/cjs/i18n/zh.js +0 -2
  27. package/dist/cjs/i18n/zh_TW.js +0 -2
  28. package/dist/cjs/ui/common/modal/datasource-context/index.js +77 -0
  29. package/dist/cjs/ui/common/modal/datasources-table-in-modal-preview/index.js +47 -0
  30. package/dist/cjs/ui/common/modal/datasources-table-in-modal-preview/use-column-visibility/index.js +33 -0
  31. package/dist/cjs/ui/{jira-issues-modal → common/modal}/mode-switcher/index.js +19 -1
  32. package/dist/cjs/ui/common/modal/mode-switcher/useViewModeContext.js +42 -0
  33. package/dist/cjs/ui/common/modal/search-count/index.js +30 -51
  34. package/dist/cjs/ui/confluence-search-modal/modal/ModalOld.js +2 -2
  35. package/dist/cjs/ui/confluence-search-modal/modal/index.js +85 -126
  36. package/dist/cjs/ui/confluence-search-modal/modal/messages.js +0 -5
  37. package/dist/cjs/ui/jira-issues-modal/basic-filters/types.js +1 -1
  38. package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/isQueryTooComplex.js +1 -1
  39. package/dist/cjs/ui/jira-issues-modal/jira-search-container/index.js +2 -2
  40. package/dist/cjs/ui/jira-issues-modal/modal/ModalOld.js +492 -0
  41. package/dist/cjs/ui/jira-issues-modal/modal/index.js +35 -38
  42. package/dist/cjs/ui/jira-issues-modal/modal/messages.js +0 -5
  43. package/dist/es2019/i18n/cs.js +0 -2
  44. package/dist/es2019/i18n/da.js +0 -2
  45. package/dist/es2019/i18n/de.js +0 -2
  46. package/dist/es2019/i18n/en.js +0 -2
  47. package/dist/es2019/i18n/en_GB.js +0 -2
  48. package/dist/es2019/i18n/en_ZZ.js +0 -2
  49. package/dist/es2019/i18n/es.js +0 -2
  50. package/dist/es2019/i18n/fi.js +0 -2
  51. package/dist/es2019/i18n/fr.js +0 -2
  52. package/dist/es2019/i18n/hu.js +0 -2
  53. package/dist/es2019/i18n/it.js +0 -2
  54. package/dist/es2019/i18n/ja.js +0 -2
  55. package/dist/es2019/i18n/ko.js +0 -2
  56. package/dist/es2019/i18n/nb.js +0 -2
  57. package/dist/es2019/i18n/nl.js +0 -2
  58. package/dist/es2019/i18n/pl.js +0 -2
  59. package/dist/es2019/i18n/pt_BR.js +0 -2
  60. package/dist/es2019/i18n/ru.js +0 -2
  61. package/dist/es2019/i18n/sv.js +0 -2
  62. package/dist/es2019/i18n/th.js +0 -2
  63. package/dist/es2019/i18n/tr.js +0 -2
  64. package/dist/es2019/i18n/uk.js +0 -2
  65. package/dist/es2019/i18n/vi.js +0 -2
  66. package/dist/es2019/i18n/zh.js +0 -2
  67. package/dist/es2019/i18n/zh_TW.js +0 -2
  68. package/dist/es2019/ui/common/modal/datasource-context/index.js +62 -0
  69. package/dist/es2019/ui/common/modal/datasources-table-in-modal-preview/index.js +41 -0
  70. package/dist/es2019/ui/common/modal/datasources-table-in-modal-preview/use-column-visibility/index.js +27 -0
  71. package/dist/es2019/ui/{jira-issues-modal → common/modal}/mode-switcher/index.js +19 -0
  72. package/dist/es2019/ui/common/modal/mode-switcher/useViewModeContext.js +26 -0
  73. package/dist/es2019/ui/common/modal/search-count/index.js +28 -50
  74. package/dist/es2019/ui/confluence-search-modal/modal/ModalOld.js +2 -2
  75. package/dist/es2019/ui/confluence-search-modal/modal/index.js +76 -100
  76. package/dist/es2019/ui/confluence-search-modal/modal/messages.js +0 -5
  77. package/dist/es2019/ui/jira-issues-modal/basic-filters/types.js +1 -1
  78. package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/isQueryTooComplex.js +2 -2
  79. package/dist/es2019/ui/jira-issues-modal/jira-search-container/index.js +3 -3
  80. package/dist/es2019/ui/jira-issues-modal/modal/ModalOld.js +476 -0
  81. package/dist/es2019/ui/jira-issues-modal/modal/index.js +24 -18
  82. package/dist/es2019/ui/jira-issues-modal/modal/messages.js +0 -5
  83. package/dist/esm/i18n/cs.js +0 -2
  84. package/dist/esm/i18n/da.js +0 -2
  85. package/dist/esm/i18n/de.js +0 -2
  86. package/dist/esm/i18n/en.js +0 -2
  87. package/dist/esm/i18n/en_GB.js +0 -2
  88. package/dist/esm/i18n/en_ZZ.js +0 -2
  89. package/dist/esm/i18n/es.js +0 -2
  90. package/dist/esm/i18n/fi.js +0 -2
  91. package/dist/esm/i18n/fr.js +0 -2
  92. package/dist/esm/i18n/hu.js +0 -2
  93. package/dist/esm/i18n/it.js +0 -2
  94. package/dist/esm/i18n/ja.js +0 -2
  95. package/dist/esm/i18n/ko.js +0 -2
  96. package/dist/esm/i18n/nb.js +0 -2
  97. package/dist/esm/i18n/nl.js +0 -2
  98. package/dist/esm/i18n/pl.js +0 -2
  99. package/dist/esm/i18n/pt_BR.js +0 -2
  100. package/dist/esm/i18n/ru.js +0 -2
  101. package/dist/esm/i18n/sv.js +0 -2
  102. package/dist/esm/i18n/th.js +0 -2
  103. package/dist/esm/i18n/tr.js +0 -2
  104. package/dist/esm/i18n/uk.js +0 -2
  105. package/dist/esm/i18n/vi.js +0 -2
  106. package/dist/esm/i18n/zh.js +0 -2
  107. package/dist/esm/i18n/zh_TW.js +0 -2
  108. package/dist/esm/ui/common/modal/datasource-context/index.js +67 -0
  109. package/dist/esm/ui/common/modal/datasources-table-in-modal-preview/index.js +40 -0
  110. package/dist/esm/ui/common/modal/datasources-table-in-modal-preview/use-column-visibility/index.js +27 -0
  111. package/dist/esm/ui/{jira-issues-modal → common/modal}/mode-switcher/index.js +18 -0
  112. package/dist/esm/ui/common/modal/mode-switcher/useViewModeContext.js +31 -0
  113. package/dist/esm/ui/common/modal/search-count/index.js +27 -48
  114. package/dist/esm/ui/confluence-search-modal/modal/ModalOld.js +2 -2
  115. package/dist/esm/ui/confluence-search-modal/modal/index.js +85 -125
  116. package/dist/esm/ui/confluence-search-modal/modal/messages.js +0 -5
  117. package/dist/esm/ui/jira-issues-modal/basic-filters/types.js +1 -1
  118. package/dist/esm/ui/jira-issues-modal/basic-filters/utils/isQueryTooComplex.js +2 -2
  119. package/dist/esm/ui/jira-issues-modal/jira-search-container/index.js +3 -3
  120. package/dist/esm/ui/jira-issues-modal/modal/ModalOld.js +489 -0
  121. package/dist/esm/ui/jira-issues-modal/modal/index.js +37 -38
  122. package/dist/esm/ui/jira-issues-modal/modal/messages.js +0 -5
  123. package/dist/types/i18n/cs.d.ts +0 -2
  124. package/dist/types/i18n/da.d.ts +0 -2
  125. package/dist/types/i18n/de.d.ts +0 -2
  126. package/dist/types/i18n/en.d.ts +0 -2
  127. package/dist/types/i18n/en_GB.d.ts +0 -2
  128. package/dist/types/i18n/en_ZZ.d.ts +0 -2
  129. package/dist/types/i18n/es.d.ts +0 -2
  130. package/dist/types/i18n/fi.d.ts +0 -2
  131. package/dist/types/i18n/fr.d.ts +0 -2
  132. package/dist/types/i18n/hu.d.ts +0 -2
  133. package/dist/types/i18n/it.d.ts +0 -2
  134. package/dist/types/i18n/ja.d.ts +0 -2
  135. package/dist/types/i18n/ko.d.ts +0 -2
  136. package/dist/types/i18n/nb.d.ts +0 -2
  137. package/dist/types/i18n/nl.d.ts +0 -2
  138. package/dist/types/i18n/pl.d.ts +0 -2
  139. package/dist/types/i18n/pt_BR.d.ts +0 -2
  140. package/dist/types/i18n/ru.d.ts +0 -2
  141. package/dist/types/i18n/sv.d.ts +0 -2
  142. package/dist/types/i18n/th.d.ts +0 -2
  143. package/dist/types/i18n/tr.d.ts +0 -2
  144. package/dist/types/i18n/uk.d.ts +0 -2
  145. package/dist/types/i18n/vi.d.ts +0 -2
  146. package/dist/types/i18n/zh.d.ts +0 -2
  147. package/dist/types/i18n/zh_TW.d.ts +0 -2
  148. package/dist/types/ui/common/modal/datasource-context/index.d.ts +24 -0
  149. package/dist/types/ui/common/modal/datasources-table-in-modal-preview/index.d.ts +5 -0
  150. package/dist/types/ui/common/modal/datasources-table-in-modal-preview/use-column-resize/index.d.ts +3 -0
  151. package/dist/types/ui/common/modal/datasources-table-in-modal-preview/use-column-visibility/index.d.ts +11 -0
  152. package/dist/types/ui/common/modal/datasources-table-in-modal-preview/use-column-wrapping/index.d.ts +3 -0
  153. package/dist/{types-ts4.5/ui/jira-issues-modal → types/ui/common/modal}/mode-switcher/index.d.ts +1 -0
  154. package/dist/types/ui/common/modal/mode-switcher/useViewModeContext.d.ts +14 -0
  155. package/dist/types/ui/common/modal/search-count/index.d.ts +1 -5
  156. package/dist/types/ui/confluence-search-modal/modal/messages.d.ts +0 -5
  157. package/dist/types/ui/jira-issues-modal/modal/ModalOld.d.ts +3 -0
  158. package/dist/types/ui/jira-issues-modal/modal/messages.d.ts +0 -5
  159. package/dist/types-ts4.5/i18n/cs.d.ts +0 -2
  160. package/dist/types-ts4.5/i18n/da.d.ts +0 -2
  161. package/dist/types-ts4.5/i18n/de.d.ts +0 -2
  162. package/dist/types-ts4.5/i18n/en.d.ts +0 -2
  163. package/dist/types-ts4.5/i18n/en_GB.d.ts +0 -2
  164. package/dist/types-ts4.5/i18n/en_ZZ.d.ts +0 -2
  165. package/dist/types-ts4.5/i18n/es.d.ts +0 -2
  166. package/dist/types-ts4.5/i18n/fi.d.ts +0 -2
  167. package/dist/types-ts4.5/i18n/fr.d.ts +0 -2
  168. package/dist/types-ts4.5/i18n/hu.d.ts +0 -2
  169. package/dist/types-ts4.5/i18n/it.d.ts +0 -2
  170. package/dist/types-ts4.5/i18n/ja.d.ts +0 -2
  171. package/dist/types-ts4.5/i18n/ko.d.ts +0 -2
  172. package/dist/types-ts4.5/i18n/nb.d.ts +0 -2
  173. package/dist/types-ts4.5/i18n/nl.d.ts +0 -2
  174. package/dist/types-ts4.5/i18n/pl.d.ts +0 -2
  175. package/dist/types-ts4.5/i18n/pt_BR.d.ts +0 -2
  176. package/dist/types-ts4.5/i18n/ru.d.ts +0 -2
  177. package/dist/types-ts4.5/i18n/sv.d.ts +0 -2
  178. package/dist/types-ts4.5/i18n/th.d.ts +0 -2
  179. package/dist/types-ts4.5/i18n/tr.d.ts +0 -2
  180. package/dist/types-ts4.5/i18n/uk.d.ts +0 -2
  181. package/dist/types-ts4.5/i18n/vi.d.ts +0 -2
  182. package/dist/types-ts4.5/i18n/zh.d.ts +0 -2
  183. package/dist/types-ts4.5/i18n/zh_TW.d.ts +0 -2
  184. package/dist/types-ts4.5/ui/common/modal/datasource-context/index.d.ts +24 -0
  185. package/dist/types-ts4.5/ui/common/modal/datasources-table-in-modal-preview/index.d.ts +5 -0
  186. package/dist/types-ts4.5/ui/common/modal/datasources-table-in-modal-preview/use-column-resize/index.d.ts +3 -0
  187. package/dist/types-ts4.5/ui/common/modal/datasources-table-in-modal-preview/use-column-visibility/index.d.ts +11 -0
  188. package/dist/types-ts4.5/ui/common/modal/datasources-table-in-modal-preview/use-column-wrapping/index.d.ts +3 -0
  189. package/dist/{types/ui/jira-issues-modal → types-ts4.5/ui/common/modal}/mode-switcher/index.d.ts +1 -0
  190. package/dist/types-ts4.5/ui/common/modal/mode-switcher/useViewModeContext.d.ts +14 -0
  191. package/dist/types-ts4.5/ui/common/modal/search-count/index.d.ts +1 -5
  192. package/dist/types-ts4.5/ui/confluence-search-modal/modal/messages.d.ts +0 -5
  193. package/dist/types-ts4.5/ui/jira-issues-modal/modal/ModalOld.d.ts +3 -0
  194. package/dist/types-ts4.5/ui/jira-issues-modal/modal/messages.d.ts +0 -5
  195. package/examples-helpers/useCommonTableProps.tsx +2 -2
  196. package/package.json +9 -12
  197. package/dist/cjs/ui/common/modal/datasource-context/DatasourceContext.js +0 -18
  198. package/dist/cjs/ui/common/modal/datasource-context/DatasourceContextProvider.js +0 -35
  199. package/dist/cjs/ui/datasources-table-in-modal-preview/index.js +0 -26
  200. package/dist/es2019/ui/common/modal/datasource-context/DatasourceContext.js +0 -9
  201. package/dist/es2019/ui/common/modal/datasource-context/DatasourceContextProvider.js +0 -27
  202. package/dist/es2019/ui/datasources-table-in-modal-preview/index.js +0 -20
  203. package/dist/esm/ui/common/modal/datasource-context/DatasourceContext.js +0 -9
  204. package/dist/esm/ui/common/modal/datasource-context/DatasourceContextProvider.js +0 -26
  205. package/dist/esm/ui/datasources-table-in-modal-preview/index.js +0 -19
  206. package/dist/types/ui/common/modal/datasource-context/DatasourceContext.d.ts +0 -11
  207. package/dist/types/ui/common/modal/datasource-context/DatasourceContextProvider.d.ts +0 -10
  208. package/dist/types/ui/datasources-table-in-modal-preview/index.d.ts +0 -20
  209. package/dist/types/ui/issue-like-table/use-column-resize/index.d.ts +0 -5
  210. package/dist/types/ui/issue-like-table/use-column-wrapping/index.d.ts +0 -4
  211. package/dist/types-ts4.5/ui/common/modal/datasource-context/DatasourceContext.d.ts +0 -11
  212. package/dist/types-ts4.5/ui/common/modal/datasource-context/DatasourceContextProvider.d.ts +0 -10
  213. package/dist/types-ts4.5/ui/datasources-table-in-modal-preview/index.d.ts +0 -20
  214. package/dist/types-ts4.5/ui/issue-like-table/use-column-resize/index.d.ts +0 -5
  215. package/dist/types-ts4.5/ui/issue-like-table/use-column-wrapping/index.d.ts +0 -4
  216. /package/dist/cjs/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-resize/index.js +0 -0
  217. /package/dist/cjs/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-wrapping/index.js +0 -0
  218. /package/dist/es2019/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-resize/index.js +0 -0
  219. /package/dist/es2019/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-wrapping/index.js +0 -0
  220. /package/dist/esm/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-resize/index.js +0 -0
  221. /package/dist/esm/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-wrapping/index.js +0 -0
@@ -63,7 +63,6 @@ export default {
63
63
  'linkDataSource.confluence-search.configmodal.insertConfluenceTitleManySites': '插入 Confluence 列表的來源:',
64
64
  'linkDataSource.confluence-search.configmodal.insertResultsButtonText': '插入結果',
65
65
  'linkDataSource.confluence-search.configmodal.placeholder.issues': '### 項結果',
66
- 'linkDataSource.confluence-search.configmodal.resultsCountText': '{totalCount, plural, other {個結果}}',
67
66
  'linkDataSource.confluence-search.configmodal.searchLabel': '輸入關鍵字以尋找頁面、附件等等',
68
67
  'linkDataSource.confluence-search.no.confluence.sites.access.description': '若要要求存取權,請連絡您的管理員。',
69
68
  'linkDataSource.confluence-search.no.confluence.sites.access.title': '您無法存取任何 Confluence 網站',
@@ -80,7 +79,6 @@ export default {
80
79
  'linkDataSource.jira-issues.configmodal.insertIssuesButtonText': '插入議題',
81
80
  'linkDataSource.jira-issues.configmodal.insertIssuesTitle': '插入 Jira 議題',
82
81
  'linkDataSource.jira-issues.configmodal.insertIssuesTitleManySites': '從中插入 Jira 議題:',
83
- 'linkDataSource.jira-issues.configmodal.issue': '{totalCount, plural, other {個議題}}',
84
82
  'linkDataSource.jira-issues.configmodal.viewModeInlineLinkDescription': '將搜尋結果數目顯示為內嵌智慧連結',
85
83
  'linkDataSource.jira-issues.configmodal.viewModeInlineLinkLabel': '內嵌連結',
86
84
  'linkDataSource.jira-issues.configmodal.viewModeListDescription': '將搜尋結果顯示為列表',
@@ -0,0 +1,62 @@
1
+ import React, { useContext, useMemo, useState } from 'react';
2
+ import { useDatasourceTableState } from '../../../../hooks/useDatasourceTableState';
3
+ import { useColumnResize } from '../datasources-table-in-modal-preview/use-column-resize';
4
+ import { useColumnVisibility } from '../datasources-table-in-modal-preview/use-column-visibility';
5
+ import { useColumnWrapping } from '../datasources-table-in-modal-preview/use-column-wrapping';
6
+ const DatasourceContext = /*#__PURE__*/React.createContext(null);
7
+ export const DatasourceContextProvider = ({
8
+ children,
9
+ datasourceId,
10
+ isValidParameters,
11
+ initialParameters,
12
+ initialVisibleColumnKeys,
13
+ initialColumnCustomSizes,
14
+ initialWrappedColumnKeys
15
+ }) => {
16
+ const [parameters, setParameters] = useState(initialParameters);
17
+ const [visibleColumnKeys, setVisibleColumnKeys] = useState(initialVisibleColumnKeys);
18
+ const {
19
+ columnCustomSizes,
20
+ onColumnResize
21
+ } = useColumnResize(initialColumnCustomSizes);
22
+ const {
23
+ wrappedColumnKeys,
24
+ onWrappedColumnChange
25
+ } = useColumnWrapping(initialWrappedColumnKeys);
26
+ const tableState = useDatasourceTableState({
27
+ datasourceId,
28
+ parameters: isValidParameters(parameters) ? parameters : undefined,
29
+ fieldKeys: visibleColumnKeys
30
+ });
31
+ const {
32
+ onVisibleColumnKeysChange,
33
+ visibleColumnCount
34
+ } = useColumnVisibility({
35
+ visibleColumnKeys,
36
+ setVisibleColumnKeys,
37
+ defaultVisibleColumnKeys: tableState.defaultVisibleColumnKeys,
38
+ initialVisibleColumnKeys
39
+ });
40
+ const contextValue = useMemo(() => ({
41
+ tableState,
42
+ visibleColumnCount,
43
+ visibleColumnKeys,
44
+ onVisibleColumnKeysChange,
45
+ columnCustomSizes,
46
+ onColumnResize,
47
+ wrappedColumnKeys,
48
+ onWrappedColumnChange,
49
+ parameters,
50
+ setParameters
51
+ }), [tableState, visibleColumnCount, visibleColumnKeys, onVisibleColumnKeysChange, columnCustomSizes, onColumnResize, wrappedColumnKeys, onWrappedColumnChange, parameters]);
52
+ return /*#__PURE__*/React.createElement(DatasourceContext.Provider, {
53
+ value: contextValue
54
+ }, children);
55
+ };
56
+ export const useDatasourceContext = () => {
57
+ const value = useContext(DatasourceContext);
58
+ if (!value) {
59
+ throw new Error('useDatasourceStore must be used within DatasourceContextProvider');
60
+ }
61
+ return value;
62
+ };
@@ -0,0 +1,41 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React from 'react';
3
+ import { fg } from '@atlaskit/platform-feature-flags';
4
+ import { IssueLikeDataTableView } from '../../../issue-like-table';
5
+ import { useDatasourceContext } from '../datasource-context';
6
+ const Table = props => {
7
+ const {
8
+ columnCustomSizes,
9
+ onColumnResize,
10
+ wrappedColumnKeys,
11
+ onWrappedColumnChange,
12
+ visibleColumnKeys,
13
+ onVisibleColumnKeysChange,
14
+ tableState: {
15
+ status,
16
+ onNextPage,
17
+ responseItems,
18
+ hasNextPage,
19
+ columns,
20
+ defaultVisibleColumnKeys,
21
+ loadDatasourceDetails,
22
+ extensionKey = null
23
+ }
24
+ } = useDatasourceContext();
25
+ return /*#__PURE__*/React.createElement(IssueLikeDataTableView, _extends({}, props, {
26
+ status: status,
27
+ columns: columns,
28
+ items: responseItems,
29
+ hasNextPage: hasNextPage,
30
+ visibleColumnKeys: visibleColumnKeys || defaultVisibleColumnKeys,
31
+ onNextPage: onNextPage,
32
+ onLoadDatasourceDetails: loadDatasourceDetails,
33
+ onVisibleColumnKeysChange: onVisibleColumnKeysChange,
34
+ extensionKey: extensionKey,
35
+ columnCustomSizes: columnCustomSizes,
36
+ onColumnResize: onColumnResize,
37
+ wrappedColumnKeys: wrappedColumnKeys,
38
+ onWrappedColumnChange: fg('platform.linking-platform.datasource-word_wrap') ? onWrappedColumnChange : undefined
39
+ }));
40
+ };
41
+ export default Table;
@@ -0,0 +1,27 @@
1
+ import { useCallback, useEffect, useRef } from 'react';
2
+ import { useUserInteractions } from '../../../../../contexts/user-interactions';
3
+ import { getColumnAction } from '../../../../issue-like-table/utils';
4
+ export const useColumnVisibility = ({
5
+ visibleColumnKeys,
6
+ setVisibleColumnKeys,
7
+ defaultVisibleColumnKeys,
8
+ initialVisibleColumnKeys
9
+ }) => {
10
+ const userInteractions = useUserInteractions();
11
+ const visibleColumnCount = useRef((visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.length) || 0);
12
+ useEffect(() => {
13
+ const newVisibleColumnKeys = !initialVisibleColumnKeys || (initialVisibleColumnKeys || []).length === 0 ? defaultVisibleColumnKeys : initialVisibleColumnKeys;
14
+ visibleColumnCount.current = newVisibleColumnKeys.length;
15
+ setVisibleColumnKeys(newVisibleColumnKeys);
16
+ }, [initialVisibleColumnKeys, setVisibleColumnKeys, defaultVisibleColumnKeys]);
17
+ const onVisibleColumnKeysChange = useCallback((newVisibleColumnKeys = []) => {
18
+ const columnAction = getColumnAction(visibleColumnKeys || [], newVisibleColumnKeys);
19
+ userInteractions.add(columnAction);
20
+ visibleColumnCount.current = newVisibleColumnKeys.length;
21
+ setVisibleColumnKeys(newVisibleColumnKeys);
22
+ }, [visibleColumnKeys, setVisibleColumnKeys, userInteractions]);
23
+ return {
24
+ onVisibleColumnKeysChange,
25
+ visibleColumnCount
26
+ };
27
+ };
@@ -6,6 +6,10 @@ import React from 'react';
6
6
  import { css, jsx } from '@emotion/react';
7
7
  import { N0, N20, N30A, N60, N700 } from '@atlaskit/theme/colors';
8
8
  import Tooltip from '@atlaskit/tooltip';
9
+ import { DatasourceAction } from '../../../../analytics/types';
10
+ import { useUserInteractions } from '../../../../contexts/user-interactions';
11
+ import { DisplayViewDropDown } from '../display-view-dropdown/display-view-drop-down';
12
+ import { useViewModeContext } from './useViewModeContext';
9
13
  const modeSwitcherStyles = css({
10
14
  alignItems: 'center',
11
15
  background: `var(--ds-background-neutral, ${N20})`,
@@ -104,4 +108,19 @@ export const ModeSwitcher = props => {
104
108
  value: value
105
109
  })));
106
110
  })) : null;
111
+ };
112
+ export const DatasourceViewModeDropDown = () => {
113
+ const {
114
+ currentViewMode,
115
+ setCurrentViewMode
116
+ } = useViewModeContext();
117
+ const userInteractions = useUserInteractions();
118
+ const handleViewModeChange = selectedMode => {
119
+ userInteractions.add(DatasourceAction.DISPLAY_VIEW_CHANGED);
120
+ setCurrentViewMode(selectedMode);
121
+ };
122
+ return jsx(DisplayViewDropDown, {
123
+ onViewModeChange: handleViewModeChange,
124
+ viewMode: currentViewMode
125
+ });
107
126
  };
@@ -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
+ };
@@ -2,17 +2,35 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import React from 'react';
3
3
  import { FormattedMessage, FormattedNumber } from 'react-intl-next';
4
4
  import Heading from '@atlaskit/heading';
5
- import { fg } from '@atlaskit/platform-feature-flags';
6
5
  import { Flex, xcss } from '@atlaskit/primitives';
7
6
  import LinkUrl from '@atlaskit/smart-card/link-url';
8
7
  import { N800 } from '@atlaskit/theme/colors';
9
- import { confluenceSearchModalMessages } from '../../../confluence-search-modal/modal/messages';
10
- import { modalMessages } from '../../../jira-issues-modal/modal/messages';
11
8
  import { footerMessages } from '../../../table-footer/messages';
12
9
  import { searchCountMessages } from './messages';
13
10
  const searchCountStyles = xcss({
14
11
  flex: 1
15
12
  });
13
+ const ItemCountWrapper = ({
14
+ url,
15
+ children,
16
+ testId
17
+ }) => /*#__PURE__*/React.createElement(Flex, {
18
+ testId: testId,
19
+ xcss: searchCountStyles,
20
+ alignItems: "center"
21
+ }, /*#__PURE__*/React.createElement(LinkUrl, {
22
+ href: url,
23
+ target: "_blank",
24
+ testId: "item-count-url"
25
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
26
+ ,
27
+ style: {
28
+ color: `var(--ds-text-accent-gray, ${N800})`,
29
+ textDecoration: !url ? 'none' : ''
30
+ }
31
+ }, /*#__PURE__*/React.createElement(Heading, {
32
+ level: "h200"
33
+ }, children)));
16
34
  export const AssetsItemCount = ({
17
35
  searchCount,
18
36
  url,
@@ -21,29 +39,16 @@ export const AssetsItemCount = ({
21
39
  let capCount = searchCount >= 1000;
22
40
  let displayCount = capCount ? 1000 : searchCount;
23
41
  let countModifier = capCount ? '+' : '';
24
- return /*#__PURE__*/React.createElement(Flex, {
42
+ return /*#__PURE__*/React.createElement(ItemCountWrapper, {
25
43
  testId: testId,
26
- xcss: searchCountStyles,
27
- alignItems: "center"
28
- }, /*#__PURE__*/React.createElement(LinkUrl, {
29
- href: url,
30
- target: "_blank",
31
- testId: "item-count-url"
32
- // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
33
- ,
34
- style: {
35
- color: `var(--ds-text-accent-gray, ${N800})`,
36
- textDecoration: !url ? 'none' : ''
37
- }
38
- }, /*#__PURE__*/React.createElement(Heading, {
39
- level: "h200"
44
+ url: url
40
45
  }, /*#__PURE__*/React.createElement(FormattedNumber, {
41
46
  value: displayCount
42
47
  }), countModifier, ' ', /*#__PURE__*/React.createElement(FormattedMessage, _extends({}, footerMessages.itemText, {
43
48
  values: {
44
49
  itemCount: searchCount
45
50
  }
46
- })))));
51
+ })));
47
52
  };
48
53
  const TableSearchCount = ({
49
54
  url,
@@ -51,40 +56,13 @@ const TableSearchCount = ({
51
56
  testId = 'datasource-table-total-results-count',
52
57
  prefixTextType = 'issue'
53
58
  }) => {
54
- return /*#__PURE__*/React.createElement(Flex, {
59
+ return /*#__PURE__*/React.createElement(ItemCountWrapper, {
55
60
  testId: testId,
56
- xcss: searchCountStyles,
57
- alignItems: "center"
58
- }, /*#__PURE__*/React.createElement(LinkUrl, {
59
- href: url,
60
- target: "_blank",
61
- testId: "item-count-url"
62
- // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
63
- ,
64
- style: {
65
- color: `var(--ds-text-accent-gray, ${N800})`,
66
- textDecoration: !url ? 'none' : ''
67
- }
68
- }, /*#__PURE__*/React.createElement(Heading, {
69
- level: "h200"
70
- }, fg('platform.linking-platform.datasource.total-count-i18n-single-key') ? /*#__PURE__*/React.createElement(FormattedMessage, _extends({}, searchCountMessages[`${prefixTextType}CountText`], {
61
+ url: url
62
+ }, /*#__PURE__*/React.createElement(FormattedMessage, _extends({}, searchCountMessages[`${prefixTextType}CountText`], {
71
63
  values: {
72
64
  searchCount
73
65
  }
74
- })) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormattedNumber, {
75
- value: searchCount
76
- }), ' ', prefixTextType === 'issue' && /*#__PURE__*/React.createElement(FormattedMessage, _extends({}, modalMessages.issueText, {
77
- values: {
78
- totalCount: searchCount
79
- }
80
- })), prefixTextType === 'result' && /*#__PURE__*/React.createElement(FormattedMessage, _extends({}, confluenceSearchModalMessages.searchCountText, {
81
- values: {
82
- totalCount: searchCount
83
- }
84
- })), prefixTextType === 'item' && /*#__PURE__*/React.createElement(FormattedMessage, _extends({}, footerMessages.itemText, {
85
- values: {
86
- itemCount: searchCount
87
- }
88
- }))))));
66
+ })));
89
67
  };
90
68
  export default TableSearchCount;
@@ -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
+ });
@@ -10,11 +10,6 @@ export const confluenceSearchModalMessages = defineMessages({
10
10
  description: 'Button text to insert the displayed content',
11
11
  defaultMessage: 'Insert results'
12
12
  },
13
- searchCountText: {
14
- id: 'linkDataSource.confluence-search.configmodal.resultsCountText',
15
- description: 'Text that appears after search count number.',
16
- defaultMessage: '{totalCount, plural, one {result} other {results}}'
17
- },
18
13
  insertIssuesTitle: {
19
14
  id: 'linkDataSource.confluence-search.configmodal.insertConfluenceTitle',
20
15
  description: 'Title for the Confluence Search Datasource Confluence Search config modal',
@@ -1,4 +1,4 @@
1
- // these types have been taken from jira-frontend to ensure the colour data return gets mapped correctly for the lozenge
1
+ // These types have been taken from jira-frontend to ensure the colour data return gets mapped correctly for the lozenge
2
2
  export const appearanceMap = {
3
3
  BLUE_GRAY: 'default',
4
4
  MEDIUM_GRAY: 'default',