@atlaskit/link-datasource 2.5.10 → 2.5.12

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 (207) hide show
  1. package/CHANGELOG.md +20 -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 +81 -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/common/modal/insert-button/index.js +95 -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/confluence-search-modal/modal/ModalOld.js +2 -2
  34. package/dist/cjs/ui/confluence-search-modal/modal/index.js +87 -184
  35. package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/isQueryTooComplex.js +1 -1
  36. package/dist/cjs/ui/jira-issues-modal/jira-search-container/index.js +2 -2
  37. package/dist/cjs/ui/jira-issues-modal/modal/ModalOld.js +492 -0
  38. package/dist/cjs/ui/jira-issues-modal/modal/index.js +35 -38
  39. package/dist/es2019/i18n/cs.js +0 -2
  40. package/dist/es2019/i18n/da.js +0 -2
  41. package/dist/es2019/i18n/de.js +0 -2
  42. package/dist/es2019/i18n/en.js +0 -2
  43. package/dist/es2019/i18n/en_GB.js +0 -2
  44. package/dist/es2019/i18n/en_ZZ.js +0 -2
  45. package/dist/es2019/i18n/es.js +0 -2
  46. package/dist/es2019/i18n/fi.js +0 -2
  47. package/dist/es2019/i18n/fr.js +0 -2
  48. package/dist/es2019/i18n/hu.js +0 -2
  49. package/dist/es2019/i18n/it.js +0 -2
  50. package/dist/es2019/i18n/ja.js +0 -2
  51. package/dist/es2019/i18n/ko.js +0 -2
  52. package/dist/es2019/i18n/nb.js +0 -2
  53. package/dist/es2019/i18n/nl.js +0 -2
  54. package/dist/es2019/i18n/pl.js +0 -2
  55. package/dist/es2019/i18n/pt_BR.js +0 -2
  56. package/dist/es2019/i18n/ru.js +0 -2
  57. package/dist/es2019/i18n/sv.js +0 -2
  58. package/dist/es2019/i18n/th.js +0 -2
  59. package/dist/es2019/i18n/tr.js +0 -2
  60. package/dist/es2019/i18n/uk.js +0 -2
  61. package/dist/es2019/i18n/vi.js +0 -2
  62. package/dist/es2019/i18n/zh.js +0 -2
  63. package/dist/es2019/i18n/zh_TW.js +0 -2
  64. package/dist/es2019/ui/common/modal/datasource-context/index.js +66 -0
  65. package/dist/es2019/ui/common/modal/datasources-table-in-modal-preview/index.js +41 -0
  66. package/dist/es2019/ui/common/modal/datasources-table-in-modal-preview/use-column-visibility/index.js +27 -0
  67. package/dist/es2019/ui/common/modal/insert-button/index.js +96 -0
  68. package/dist/es2019/ui/{jira-issues-modal → common/modal}/mode-switcher/index.js +19 -0
  69. package/dist/es2019/ui/common/modal/mode-switcher/useViewModeContext.js +26 -0
  70. package/dist/es2019/ui/confluence-search-modal/modal/ModalOld.js +2 -2
  71. package/dist/es2019/ui/confluence-search-modal/modal/index.js +82 -166
  72. package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/isQueryTooComplex.js +2 -2
  73. package/dist/es2019/ui/jira-issues-modal/jira-search-container/index.js +3 -3
  74. package/dist/es2019/ui/jira-issues-modal/modal/ModalOld.js +476 -0
  75. package/dist/es2019/ui/jira-issues-modal/modal/index.js +24 -18
  76. package/dist/esm/i18n/cs.js +0 -2
  77. package/dist/esm/i18n/da.js +0 -2
  78. package/dist/esm/i18n/de.js +0 -2
  79. package/dist/esm/i18n/en.js +0 -2
  80. package/dist/esm/i18n/en_GB.js +0 -2
  81. package/dist/esm/i18n/en_ZZ.js +0 -2
  82. package/dist/esm/i18n/es.js +0 -2
  83. package/dist/esm/i18n/fi.js +0 -2
  84. package/dist/esm/i18n/fr.js +0 -2
  85. package/dist/esm/i18n/hu.js +0 -2
  86. package/dist/esm/i18n/it.js +0 -2
  87. package/dist/esm/i18n/ja.js +0 -2
  88. package/dist/esm/i18n/ko.js +0 -2
  89. package/dist/esm/i18n/nb.js +0 -2
  90. package/dist/esm/i18n/nl.js +0 -2
  91. package/dist/esm/i18n/pl.js +0 -2
  92. package/dist/esm/i18n/pt_BR.js +0 -2
  93. package/dist/esm/i18n/ru.js +0 -2
  94. package/dist/esm/i18n/sv.js +0 -2
  95. package/dist/esm/i18n/th.js +0 -2
  96. package/dist/esm/i18n/tr.js +0 -2
  97. package/dist/esm/i18n/uk.js +0 -2
  98. package/dist/esm/i18n/vi.js +0 -2
  99. package/dist/esm/i18n/zh.js +0 -2
  100. package/dist/esm/i18n/zh_TW.js +0 -2
  101. package/dist/esm/ui/common/modal/datasource-context/index.js +71 -0
  102. package/dist/esm/ui/common/modal/datasources-table-in-modal-preview/index.js +40 -0
  103. package/dist/esm/ui/common/modal/datasources-table-in-modal-preview/use-column-visibility/index.js +27 -0
  104. package/dist/esm/ui/common/modal/insert-button/index.js +92 -0
  105. package/dist/esm/ui/{jira-issues-modal → common/modal}/mode-switcher/index.js +18 -0
  106. package/dist/esm/ui/common/modal/mode-switcher/useViewModeContext.js +31 -0
  107. package/dist/esm/ui/confluence-search-modal/modal/ModalOld.js +2 -2
  108. package/dist/esm/ui/confluence-search-modal/modal/index.js +89 -185
  109. package/dist/esm/ui/jira-issues-modal/basic-filters/utils/isQueryTooComplex.js +2 -2
  110. package/dist/esm/ui/jira-issues-modal/jira-search-container/index.js +3 -3
  111. package/dist/esm/ui/jira-issues-modal/modal/ModalOld.js +489 -0
  112. package/dist/esm/ui/jira-issues-modal/modal/index.js +37 -38
  113. package/dist/types/i18n/cs.d.ts +0 -2
  114. package/dist/types/i18n/da.d.ts +0 -2
  115. package/dist/types/i18n/de.d.ts +0 -2
  116. package/dist/types/i18n/en.d.ts +0 -2
  117. package/dist/types/i18n/en_GB.d.ts +0 -2
  118. package/dist/types/i18n/en_ZZ.d.ts +0 -2
  119. package/dist/types/i18n/es.d.ts +0 -2
  120. package/dist/types/i18n/fi.d.ts +0 -2
  121. package/dist/types/i18n/fr.d.ts +0 -2
  122. package/dist/types/i18n/hu.d.ts +0 -2
  123. package/dist/types/i18n/it.d.ts +0 -2
  124. package/dist/types/i18n/ja.d.ts +0 -2
  125. package/dist/types/i18n/ko.d.ts +0 -2
  126. package/dist/types/i18n/nb.d.ts +0 -2
  127. package/dist/types/i18n/nl.d.ts +0 -2
  128. package/dist/types/i18n/pl.d.ts +0 -2
  129. package/dist/types/i18n/pt_BR.d.ts +0 -2
  130. package/dist/types/i18n/ru.d.ts +0 -2
  131. package/dist/types/i18n/sv.d.ts +0 -2
  132. package/dist/types/i18n/th.d.ts +0 -2
  133. package/dist/types/i18n/tr.d.ts +0 -2
  134. package/dist/types/i18n/uk.d.ts +0 -2
  135. package/dist/types/i18n/vi.d.ts +0 -2
  136. package/dist/types/i18n/zh.d.ts +0 -2
  137. package/dist/types/i18n/zh_TW.d.ts +0 -2
  138. package/dist/types/ui/common/modal/datasource-context/index.d.ts +30 -0
  139. package/dist/types/ui/common/modal/datasources-table-in-modal-preview/index.d.ts +5 -0
  140. package/dist/types/ui/common/modal/datasources-table-in-modal-preview/use-column-resize/index.d.ts +3 -0
  141. package/dist/types/ui/common/modal/datasources-table-in-modal-preview/use-column-visibility/index.d.ts +11 -0
  142. package/dist/types/ui/common/modal/datasources-table-in-modal-preview/use-column-wrapping/index.d.ts +3 -0
  143. package/dist/types/ui/common/modal/insert-button/index.d.ts +9 -0
  144. package/dist/{types-ts4.5/ui/jira-issues-modal → types/ui/common/modal}/mode-switcher/index.d.ts +1 -0
  145. package/dist/types/ui/common/modal/mode-switcher/useViewModeContext.d.ts +14 -0
  146. package/dist/types/ui/jira-issues-modal/modal/ModalOld.d.ts +3 -0
  147. package/dist/types-ts4.5/i18n/cs.d.ts +0 -2
  148. package/dist/types-ts4.5/i18n/da.d.ts +0 -2
  149. package/dist/types-ts4.5/i18n/de.d.ts +0 -2
  150. package/dist/types-ts4.5/i18n/en.d.ts +0 -2
  151. package/dist/types-ts4.5/i18n/en_GB.d.ts +0 -2
  152. package/dist/types-ts4.5/i18n/en_ZZ.d.ts +0 -2
  153. package/dist/types-ts4.5/i18n/es.d.ts +0 -2
  154. package/dist/types-ts4.5/i18n/fi.d.ts +0 -2
  155. package/dist/types-ts4.5/i18n/fr.d.ts +0 -2
  156. package/dist/types-ts4.5/i18n/hu.d.ts +0 -2
  157. package/dist/types-ts4.5/i18n/it.d.ts +0 -2
  158. package/dist/types-ts4.5/i18n/ja.d.ts +0 -2
  159. package/dist/types-ts4.5/i18n/ko.d.ts +0 -2
  160. package/dist/types-ts4.5/i18n/nb.d.ts +0 -2
  161. package/dist/types-ts4.5/i18n/nl.d.ts +0 -2
  162. package/dist/types-ts4.5/i18n/pl.d.ts +0 -2
  163. package/dist/types-ts4.5/i18n/pt_BR.d.ts +0 -2
  164. package/dist/types-ts4.5/i18n/ru.d.ts +0 -2
  165. package/dist/types-ts4.5/i18n/sv.d.ts +0 -2
  166. package/dist/types-ts4.5/i18n/th.d.ts +0 -2
  167. package/dist/types-ts4.5/i18n/tr.d.ts +0 -2
  168. package/dist/types-ts4.5/i18n/uk.d.ts +0 -2
  169. package/dist/types-ts4.5/i18n/vi.d.ts +0 -2
  170. package/dist/types-ts4.5/i18n/zh.d.ts +0 -2
  171. package/dist/types-ts4.5/i18n/zh_TW.d.ts +0 -2
  172. package/dist/types-ts4.5/ui/common/modal/datasource-context/index.d.ts +30 -0
  173. package/dist/types-ts4.5/ui/common/modal/datasources-table-in-modal-preview/index.d.ts +5 -0
  174. package/dist/types-ts4.5/ui/common/modal/datasources-table-in-modal-preview/use-column-resize/index.d.ts +3 -0
  175. package/dist/types-ts4.5/ui/common/modal/datasources-table-in-modal-preview/use-column-visibility/index.d.ts +11 -0
  176. package/dist/types-ts4.5/ui/common/modal/datasources-table-in-modal-preview/use-column-wrapping/index.d.ts +3 -0
  177. package/dist/types-ts4.5/ui/common/modal/insert-button/index.d.ts +9 -0
  178. package/dist/{types/ui/jira-issues-modal → types-ts4.5/ui/common/modal}/mode-switcher/index.d.ts +1 -0
  179. package/dist/types-ts4.5/ui/common/modal/mode-switcher/useViewModeContext.d.ts +14 -0
  180. package/dist/types-ts4.5/ui/jira-issues-modal/modal/ModalOld.d.ts +3 -0
  181. package/examples-helpers/useCommonTableProps.tsx +2 -2
  182. package/package.json +6 -6
  183. package/dist/cjs/ui/common/modal/datasource-context/DatasourceContext.js +0 -18
  184. package/dist/cjs/ui/common/modal/datasource-context/DatasourceContextProvider.js +0 -35
  185. package/dist/cjs/ui/datasources-table-in-modal-preview/index.js +0 -26
  186. package/dist/es2019/ui/common/modal/datasource-context/DatasourceContext.js +0 -9
  187. package/dist/es2019/ui/common/modal/datasource-context/DatasourceContextProvider.js +0 -27
  188. package/dist/es2019/ui/datasources-table-in-modal-preview/index.js +0 -20
  189. package/dist/esm/ui/common/modal/datasource-context/DatasourceContext.js +0 -9
  190. package/dist/esm/ui/common/modal/datasource-context/DatasourceContextProvider.js +0 -26
  191. package/dist/esm/ui/datasources-table-in-modal-preview/index.js +0 -19
  192. package/dist/types/ui/common/modal/datasource-context/DatasourceContext.d.ts +0 -11
  193. package/dist/types/ui/common/modal/datasource-context/DatasourceContextProvider.d.ts +0 -10
  194. package/dist/types/ui/datasources-table-in-modal-preview/index.d.ts +0 -20
  195. package/dist/types/ui/issue-like-table/use-column-resize/index.d.ts +0 -5
  196. package/dist/types/ui/issue-like-table/use-column-wrapping/index.d.ts +0 -4
  197. package/dist/types-ts4.5/ui/common/modal/datasource-context/DatasourceContext.d.ts +0 -11
  198. package/dist/types-ts4.5/ui/common/modal/datasource-context/DatasourceContextProvider.d.ts +0 -10
  199. package/dist/types-ts4.5/ui/datasources-table-in-modal-preview/index.d.ts +0 -20
  200. package/dist/types-ts4.5/ui/issue-like-table/use-column-resize/index.d.ts +0 -5
  201. package/dist/types-ts4.5/ui/issue-like-table/use-column-wrapping/index.d.ts +0 -4
  202. /package/dist/cjs/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-resize/index.js +0 -0
  203. /package/dist/cjs/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-wrapping/index.js +0 -0
  204. /package/dist/es2019/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-resize/index.js +0 -0
  205. /package/dist/es2019/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-wrapping/index.js +0 -0
  206. /package/dist/esm/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-resize/index.js +0 -0
  207. /package/dist/esm/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-wrapping/index.js +0 -0
@@ -0,0 +1,96 @@
1
+ /** @jsx jsx */
2
+
3
+ import { useCallback } from 'react';
4
+
5
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
6
+ import { jsx } from '@emotion/react';
7
+ import Button from '@atlaskit/button/standard-button';
8
+ import { EVENT_CHANNEL } from '../../../../analytics';
9
+ import { DatasourceDisplay, DatasourceSearchMethod } from '../../../../analytics/types';
10
+ import { buildDatasourceAdf } from '../../../../common/utils/adf';
11
+ import { useUserInteractions } from '../../../../contexts/user-interactions';
12
+ import { useDatasourceContext } from '../datasource-context';
13
+ import { useViewModeContext } from '../mode-switcher/useViewModeContext';
14
+ export const InsertButton = ({
15
+ testId,
16
+ url,
17
+ getAnalyticsPayload,
18
+ children
19
+ }) => {
20
+ const {
21
+ datasourceId,
22
+ parameters,
23
+ tableState: {
24
+ status,
25
+ totalCount
26
+ },
27
+ isValidParameters,
28
+ visibleColumnCount,
29
+ visibleColumnKeys,
30
+ columnCustomSizes,
31
+ wrappedColumnKeys,
32
+ onInsert
33
+ } = useDatasourceContext();
34
+ const userInteractions = useUserInteractions();
35
+ const {
36
+ currentViewMode
37
+ } = useViewModeContext();
38
+ const isInsertDisabled = !isValidParameters(parameters) || status === 'rejected' || status === 'unauthorized' || status === 'loading';
39
+ const onInsertPressed = useCallback((e, analyticsEvent) => {
40
+ var _insertButtonClickedE;
41
+ if (!parameters || !isValidParameters(parameters) || !url) {
42
+ return;
43
+ }
44
+ const insertButtonClickedEvent = analyticsEvent.update({
45
+ actionSubjectId: 'insert',
46
+ attributes: {
47
+ ...getAnalyticsPayload(),
48
+ totalItemCount: totalCount || 0,
49
+ displayedColumnCount: visibleColumnCount.current,
50
+ display: currentViewMode === 'inline' ? DatasourceDisplay.DATASOURCE_INLINE : DatasourceDisplay.DATASOURCE_TABLE,
51
+ searchMethod: DatasourceSearchMethod.DATASOURCE_SEARCH_QUERY,
52
+ actions: userInteractions.get()
53
+ },
54
+ eventType: 'ui'
55
+ });
56
+ const consumerEvent = (_insertButtonClickedE = insertButtonClickedEvent.clone()) !== null && _insertButtonClickedE !== void 0 ? _insertButtonClickedE : undefined;
57
+ insertButtonClickedEvent.fire(EVENT_CHANNEL);
58
+ if (currentViewMode === 'inline') {
59
+ onInsert({
60
+ type: 'inlineCard',
61
+ attrs: {
62
+ url
63
+ }
64
+ }, consumerEvent);
65
+ } else {
66
+ onInsert(buildDatasourceAdf({
67
+ id: datasourceId,
68
+ parameters: parameters,
69
+ views: [{
70
+ type: 'table',
71
+ properties: {
72
+ columns: (visibleColumnKeys || []).map(key => {
73
+ const width = columnCustomSizes === null || columnCustomSizes === void 0 ? void 0 : columnCustomSizes[key];
74
+ const isWrapped = wrappedColumnKeys === null || wrappedColumnKeys === void 0 ? void 0 : wrappedColumnKeys.includes(key);
75
+ return {
76
+ key,
77
+ ...(width ? {
78
+ width
79
+ } : {}),
80
+ ...(isWrapped ? {
81
+ isWrapped
82
+ } : {})
83
+ };
84
+ })
85
+ }
86
+ }]
87
+ }, url), consumerEvent);
88
+ }
89
+ }, [isValidParameters, parameters, url, getAnalyticsPayload, totalCount, visibleColumnCount, currentViewMode, userInteractions, onInsert, datasourceId, visibleColumnKeys, columnCustomSizes, wrappedColumnKeys]);
90
+ return jsx(Button, {
91
+ appearance: "primary",
92
+ onClick: onInsertPressed,
93
+ isDisabled: isInsertDisabled,
94
+ testId: testId
95
+ }, children);
96
+ };
@@ -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
+ };
@@ -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
 
@@ -5,19 +6,16 @@ import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'rea
5
6
  import { jsx } from '@emotion/react';
6
7
  import { FormattedMessage } from 'react-intl-next';
7
8
  import { withAnalyticsContext } from '@atlaskit/analytics-next';
8
- import Button from '@atlaskit/button';
9
9
  import { IntlMessagesProvider } from '@atlaskit/intl-messages-provider';
10
10
  import { ModalBody, ModalFooter, ModalHeader, ModalTitle } from '@atlaskit/modal-dialog';
11
11
  import { fg } from '@atlaskit/platform-feature-flags';
12
12
  import { Box, xcss } from '@atlaskit/primitives';
13
- import { EVENT_CHANNEL, useDatasourceAnalyticsEvents } from '../../../analytics';
13
+ import { useDatasourceAnalyticsEvents } from '../../../analytics';
14
14
  import { componentMetadata } from '../../../analytics/constants';
15
- import { DatasourceAction, DatasourceDisplay, DatasourceSearchMethod } from '../../../analytics/types';
16
- import { buildDatasourceAdf } from '../../../common/utils/adf';
15
+ import { DatasourceAction, DatasourceSearchMethod } from '../../../analytics/types';
17
16
  import { fetchMessagesForLocale } from '../../../common/utils/locale/fetch-messages-for-locale';
18
17
  import { DatasourceExperienceIdProvider } from '../../../contexts/datasource-experience-id';
19
18
  import { UserInteractionsProvider, useUserInteractions } from '../../../contexts/user-interactions';
20
- import { useDatasourceTableState } from '../../../hooks/useDatasourceTableState';
21
19
  import i18nEN from '../../../i18n/en';
22
20
  import { useAvailableSites } from '../../../services/useAvailableSites';
23
21
  import { AccessRequired } from '../../common/error-state/access-required';
@@ -28,44 +26,65 @@ import { InitialStateView } from '../../common/initial-state-view';
28
26
  import { CancelButton } from '../../common/modal/cancel-button';
29
27
  import { ContentContainer } from '../../common/modal/content-container';
30
28
  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';
29
+ import { DatasourceContextProvider, useDatasourceContext } from '../../common/modal/datasource-context';
33
30
  import { DatasourceModal } from '../../common/modal/datasource-modal';
34
- import { DisplayViewDropDown } from '../../common/modal/display-view-dropdown/display-view-drop-down';
31
+ import DatasourcesTableInModalPreview from '../../common/modal/datasources-table-in-modal-preview';
32
+ import { InsertButton } from '../../common/modal/insert-button';
33
+ import { DatasourceViewModeDropDown } from '../../common/modal/mode-switcher';
34
+ import { DatasourceViewModeProvider, useViewModeContext } from '../../common/modal/mode-switcher/useViewModeContext';
35
35
  import TableSearchCount from '../../common/modal/search-count';
36
36
  import { SiteSelector } from '../../common/modal/site-selector';
37
- import DatasourcesTableUsingContext from '../../datasources-table-in-modal-preview';
38
37
  import { EmptyState } from '../../issue-like-table';
39
- import { getColumnAction } from '../../issue-like-table/utils';
40
38
  import ConfluenceSearchContainer from '../confluence-search-container';
41
39
  import { ConfluenceSearchInitialStateSVG } from './confluence-search-initial-state-svg';
42
40
  import { confluenceSearchModalMessages } from './messages';
43
41
  import { PlainConfluenceSearchConfigModal as PlainConfluenceSearchConfigModalOld } from './ModalOld';
42
+ const DEFAULT_VIEW_MODE = 'table';
44
43
  const inputContainerStyles = xcss({
45
44
  alignItems: 'baseline',
46
45
  display: 'flex',
47
46
  minHeight: '72px'
48
47
  });
48
+ const isValidParameters = parameters => {
49
+ var _parameters$contribut;
50
+ 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));
51
+ };
52
+ const useUpdateParametersOnFormUpdate = (cloudId, searchString, lastModified, contributorAccountIds, overrideParameters) => {
53
+ const {
54
+ setParameters
55
+ } = useDatasourceContext();
56
+ useEffect(() => {
57
+ setParameters(parameters => {
58
+ return {
59
+ ...parameters,
60
+ cloudId: cloudId || '',
61
+ searchString,
62
+ lastModified: lastModified === null || lastModified === void 0 ? void 0 : lastModified.value,
63
+ lastModifiedFrom: lastModified === null || lastModified === void 0 ? void 0 : lastModified.from,
64
+ lastModifiedTo: lastModified === null || lastModified === void 0 ? void 0 : lastModified.to,
65
+ contributorAccountIds: contributorAccountIds.length > 0 ? contributorAccountIds : undefined,
66
+ ...(overrideParameters !== null && overrideParameters !== void 0 ? overrideParameters : {})
67
+ };
68
+ });
69
+ }, [cloudId, searchString, lastModified, contributorAccountIds, setParameters, overrideParameters]);
70
+ };
49
71
  export const PlainConfluenceSearchConfigModal = props => {
50
72
  const {
51
- datasourceId,
52
73
  onCancel,
53
- onInsert,
54
- viewMode = 'table',
55
74
  parameters: initialParameters,
56
75
  url: urlBeingEdited,
57
- visibleColumnKeys: initialVisibleColumnKeys,
58
76
  disableDisplayDropdown = false,
59
77
  overrideParameters
60
78
  } = props;
61
- const [currentViewMode, setCurrentViewMode] = useState(viewMode);
79
+ const {
80
+ currentViewMode
81
+ } = useViewModeContext();
62
82
  const [cloudId, setCloudId] = useState(initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.cloudId);
63
83
  const {
64
84
  availableSites,
65
85
  selectedSite: selectedConfluenceSite
66
86
  } = useAvailableSites('confluence', cloudId);
67
87
  const [searchString, setSearchString] = useState(initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.searchString);
68
- const [visibleColumnKeys, setVisibleColumnKeys] = useState(initialVisibleColumnKeys);
69
88
  const [contributorAccountIds, setContributorAccountIds] = useState((initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.contributorAccountIds) || []);
70
89
  const [lastModified, setLastModified] = useState(initialParameters !== null && initialParameters !== void 0 && initialParameters.lastModified ? {
71
90
  value: initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.lastModified,
@@ -76,43 +95,21 @@ export const PlainConfluenceSearchConfigModal = props => {
76
95
  // analytics related parameters
77
96
  const searchCount = useRef(0);
78
97
  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]);
98
+ useUpdateParametersOnFormUpdate(cloudId, searchString, lastModified, contributorAccountIds, overrideParameters);
99
99
  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
- });
100
+ visibleColumnKeys,
101
+ tableState: {
102
+ reset,
103
+ status,
104
+ responseItems,
105
+ extensionKey = null,
106
+ destinationObjectTypes,
107
+ totalCount,
108
+ columns
109
+ },
110
+ visibleColumnCount,
111
+ parameters
112
+ } = useDatasourceContext();
116
113
  const {
117
114
  fireEvent
118
115
  } = useDatasourceAnalyticsEvents();
@@ -146,36 +143,7 @@ export const PlainConfluenceSearchConfigModal = props => {
146
143
  shouldForceRequest: true
147
144
  });
148
145
  }, [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
146
  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
147
  const resolvedWithNoResults = status === 'resolved' && !responseItems.length;
180
148
  const hasConfluenceSearchParams = selectedConfluenceSite && searchString;
181
149
  const selectedConfluenceSiteUrl = selectedConfluenceSite === null || selectedConfluenceSite === void 0 ? void 0 : selectedConfluenceSite.url;
@@ -223,7 +191,7 @@ export const PlainConfluenceSearchConfigModal = props => {
223
191
  displayedColumnCount: visibleColumnCount.current
224
192
  });
225
193
  }
226
- }, [analyticsPayload, fireEvent, totalCount, isDataReady]);
194
+ }, [isDataReady, fireEvent, analyticsPayload, totalCount, visibleColumnCount]);
227
195
  useEffect(() => {
228
196
  const isResolved = status === 'resolved';
229
197
  const isTableViewMode = currentViewMode === 'table';
@@ -259,8 +227,12 @@ export const PlainConfluenceSearchConfigModal = props => {
259
227
  description: confluenceSearchModalMessages.initialViewSearchDescription
260
228
  }));
261
229
  }
262
- return confluenceSearchTable;
263
- }, [columns.length, selectedConfluenceSiteUrl, confluenceSearchTable, resolvedWithNoResults, status, urlBeingEdited, hasConfluenceSearchParams]);
230
+ return jsx(ContentContainer, {
231
+ withTableBorder: true
232
+ }, jsx(DatasourcesTableInModalPreview, {
233
+ testId: "confluence-search-datasource-table"
234
+ }));
235
+ }, [columns.length, selectedConfluenceSiteUrl, resolvedWithNoResults, status, urlBeingEdited, hasConfluenceSearchParams]);
264
236
  const renderInlineLinkModalContent = useCallback(() => {
265
237
  if (status === 'unauthorized') {
266
238
  return jsx(AccessRequired, {
@@ -277,69 +249,6 @@ export const PlainConfluenceSearchConfigModal = props => {
277
249
  }
278
250
  }, [confluenceSearchUrl, selectedConfluenceSiteUrl, status, urlBeingEdited]);
279
251
  const shouldShowResultsCount = !!totalCount && currentViewMode === 'table';
280
- const {
281
- columnCustomSizes,
282
- wrappedColumnKeys
283
- } = useDatasourceContext();
284
- const onInsertPressed = useCallback((e, analyticsEvent) => {
285
- var _insertButtonClickedE;
286
- if (!isParametersSet || !cloudId || !confluenceSearchUrl) {
287
- return;
288
- }
289
- const insertButtonClickedEvent = analyticsEvent.update({
290
- actionSubjectId: 'insert',
291
- attributes: {
292
- ...analyticsPayload,
293
- totalItemCount: totalCount || 0,
294
- displayedColumnCount: visibleColumnCount.current,
295
- display: currentViewMode === 'inline' ? DatasourceDisplay.DATASOURCE_INLINE : DatasourceDisplay.DATASOURCE_TABLE,
296
- searchCount: searchCount.current,
297
- searchMethod: DatasourceSearchMethod.DATASOURCE_SEARCH_QUERY,
298
- actions: userInteractions.get()
299
- },
300
- eventType: 'ui'
301
- });
302
- const consumerEvent = (_insertButtonClickedE = insertButtonClickedEvent.clone()) !== null && _insertButtonClickedE !== void 0 ? _insertButtonClickedE : undefined;
303
- insertButtonClickedEvent.fire(EVENT_CHANNEL);
304
- if (currentViewMode === 'inline') {
305
- onInsert({
306
- type: 'inlineCard',
307
- attrs: {
308
- url: confluenceSearchUrl
309
- }
310
- }, consumerEvent);
311
- } else {
312
- onInsert(buildDatasourceAdf({
313
- id: datasourceId,
314
- parameters: {
315
- ...parametersToSend,
316
- cloudId
317
- },
318
- views: [{
319
- type: 'table',
320
- properties: {
321
- columns: (visibleColumnKeys || []).map(key => {
322
- const width = columnCustomSizes === null || columnCustomSizes === void 0 ? void 0 : columnCustomSizes[key];
323
- const isWrapped = wrappedColumnKeys === null || wrappedColumnKeys === void 0 ? void 0 : wrappedColumnKeys.includes(key);
324
- return {
325
- key,
326
- ...(width ? {
327
- width
328
- } : {}),
329
- ...(isWrapped ? {
330
- isWrapped
331
- } : {})
332
- };
333
- })
334
- }
335
- }]
336
- }, confluenceSearchUrl), consumerEvent);
337
- }
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
- };
343
252
  const onSearch = useCallback((newSearchString, filters) => {
344
253
  searchCount.current++;
345
254
  userInteractions.add(DatasourceAction.QUERY_UPDATED);
@@ -368,8 +277,7 @@ export const PlainConfluenceSearchConfigModal = props => {
368
277
  shouldForceRequest: true
369
278
  });
370
279
  }, [reset, userInteractions]);
371
- const isInsertDisabled = !isParametersSet || status === 'rejected' || status === 'unauthorized' || status === 'loading';
372
- const getCancelButtonAnalyticsPayload = useCallback(() => {
280
+ const getButtonAnalyticsPayload = useCallback(() => {
373
281
  return {
374
282
  extensionKey,
375
283
  destinationObjectTypes,
@@ -389,15 +297,14 @@ export const PlainConfluenceSearchConfigModal = props => {
389
297
  selectedSite: selectedConfluenceSite,
390
298
  testId: "confluence-search-datasource-modal--site-selector",
391
299
  label: siteSelectorLabel
392
- })), !hasNoConfluenceSites && !disableDisplayDropdown && jsx(DisplayViewDropDown, {
393
- onViewModeChange: handleViewModeChange,
394
- viewMode: currentViewMode
395
- })), jsx(ModalBody, null, !hasNoConfluenceSites ? jsx(Fragment, null, jsx(Box, {
300
+ })), !hasNoConfluenceSites && !disableDisplayDropdown && jsx(DatasourceViewModeDropDown, null)), jsx(ModalBody, null, !hasNoConfluenceSites ? jsx(Fragment, null, jsx(Box, {
396
301
  xcss: inputContainerStyles
397
302
  }, jsx(ConfluenceSearchContainer, {
398
303
  isSearching: status === 'loading',
399
304
  onSearch: onSearch,
400
- parameters: parameters
305
+ parameters: isValidParameters(parameters) ? parameters : {
306
+ cloudId: ''
307
+ }
401
308
  })), currentViewMode === 'inline' ? renderInlineLinkModalContent() : renderTableModalContent()) : jsx(NoInstancesView, {
402
309
  title: confluenceSearchModalMessages.noAccessToConfluenceSitesTitle,
403
310
  description: confluenceSearchModalMessages.noAccessToConfluenceSitesDescription,
@@ -409,13 +316,12 @@ export const PlainConfluenceSearchConfigModal = props => {
409
316
  testId: "confluence-search-datasource-modal-total-results-count"
410
317
  }), jsx(CancelButton, {
411
318
  onCancel: onCancel,
412
- getAnalyticsPayload: getCancelButtonAnalyticsPayload,
319
+ getAnalyticsPayload: getButtonAnalyticsPayload,
413
320
  testId: "confluence-search-modal--cancel-button"
414
- }), !hasNoConfluenceSites && jsx(Button, {
415
- appearance: "primary",
416
- onClick: onInsertPressed,
417
- isDisabled: isInsertDisabled,
418
- testId: "confluence-search-datasource-modal--insert-button"
321
+ }), !hasNoConfluenceSites && jsx(InsertButton, {
322
+ testId: "confluence-search-datasource-modal--insert-button",
323
+ url: confluenceSearchUrl,
324
+ getAnalyticsPayload: getButtonAnalyticsPayload
419
325
  }, jsx(FormattedMessage, confluenceSearchModalMessages.insertResultsButtonText)))));
420
326
  };
421
327
  const analyticsContextAttributes = {
@@ -431,9 +337,19 @@ const contextData = {
431
337
  ...analyticsContextAttributes
432
338
  }
433
339
  };
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))));
340
+ export const ConfluenceSearchConfigModal = withAnalyticsContext(contextData)(props => {
341
+ var _props$viewMode;
342
+ return jsx(DatasourceExperienceIdProvider, null, jsx(UserInteractionsProvider, null, fg('platform-datasources-use-refactored-config-modal') ? jsx(DatasourceContextProvider, {
343
+ datasourceId: props.datasourceId,
344
+ initialVisibleColumnKeys: props.visibleColumnKeys,
345
+ initialColumnCustomSizes: props.columnCustomSizes,
346
+ initialWrappedColumnKeys: props.wrappedColumnKeys,
347
+ initialParameters: props.parameters,
348
+ isValidParameters: isValidParameters,
349
+ onInsert: props.onInsert
350
+ }, jsx(DatasourceViewModeProvider, {
351
+ viewMode: (_props$viewMode = props.viewMode) !== null && _props$viewMode !== void 0 ? _props$viewMode : DEFAULT_VIEW_MODE
352
+ }, jsx(PlainConfluenceSearchConfigModal, props))) :
353
+ // TODO on cleanup 'use-refactored-config-modal' ff, delete `ModalOld.tsx` as well
354
+ jsx(PlainConfluenceSearchConfigModalOld, props)));
355
+ });
@@ -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;