@atlaskit/link-datasource 1.27.4 → 1.28.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/cjs/services/mocks.js +152 -1
- package/dist/cjs/services/useBasicFilterAGG.js +9 -2
- package/dist/cjs/services/utils.js +3 -2
- package/dist/cjs/ui/common/modal/popup-select/formatOptionLabel.js +6 -3
- package/dist/cjs/ui/common/modal/popup-select/index.js +2 -1
- package/dist/cjs/ui/common/modal/popup-select/trigger.js +1 -2
- package/dist/cjs/ui/confluence-search-modal/basic-filters/filters/date-range-picker/PopupComponent.js +19 -0
- package/dist/cjs/ui/confluence-search-modal/basic-filters/filters/date-range-picker/index.js +89 -0
- package/dist/cjs/ui/confluence-search-modal/basic-filters/filters/date-range-picker/messages.js +49 -0
- package/dist/cjs/ui/confluence-search-modal/basic-filters/filters/date-range-picker/styled.js +75 -0
- package/dist/cjs/ui/confluence-search-modal/basic-filters/filters/date-range-picker/trigger.js +32 -0
- package/dist/cjs/ui/confluence-search-modal/basic-filters/filters/edited-or-created-by/index.js +110 -0
- package/dist/cjs/ui/confluence-search-modal/basic-filters/filters/edited-or-created-by/messages.js +14 -0
- package/dist/cjs/ui/confluence-search-modal/basic-filters/hooks/useCurrentUserInfo.js +48 -0
- package/dist/cjs/ui/confluence-search-modal/basic-filters/hooks/useRecommendation.js +120 -0
- package/dist/cjs/ui/confluence-search-modal/basic-filters/index.js +14 -3
- package/dist/cjs/ui/confluence-search-modal/basic-filters/types.js +11 -0
- package/dist/cjs/ui/confluence-search-modal/confluence-search-container/index.js +25 -1
- package/dist/cjs/ui/confluence-search-modal/modal/index.js +41 -11
- package/dist/cjs/ui/datasource-table-view/datasourceTableView.js +1 -0
- package/dist/cjs/ui/table-footer/index.js +8 -2
- package/dist/cjs/ui/table-footer/messages.js +5 -0
- package/dist/cjs/ui/table-footer/powered-by-jsm-assets/index.js +53 -0
- package/dist/es2019/services/mocks.js +151 -0
- package/dist/es2019/services/useBasicFilterAGG.js +8 -3
- package/dist/es2019/services/utils.js +8 -0
- package/dist/es2019/ui/common/modal/popup-select/formatOptionLabel.js +6 -3
- package/dist/es2019/ui/common/modal/popup-select/index.js +1 -1
- package/dist/es2019/ui/common/modal/popup-select/trigger.js +1 -2
- package/dist/es2019/ui/confluence-search-modal/basic-filters/filters/date-range-picker/PopupComponent.js +7 -0
- package/dist/es2019/ui/confluence-search-modal/basic-filters/filters/date-range-picker/index.js +68 -0
- package/dist/es2019/ui/confluence-search-modal/basic-filters/filters/date-range-picker/messages.js +43 -0
- package/dist/es2019/ui/confluence-search-modal/basic-filters/filters/date-range-picker/styled.js +66 -0
- package/dist/es2019/ui/confluence-search-modal/basic-filters/filters/date-range-picker/trigger.js +26 -0
- package/dist/es2019/ui/confluence-search-modal/basic-filters/filters/edited-or-created-by/index.js +82 -0
- package/dist/es2019/ui/confluence-search-modal/basic-filters/filters/edited-or-created-by/messages.js +8 -0
- package/dist/es2019/ui/confluence-search-modal/basic-filters/hooks/useCurrentUserInfo.js +25 -0
- package/dist/es2019/ui/confluence-search-modal/basic-filters/hooks/useRecommendation.js +74 -0
- package/dist/es2019/ui/confluence-search-modal/basic-filters/index.js +17 -2
- package/dist/es2019/ui/confluence-search-modal/basic-filters/types.js +5 -0
- package/dist/es2019/ui/confluence-search-modal/confluence-search-container/index.js +20 -1
- package/dist/es2019/ui/confluence-search-modal/modal/index.js +27 -3
- package/dist/es2019/ui/datasource-table-view/datasourceTableView.js +1 -0
- package/dist/es2019/ui/table-footer/index.js +7 -1
- package/dist/es2019/ui/table-footer/messages.js +5 -0
- package/dist/es2019/ui/table-footer/powered-by-jsm-assets/index.js +45 -0
- package/dist/esm/services/mocks.js +151 -0
- package/dist/esm/services/useBasicFilterAGG.js +10 -3
- package/dist/esm/services/utils.js +2 -1
- package/dist/esm/ui/common/modal/popup-select/formatOptionLabel.js +6 -3
- package/dist/esm/ui/common/modal/popup-select/index.js +2 -1
- package/dist/esm/ui/common/modal/popup-select/trigger.js +1 -2
- package/dist/esm/ui/confluence-search-modal/basic-filters/filters/date-range-picker/PopupComponent.js +9 -0
- package/dist/esm/ui/confluence-search-modal/basic-filters/filters/date-range-picker/index.js +79 -0
- package/dist/esm/ui/confluence-search-modal/basic-filters/filters/date-range-picker/messages.js +43 -0
- package/dist/esm/ui/confluence-search-modal/basic-filters/filters/date-range-picker/styled.js +68 -0
- package/dist/esm/ui/confluence-search-modal/basic-filters/filters/date-range-picker/trigger.js +25 -0
- package/dist/esm/ui/confluence-search-modal/basic-filters/filters/edited-or-created-by/index.js +100 -0
- package/dist/esm/ui/confluence-search-modal/basic-filters/filters/edited-or-created-by/messages.js +8 -0
- package/dist/esm/ui/confluence-search-modal/basic-filters/hooks/useCurrentUserInfo.js +41 -0
- package/dist/esm/ui/confluence-search-modal/basic-filters/hooks/useRecommendation.js +113 -0
- package/dist/esm/ui/confluence-search-modal/basic-filters/index.js +14 -3
- package/dist/esm/ui/confluence-search-modal/basic-filters/types.js +5 -0
- package/dist/esm/ui/confluence-search-modal/confluence-search-container/index.js +25 -1
- package/dist/esm/ui/confluence-search-modal/modal/index.js +41 -11
- package/dist/esm/ui/datasource-table-view/datasourceTableView.js +1 -0
- package/dist/esm/ui/table-footer/index.js +8 -2
- package/dist/esm/ui/table-footer/messages.js +5 -0
- package/dist/esm/ui/table-footer/powered-by-jsm-assets/index.js +46 -0
- package/dist/types/analytics/generated/analytics.types.d.ts +7 -0
- package/dist/types/services/mocks.d.ts +51 -0
- package/dist/types/services/useBasicFilterAGG.d.ts +2 -0
- package/dist/types/services/utils.d.ts +1 -0
- package/dist/types/ui/common/modal/popup-select/index.d.ts +1 -1
- package/dist/types/ui/common/modal/popup-select/types.d.ts +6 -1
- package/dist/types/ui/confluence-search-modal/basic-filters/filters/date-range-picker/PopupComponent.d.ts +3 -0
- package/dist/types/ui/confluence-search-modal/basic-filters/filters/date-range-picker/index.d.ts +8 -0
- package/dist/types/ui/confluence-search-modal/basic-filters/filters/date-range-picker/messages.d.ts +42 -0
- package/dist/types/ui/confluence-search-modal/basic-filters/filters/date-range-picker/styled.d.ts +31 -0
- package/dist/types/ui/confluence-search-modal/basic-filters/filters/date-range-picker/trigger.d.ts +10 -0
- package/dist/types/ui/confluence-search-modal/basic-filters/filters/edited-or-created-by/index.d.ts +10 -0
- package/dist/types/ui/confluence-search-modal/basic-filters/filters/edited-or-created-by/messages.d.ts +7 -0
- package/dist/types/ui/confluence-search-modal/basic-filters/hooks/useCurrentUserInfo.d.ts +7 -0
- package/dist/types/ui/confluence-search-modal/basic-filters/hooks/useRecommendation.d.ts +16 -0
- package/dist/types/ui/confluence-search-modal/basic-filters/index.d.ts +6 -1
- package/dist/types/ui/confluence-search-modal/basic-filters/types.d.ts +20 -0
- package/dist/types/ui/confluence-search-modal/confluence-search-container/index.d.ts +2 -1
- package/dist/types/ui/confluence-search-modal/types.d.ts +2 -1
- package/dist/types/ui/table-footer/index.d.ts +2 -1
- package/dist/types/ui/table-footer/messages.d.ts +5 -0
- package/dist/types/ui/table-footer/powered-by-jsm-assets/index.d.ts +4 -0
- package/dist/types-ts4.5/analytics/generated/analytics.types.d.ts +7 -0
- package/dist/types-ts4.5/services/mocks.d.ts +51 -0
- package/dist/types-ts4.5/services/useBasicFilterAGG.d.ts +2 -0
- package/dist/types-ts4.5/services/utils.d.ts +1 -0
- package/dist/types-ts4.5/ui/common/modal/popup-select/index.d.ts +1 -1
- package/dist/types-ts4.5/ui/common/modal/popup-select/types.d.ts +6 -1
- package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/filters/date-range-picker/PopupComponent.d.ts +3 -0
- package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/filters/date-range-picker/index.d.ts +8 -0
- package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/filters/date-range-picker/messages.d.ts +42 -0
- package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/filters/date-range-picker/styled.d.ts +31 -0
- package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/filters/date-range-picker/trigger.d.ts +10 -0
- package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/filters/edited-or-created-by/index.d.ts +10 -0
- package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/filters/edited-or-created-by/messages.d.ts +7 -0
- package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/hooks/useCurrentUserInfo.d.ts +7 -0
- package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/hooks/useRecommendation.d.ts +16 -0
- package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/index.d.ts +6 -1
- package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/types.d.ts +20 -0
- package/dist/types-ts4.5/ui/confluence-search-modal/confluence-search-container/index.d.ts +2 -1
- package/dist/types-ts4.5/ui/confluence-search-modal/types.d.ts +2 -1
- package/dist/types-ts4.5/ui/table-footer/index.d.ts +2 -1
- package/dist/types-ts4.5/ui/table-footer/messages.d.ts +5 -0
- package/dist/types-ts4.5/ui/table-footer/powered-by-jsm-assets/index.d.ts +4 -0
- package/examples-helpers/buildAssetsIssuesTable.tsx +71 -0
- package/examples-helpers/useAssetsTableProps.tsx +57 -0
- package/package.json +8 -2
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { JiraServiceManagementIcon } from '@atlaskit/logo';
|
|
3
|
+
import { Box, xcss } from '@atlaskit/primitives';
|
|
4
|
+
import { useDatasourceAnalyticsEvents } from '../../../analytics';
|
|
5
|
+
const jsmTextStyles = xcss({
|
|
6
|
+
fontSize: 'small',
|
|
7
|
+
color: 'color.text.subtle',
|
|
8
|
+
marginLeft: "var(--ds-space-075, 6px)",
|
|
9
|
+
':hover': {
|
|
10
|
+
color: 'color.link.pressed'
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
const jsmContainerStyles = xcss({
|
|
14
|
+
display: 'flex',
|
|
15
|
+
flexDirection: 'row-reverse'
|
|
16
|
+
});
|
|
17
|
+
export const PoweredByJSMAssets = props => {
|
|
18
|
+
const ASSETS_LINK = '/jira/servicedesk/assets';
|
|
19
|
+
const {
|
|
20
|
+
fireEvent
|
|
21
|
+
} = useDatasourceAnalyticsEvents();
|
|
22
|
+
return /*#__PURE__*/React.createElement(Box, {
|
|
23
|
+
xcss: jsmContainerStyles,
|
|
24
|
+
padding: "space.150"
|
|
25
|
+
}, /*#__PURE__*/React.createElement("a", {
|
|
26
|
+
"data-testid": 'powered-by-jsm-assets-link',
|
|
27
|
+
onClick: () => fireEvent('ui.link.clicked.poweredBy', {
|
|
28
|
+
componentHierarchy: 'datasourceTable',
|
|
29
|
+
extensionKey: 'jsm-cmdb-gateway'
|
|
30
|
+
}),
|
|
31
|
+
href: ASSETS_LINK,
|
|
32
|
+
rel: "noreferrer",
|
|
33
|
+
target: "_blank",
|
|
34
|
+
style: {
|
|
35
|
+
display: 'inline-flex',
|
|
36
|
+
alignItems: 'center'
|
|
37
|
+
}
|
|
38
|
+
}, /*#__PURE__*/React.createElement(JiraServiceManagementIcon, {
|
|
39
|
+
size: "xsmall",
|
|
40
|
+
appearance: "brand",
|
|
41
|
+
label: props.text
|
|
42
|
+
}), /*#__PURE__*/React.createElement(Box, {
|
|
43
|
+
xcss: jsmTextStyles
|
|
44
|
+
}, props.text)));
|
|
45
|
+
};
|
|
@@ -125,4 +125,155 @@ export var mockFieldValuesResponse = {
|
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
|
+
};
|
|
129
|
+
export var mockUserRecommendationsResponse = {
|
|
130
|
+
recommendedUsers: [{
|
|
131
|
+
entityType: 'USER',
|
|
132
|
+
id: '5ffe1efc34847e0069446bf8',
|
|
133
|
+
name: 'Atlassian Assist (staging)',
|
|
134
|
+
avatarUrl: '',
|
|
135
|
+
nickname: 'Atlassian Assist (staging)',
|
|
136
|
+
matchPositions: {},
|
|
137
|
+
accessLevel: 'CONTAINER',
|
|
138
|
+
accountStatus: 'ACTIVE',
|
|
139
|
+
notMentionable: false,
|
|
140
|
+
userType: 'APP',
|
|
141
|
+
attributes: {
|
|
142
|
+
isConfluenceExternalCollaborator: false
|
|
143
|
+
}
|
|
144
|
+
}, {
|
|
145
|
+
entityType: 'USER',
|
|
146
|
+
id: '62df272c3aaeedcae755c533',
|
|
147
|
+
name: 'Atlas for Jira (staging)',
|
|
148
|
+
avatarUrl: '',
|
|
149
|
+
nickname: 'Atlas for Jira (staging)',
|
|
150
|
+
matchPositions: {},
|
|
151
|
+
accessLevel: 'CONTAINER',
|
|
152
|
+
accountStatus: 'ACTIVE',
|
|
153
|
+
notMentionable: false,
|
|
154
|
+
userType: 'APP',
|
|
155
|
+
attributes: {
|
|
156
|
+
isConfluenceExternalCollaborator: false
|
|
157
|
+
}
|
|
158
|
+
}, {
|
|
159
|
+
entityType: 'USER',
|
|
160
|
+
id: '6232be743eacc50071fe13ba',
|
|
161
|
+
name: 'Stephen',
|
|
162
|
+
email: 'sdemontfort+10@atlassian.com',
|
|
163
|
+
avatarUrl: '',
|
|
164
|
+
nickname: 'Stephen',
|
|
165
|
+
matchPositions: {},
|
|
166
|
+
accessLevel: 'CONTAINER',
|
|
167
|
+
accountStatus: 'ACTIVE',
|
|
168
|
+
notMentionable: false,
|
|
169
|
+
locale: 'en-GB',
|
|
170
|
+
userType: 'DEFAULT',
|
|
171
|
+
attributes: {
|
|
172
|
+
isConfluenceExternalCollaborator: false
|
|
173
|
+
}
|
|
174
|
+
}, {
|
|
175
|
+
entityType: 'USER',
|
|
176
|
+
id: '608b253e2911000071b6e6d6',
|
|
177
|
+
name: 'Pranay Test 1773',
|
|
178
|
+
email: 'pmarella+1773@atlassian.com',
|
|
179
|
+
avatarUrl: '',
|
|
180
|
+
nickname: 'Pranay Test 1773',
|
|
181
|
+
matchPositions: {},
|
|
182
|
+
accessLevel: 'CONTAINER',
|
|
183
|
+
accountStatus: 'ACTIVE',
|
|
184
|
+
notMentionable: false,
|
|
185
|
+
locale: 'en-US',
|
|
186
|
+
userType: 'DEFAULT',
|
|
187
|
+
attributes: {
|
|
188
|
+
isConfluenceExternalCollaborator: false
|
|
189
|
+
}
|
|
190
|
+
}, {
|
|
191
|
+
entityType: 'USER',
|
|
192
|
+
id: '6202a8cfc4e2c9006ae620b1',
|
|
193
|
+
name: 'Jacob Test3',
|
|
194
|
+
email: 'jbrunson+test3@atlassian.com',
|
|
195
|
+
avatarUrl: '',
|
|
196
|
+
nickname: 'Jacob Test3',
|
|
197
|
+
matchPositions: {},
|
|
198
|
+
accessLevel: 'CONTAINER',
|
|
199
|
+
accountStatus: 'ACTIVE',
|
|
200
|
+
notMentionable: false,
|
|
201
|
+
locale: 'en-US',
|
|
202
|
+
userType: 'DEFAULT',
|
|
203
|
+
attributes: {
|
|
204
|
+
isConfluenceExternalCollaborator: false
|
|
205
|
+
}
|
|
206
|
+
}, {
|
|
207
|
+
entityType: 'USER',
|
|
208
|
+
id: '61428180ff23ba00717b7d78',
|
|
209
|
+
name: 'Test Themes',
|
|
210
|
+
avatarUrl: '',
|
|
211
|
+
nickname: 'Test Themes',
|
|
212
|
+
matchPositions: {},
|
|
213
|
+
accessLevel: 'CONTAINER',
|
|
214
|
+
accountStatus: 'ACTIVE',
|
|
215
|
+
notMentionable: false,
|
|
216
|
+
userType: 'APP',
|
|
217
|
+
attributes: {
|
|
218
|
+
isConfluenceExternalCollaborator: false
|
|
219
|
+
}
|
|
220
|
+
}, {
|
|
221
|
+
entityType: 'USER',
|
|
222
|
+
id: '5d9e2c300d44fc0dca5428bb',
|
|
223
|
+
name: 'Confluence Connect Test - AP methods',
|
|
224
|
+
avatarUrl: '',
|
|
225
|
+
nickname: 'Confluence Connect Test - AP methods',
|
|
226
|
+
matchPositions: {},
|
|
227
|
+
accessLevel: 'CONTAINER',
|
|
228
|
+
accountStatus: 'ACTIVE',
|
|
229
|
+
notMentionable: false,
|
|
230
|
+
userType: 'APP',
|
|
231
|
+
attributes: {
|
|
232
|
+
isConfluenceExternalCollaborator: false
|
|
233
|
+
}
|
|
234
|
+
}, {
|
|
235
|
+
entityType: 'USER',
|
|
236
|
+
id: '655363:1276a696-f0d0-4f3a-a022-636723eb5148',
|
|
237
|
+
name: 'Confluence Google Drive',
|
|
238
|
+
avatarUrl: '',
|
|
239
|
+
nickname: 'Confluence Google Drive',
|
|
240
|
+
matchPositions: {},
|
|
241
|
+
accessLevel: 'CONTAINER',
|
|
242
|
+
accountStatus: 'ACTIVE',
|
|
243
|
+
notMentionable: false,
|
|
244
|
+
userType: 'APP',
|
|
245
|
+
attributes: {
|
|
246
|
+
isConfluenceExternalCollaborator: false
|
|
247
|
+
}
|
|
248
|
+
}, {
|
|
249
|
+
entityType: 'USER',
|
|
250
|
+
id: '712020:413e43c0-7202-4016-a318-a004892e7f8c',
|
|
251
|
+
name: 'arthur chen nth user',
|
|
252
|
+
avatarUrl: '',
|
|
253
|
+
nickname: 'arthur chen nth user',
|
|
254
|
+
matchPositions: {},
|
|
255
|
+
accessLevel: 'CONTAINER',
|
|
256
|
+
accountStatus: 'ACTIVE',
|
|
257
|
+
notMentionable: false,
|
|
258
|
+
locale: 'en-US',
|
|
259
|
+
userType: 'DEFAULT',
|
|
260
|
+
attributes: {
|
|
261
|
+
isConfluenceExternalCollaborator: false
|
|
262
|
+
}
|
|
263
|
+
}, {
|
|
264
|
+
entityType: 'USER',
|
|
265
|
+
id: '712020:9219bf5f-0358-4782-99dc-bc73258b2ddc',
|
|
266
|
+
name: 'jeff mellis',
|
|
267
|
+
avatarUrl: '',
|
|
268
|
+
nickname: 'jeff mellis',
|
|
269
|
+
matchPositions: {},
|
|
270
|
+
accessLevel: 'CONTAINER',
|
|
271
|
+
accountStatus: 'ACTIVE',
|
|
272
|
+
notMentionable: false,
|
|
273
|
+
locale: 'en-US',
|
|
274
|
+
userType: 'DEFAULT',
|
|
275
|
+
attributes: {
|
|
276
|
+
isConfluenceExternalCollaborator: false
|
|
277
|
+
}
|
|
278
|
+
}]
|
|
128
279
|
};
|
|
@@ -2,7 +2,7 @@ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
|
2
2
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
3
|
import { useCallback, useMemo } from 'react';
|
|
4
4
|
import { request } from '@atlaskit/linking-common';
|
|
5
|
-
import { fieldValuesQuery, hydrateJQLQuery } from './utils';
|
|
5
|
+
import { fieldValuesQuery, hydrateJQLQuery, userQuery } from './utils';
|
|
6
6
|
var AGG_BASE_URL = '/gateway/api/graphql';
|
|
7
7
|
export var useBasicFilterAGG = function useBasicFilterAGG() {
|
|
8
8
|
var requestCall = useCallback( /*#__PURE__*/function () {
|
|
@@ -54,10 +54,17 @@ export var useBasicFilterAGG = function useBasicFilterAGG() {
|
|
|
54
54
|
query: fieldValuesQuery
|
|
55
55
|
});
|
|
56
56
|
}, [requestCall]);
|
|
57
|
+
var getCurrentUserInfo = useCallback(function () {
|
|
58
|
+
return requestCall({
|
|
59
|
+
operationName: 'userQuery',
|
|
60
|
+
query: userQuery
|
|
61
|
+
});
|
|
62
|
+
}, [requestCall]);
|
|
57
63
|
return useMemo(function () {
|
|
58
64
|
return {
|
|
59
65
|
getHydratedJQL: getHydratedJQL,
|
|
60
|
-
getFieldValues: getFieldValues
|
|
66
|
+
getFieldValues: getFieldValues,
|
|
67
|
+
getCurrentUserInfo: getCurrentUserInfo
|
|
61
68
|
};
|
|
62
|
-
}, [getHydratedJQL, getFieldValues]);
|
|
69
|
+
}, [getHydratedJQL, getFieldValues, getCurrentUserInfo]);
|
|
63
70
|
};
|
|
@@ -6,4 +6,5 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
export var hydrateJQLQuery = "query hydrate($cloudId: ID!, $jql: String!) {\n jira {\n jqlBuilder(cloudId: $cloudId) {\n hydrateJqlQuery(query: $jql) {\n ... on JiraJqlHydratedQuery {\n fields {\n ... on JiraJqlQueryHydratedField {\n jqlTerm\n values {\n ... on JiraJqlQueryHydratedValue {\n values {\n ... on JiraJqlProjectFieldValue {\n jqlTerm\n displayName\n project {\n avatar {\n small\n }\n }\n }\n ... on JiraJqlStatusFieldValue {\n jqlTerm\n displayName\n statusCategory {\n colorName\n }\n }\n ... on JiraJqlIssueTypeFieldValue {\n jqlTerm\n displayName\n issueTypes {\n avatar {\n small\n }\n }\n }\n ... on JiraJqlUserFieldValue {\n jqlTerm\n displayName\n user {\n picture\n }\n }\n ... on JiraJqlGroupFieldValue {\n jqlTerm\n displayName\n group {\n name\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n}";
|
|
9
|
-
export var fieldValuesQuery = "query fieldValues($cloudId: ID!, $first: Int = 10, $jqlTerm: String!, $jql: String!, $searchString: String!, $after: String) {\n jira {\n jqlBuilder(cloudId: $cloudId) {\n fieldValues(\n first: $first\n jqlTerm: $jqlTerm\n jqlContext: $jql\n searchString: $searchString\n after: $after\n ) {\n totalCount\n pageInfo {\n endCursor\n }\n edges {\n node {\n jqlTerm\n displayName\n ... on JiraJqlProjectFieldValue {\n project {\n avatar {\n small\n }\n }\n }\n ... on JiraJqlIssueTypeFieldValue {\n issueTypes {\n avatar {\n small\n }\n }\n }\n ... on JiraJqlStatusFieldValue {\n statusCategory {\n colorName\n }\n }\n ... on JiraJqlUserFieldValue {\n user {\n picture\n }\n }\n ... on JiraJqlGroupFieldValue {\n group {\n name\n }\n }\n }\n }\n }\n }\n }\n}";
|
|
9
|
+
export var fieldValuesQuery = "query fieldValues($cloudId: ID!, $first: Int = 10, $jqlTerm: String!, $jql: String!, $searchString: String!, $after: String) {\n jira {\n jqlBuilder(cloudId: $cloudId) {\n fieldValues(\n first: $first\n jqlTerm: $jqlTerm\n jqlContext: $jql\n searchString: $searchString\n after: $after\n ) {\n totalCount\n pageInfo {\n endCursor\n }\n edges {\n node {\n jqlTerm\n displayName\n ... on JiraJqlProjectFieldValue {\n project {\n avatar {\n small\n }\n }\n }\n ... on JiraJqlIssueTypeFieldValue {\n issueTypes {\n avatar {\n small\n }\n }\n }\n ... on JiraJqlStatusFieldValue {\n statusCategory {\n colorName\n }\n }\n ... on JiraJqlUserFieldValue {\n user {\n picture\n }\n }\n ... on JiraJqlGroupFieldValue {\n group {\n name\n }\n }\n }\n }\n }\n }\n }\n}";
|
|
10
|
+
export var userQuery = "query userQuery {\n me {\n user {\n id\n accountId\n }\n }\n}";
|
|
@@ -73,8 +73,11 @@ var formatOptionLabel = function formatOptionLabel(data) {
|
|
|
73
73
|
data: data
|
|
74
74
|
});
|
|
75
75
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
if (data.optionType === 'iconLabel') {
|
|
77
|
+
return /*#__PURE__*/React.createElement(IconOptionLabel, {
|
|
78
|
+
data: data
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
79
82
|
};
|
|
80
83
|
export default formatOptionLabel;
|
|
@@ -23,7 +23,8 @@ var noFilterOptions = function noFilterOptions() {
|
|
|
23
23
|
};
|
|
24
24
|
export var FilterPopupSelect = function FilterPopupSelect(_ref) {
|
|
25
25
|
var filterName = _ref.filterName,
|
|
26
|
-
totalCount = _ref.totalCount,
|
|
26
|
+
_ref$totalCount = _ref.totalCount,
|
|
27
|
+
totalCount = _ref$totalCount === void 0 ? 0 : _ref$totalCount,
|
|
27
28
|
status = _ref.status,
|
|
28
29
|
buttonLabel = _ref.buttonLabel,
|
|
29
30
|
_ref$showLoading = _ref.showLoading,
|
|
@@ -8,8 +8,7 @@ import { Box, Flex, xcss } from '@atlaskit/primitives';
|
|
|
8
8
|
import Spinner from '@atlaskit/spinner';
|
|
9
9
|
var triggerButtonLabelStyles = xcss({
|
|
10
10
|
textOverflow: 'ellipsis',
|
|
11
|
-
overflow: 'hidden'
|
|
12
|
-
maxWidth: '150px'
|
|
11
|
+
overflow: 'hidden'
|
|
13
12
|
});
|
|
14
13
|
var badgeStyles = xcss({
|
|
15
14
|
marginLeft: 'space.050'
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React, { forwardRef } from 'react';
|
|
3
|
+
import { PopupComponentContainer } from './styled';
|
|
4
|
+
export var PopupComponent = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
5
|
+
return /*#__PURE__*/React.createElement(PopupComponentContainer, _extends({}, props, {
|
|
6
|
+
"data-testId": 'confluence-search-datasource-popup-container',
|
|
7
|
+
ref: ref
|
|
8
|
+
}));
|
|
9
|
+
});
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
import React, { useCallback, useState } from 'react';
|
|
3
|
+
import { FormattedMessage, useIntl } from 'react-intl-next';
|
|
4
|
+
import Popup from '@atlaskit/popup';
|
|
5
|
+
import { layers } from '@atlaskit/theme/constants';
|
|
6
|
+
import { CLOLBasicFilters } from '../../types';
|
|
7
|
+
import { dateRangeMessages } from './messages';
|
|
8
|
+
import { PopupComponent } from './PopupComponent';
|
|
9
|
+
import { CustomDropdown, CustomDropdownItem } from './styled';
|
|
10
|
+
import { PopupTrigger } from './trigger';
|
|
11
|
+
var lastModifiedValues = ['anyTime', 'today', 'yesterday', 'past7Days', 'past30Days', 'pastYear', 'custom'];
|
|
12
|
+
var defaultOptionValue = 'anyTime';
|
|
13
|
+
var filterName = CLOLBasicFilters.lastModified;
|
|
14
|
+
export var DateRangePicker = function DateRangePicker(_ref) {
|
|
15
|
+
var onSelectionChange = _ref.onSelectionChange;
|
|
16
|
+
var _useState = useState(null),
|
|
17
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
18
|
+
currentOption = _useState2[0],
|
|
19
|
+
setCurrentOption = _useState2[1];
|
|
20
|
+
var _useState3 = useState(false),
|
|
21
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
22
|
+
isPickerOpen = _useState4[0],
|
|
23
|
+
setIsPickerOpen = _useState4[1];
|
|
24
|
+
var _useIntl = useIntl(),
|
|
25
|
+
formatMessage = _useIntl.formatMessage;
|
|
26
|
+
var onClickFilterOption = useCallback(function (option) {
|
|
27
|
+
setCurrentOption(option);
|
|
28
|
+
setIsPickerOpen(false);
|
|
29
|
+
onSelectionChange(filterName, [{
|
|
30
|
+
optionType: 'defaultOption',
|
|
31
|
+
label: option,
|
|
32
|
+
value: option
|
|
33
|
+
}]);
|
|
34
|
+
}, [onSelectionChange]);
|
|
35
|
+
var handleTogglePopup = useCallback(function () {
|
|
36
|
+
setIsPickerOpen(!isPickerOpen);
|
|
37
|
+
}, [isPickerOpen]);
|
|
38
|
+
return /*#__PURE__*/React.createElement(Popup, {
|
|
39
|
+
isOpen: isPickerOpen,
|
|
40
|
+
onClose: handleTogglePopup,
|
|
41
|
+
popupComponent: PopupComponent,
|
|
42
|
+
zIndex: layers.modal(),
|
|
43
|
+
content: function content() {
|
|
44
|
+
return /*#__PURE__*/React.createElement(CustomDropdown, null, lastModifiedValues.map(function (option) {
|
|
45
|
+
return /*#__PURE__*/React.createElement(CustomDropdownItem, {
|
|
46
|
+
key: option
|
|
47
|
+
//want to show Anytime as selected if none of the other options are selected
|
|
48
|
+
,
|
|
49
|
+
isSelected: currentOption ? option === currentOption : option === defaultOptionValue,
|
|
50
|
+
onClick: function onClick() {
|
|
51
|
+
return onClickFilterOption(option);
|
|
52
|
+
}
|
|
53
|
+
}, /*#__PURE__*/React.createElement(FormattedMessage, getCurrentOptionLabel(option)));
|
|
54
|
+
}));
|
|
55
|
+
},
|
|
56
|
+
placement: "bottom-start",
|
|
57
|
+
trigger: function trigger(triggerProps) {
|
|
58
|
+
return /*#__PURE__*/React.createElement(PopupTrigger, {
|
|
59
|
+
triggerProps: triggerProps,
|
|
60
|
+
optionSelected: !!currentOption,
|
|
61
|
+
label: formatMessage(dateRangeMessages.dateRangeTitle),
|
|
62
|
+
selectedLabel: formatMessage(getCurrentOptionLabel(currentOption)),
|
|
63
|
+
onClickButton: handleTogglePopup
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
var getCurrentOptionLabel = function getCurrentOptionLabel(option) {
|
|
69
|
+
var mapping = {
|
|
70
|
+
anyTime: 'dateRangeAnyTime',
|
|
71
|
+
today: 'dateRangeToday',
|
|
72
|
+
yesterday: 'dateRangeYesterday',
|
|
73
|
+
past7Days: 'dateRangeLastWeek',
|
|
74
|
+
past30Days: 'dateRangeLastMonth',
|
|
75
|
+
pastYear: 'dateRangeLastYear',
|
|
76
|
+
custom: 'dateRangeCustom'
|
|
77
|
+
};
|
|
78
|
+
return option ? dateRangeMessages[mapping[option]] : dateRangeMessages[mapping['anyTime']];
|
|
79
|
+
};
|
package/dist/esm/ui/confluence-search-modal/basic-filters/filters/date-range-picker/messages.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl-next';
|
|
2
|
+
export var dateRangeMessages = defineMessages({
|
|
3
|
+
dateRangeTitle: {
|
|
4
|
+
id: 'linkDataSource.confluence-search.configmodal.date.range.title',
|
|
5
|
+
defaultMessage: 'Last updated',
|
|
6
|
+
description: 'Filter by the date content was modified'
|
|
7
|
+
},
|
|
8
|
+
dateRangeAnyTime: {
|
|
9
|
+
id: 'linkDataSource.confluence-search.configmodal.date.range.any.time',
|
|
10
|
+
defaultMessage: 'Anytime',
|
|
11
|
+
description: 'Option to show content from any time'
|
|
12
|
+
},
|
|
13
|
+
dateRangeToday: {
|
|
14
|
+
id: 'linkDataSource.confluence-search.configmodal.date.range.today',
|
|
15
|
+
defaultMessage: 'Today',
|
|
16
|
+
description: 'Date range of content modified today'
|
|
17
|
+
},
|
|
18
|
+
dateRangeYesterday: {
|
|
19
|
+
id: 'linkDataSource.confluence-search.configmodal.date.range.yesterday',
|
|
20
|
+
defaultMessage: 'Yesterday',
|
|
21
|
+
description: 'Date range of content modified yesterday'
|
|
22
|
+
},
|
|
23
|
+
dateRangeLastWeek: {
|
|
24
|
+
id: 'linkDataSource.confluence-search.configmodal.date.range.last.week',
|
|
25
|
+
defaultMessage: 'Past 7 days',
|
|
26
|
+
description: 'Date range of content modified in the last 7 days'
|
|
27
|
+
},
|
|
28
|
+
dateRangeLastMonth: {
|
|
29
|
+
id: 'linkDataSource.confluence-search.configmodal.date.range.last.month',
|
|
30
|
+
defaultMessage: 'Past 30 days',
|
|
31
|
+
description: 'Date range of content modified in the last 30 days'
|
|
32
|
+
},
|
|
33
|
+
dateRangeLastYear: {
|
|
34
|
+
id: 'linkDataSource.confluence-search.configmodal.date.range.last.year',
|
|
35
|
+
defaultMessage: 'Past year',
|
|
36
|
+
description: 'Date range of content modified in the last 365 days'
|
|
37
|
+
},
|
|
38
|
+
dateRangeCustom: {
|
|
39
|
+
id: 'linkDataSource.confluence-search.configmodal.date.range.custom',
|
|
40
|
+
defaultMessage: 'Custom',
|
|
41
|
+
description: 'Custom date range'
|
|
42
|
+
}
|
|
43
|
+
});
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import styled from '@emotion/styled';
|
|
2
|
+
import { B400, B50, N0, N20, N30, R400 } from '@atlaskit/theme/colors';
|
|
3
|
+
export var PopupComponentContainer = styled.div({
|
|
4
|
+
boxSizing: 'border-box',
|
|
5
|
+
display: 'block',
|
|
6
|
+
flex: '1 1 auto',
|
|
7
|
+
overflow: 'visible',
|
|
8
|
+
background: "var(--ds-background-input, ".concat(N0, ")"),
|
|
9
|
+
':focus': {
|
|
10
|
+
outline: 'none'
|
|
11
|
+
},
|
|
12
|
+
boxShadow: "var(--ds-shadow-overlay, 0px 0px 1px 0px rgba(9, 30, 66, 0.31), 0px 3px 5px 0px rgba(9, 30, 66, 0.20))"
|
|
13
|
+
});
|
|
14
|
+
export var CustomDropdown = styled.div({
|
|
15
|
+
width: '360px',
|
|
16
|
+
background: "var(--ds-background-input, ".concat(N0, ")"),
|
|
17
|
+
borderRadius: '3px',
|
|
18
|
+
boxShadow: "var(--ds-shadow-overlay, 0px 0px 1px 0px rgba(9, 30, 66, 0.31), 0px 3px 5px 0px rgba(9, 30, 66, 0.20))",
|
|
19
|
+
zIndex: '900'
|
|
20
|
+
});
|
|
21
|
+
export var CustomDropdownItem = styled.div(function (props) {
|
|
22
|
+
return {
|
|
23
|
+
height: '36px',
|
|
24
|
+
width: '100%',
|
|
25
|
+
display: 'flex',
|
|
26
|
+
justifyContent: 'flex-start',
|
|
27
|
+
alignItems: 'center',
|
|
28
|
+
paddingLeft: props.isSelected ? '15px' : '16px',
|
|
29
|
+
boxSizing: 'border-box',
|
|
30
|
+
color: props.isSelected ? "var(--ds-text-selected, ".concat(B400, ")") : 'inherit',
|
|
31
|
+
background: props.isSelected ? "var(--ds-background-accent-blue-subtlest, ".concat(B50, ")") : 'transparent',
|
|
32
|
+
borderLeft: props.isSelected ? "2px solid ".concat("var(--ds-text-selected, ".concat(B400, ")")) : 'none',
|
|
33
|
+
'&:hover': {
|
|
34
|
+
background: props.isSelected ? "var(--ds-background-accent-blue-subtlest, ".concat(B50, ")") : "var(--ds-background-input-hovered, ".concat(N20, ")"),
|
|
35
|
+
cursor: 'default'
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
export var CustomDateWrapper = styled.div({
|
|
40
|
+
padding: "var(--ds-space-150, 12px)",
|
|
41
|
+
boxSizing: 'border-box'
|
|
42
|
+
});
|
|
43
|
+
export var DatePickersWrapper = styled.div({
|
|
44
|
+
display: 'flex',
|
|
45
|
+
justifyContent: 'space-between',
|
|
46
|
+
alignItems: 'center',
|
|
47
|
+
width: '100%'
|
|
48
|
+
});
|
|
49
|
+
export var SelectDateRangeButton = styled.button({
|
|
50
|
+
background: "var(--ds-background-accent-gray-subtler, ".concat(N20, ")"),
|
|
51
|
+
border: 'none',
|
|
52
|
+
font: 'inherit',
|
|
53
|
+
width: '70px',
|
|
54
|
+
height: '40px',
|
|
55
|
+
marginTop: "var(--ds-space-150, 12px)",
|
|
56
|
+
borderRadius: '3px',
|
|
57
|
+
'&:hover': {
|
|
58
|
+
background: "var(--ds-background-accent-gray-subtler, ".concat(N30, ")"),
|
|
59
|
+
cursor: 'pointer'
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
export var DateRangeErrorMessage = styled.div({
|
|
63
|
+
display: 'flex',
|
|
64
|
+
lineHeight: 1.3333,
|
|
65
|
+
marginTop: "var(--ds-space-050, 4px)",
|
|
66
|
+
fontSize: '12px',
|
|
67
|
+
color: "var(--ds-text-danger, ".concat(R400, ")")
|
|
68
|
+
});
|
package/dist/esm/ui/confluence-search-modal/basic-filters/filters/date-range-picker/trigger.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import Button from '@atlaskit/button/standard-button';
|
|
4
|
+
import ChevronDownIcon from '@atlaskit/icon/glyph/chevron-down';
|
|
5
|
+
export var PopupTrigger = function PopupTrigger(_ref) {
|
|
6
|
+
var triggerProps = _ref.triggerProps,
|
|
7
|
+
optionSelected = _ref.optionSelected,
|
|
8
|
+
label = _ref.label,
|
|
9
|
+
selectedLabel = _ref.selectedLabel,
|
|
10
|
+
onClickButton = _ref.onClickButton;
|
|
11
|
+
return /*#__PURE__*/React.createElement(Button, _extends({}, triggerProps, {
|
|
12
|
+
testId: 'confluence-search-modal--date-range-button',
|
|
13
|
+
onClick: onClickButton,
|
|
14
|
+
isSelected: optionSelected,
|
|
15
|
+
iconAfter: /*#__PURE__*/React.createElement("span", {
|
|
16
|
+
style: {
|
|
17
|
+
display: 'flex',
|
|
18
|
+
alignItems: 'center'
|
|
19
|
+
}
|
|
20
|
+
}, /*#__PURE__*/React.createElement(ChevronDownIcon, {
|
|
21
|
+
size: "medium",
|
|
22
|
+
label: ""
|
|
23
|
+
}))
|
|
24
|
+
}), label, selectedLabel ? ": ".concat(selectedLabel) : '');
|
|
25
|
+
};
|
package/dist/esm/ui/confluence-search-modal/basic-filters/filters/edited-or-created-by/index.js
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
|
+
import React, { useCallback, useState } from 'react';
|
|
5
|
+
import { useIntl } from 'react-intl-next';
|
|
6
|
+
import { useDebouncedCallback } from 'use-debounce';
|
|
7
|
+
import { FilterPopupSelect } from '../../../../common/modal/popup-select';
|
|
8
|
+
import { SEARCH_DEBOUNCE_MS } from '../../../../common/modal/popup-select/constants';
|
|
9
|
+
import { useCurrentUserInfo } from '../../hooks/useCurrentUserInfo';
|
|
10
|
+
import useRecommendation from '../../hooks/useRecommendation';
|
|
11
|
+
import { CLOLBasicFilters } from '../../types';
|
|
12
|
+
import { editedOrCreatedByMessage } from './messages';
|
|
13
|
+
var filterName = "clol-basic-filter-".concat(CLOLBasicFilters.editedOrCreatedBy);
|
|
14
|
+
var EditedOrCreatedByFilter = function EditedOrCreatedByFilter(_ref) {
|
|
15
|
+
var cloudId = _ref.cloudId,
|
|
16
|
+
onSelectionChange = _ref.onSelectionChange,
|
|
17
|
+
_ref$selection = _ref.selection,
|
|
18
|
+
selection = _ref$selection === void 0 ? [] : _ref$selection;
|
|
19
|
+
var _useCurrentUserInfo = useCurrentUserInfo(),
|
|
20
|
+
user = _useCurrentUserInfo.user;
|
|
21
|
+
var _useIntl = useIntl(),
|
|
22
|
+
formatMessage = _useIntl.formatMessage;
|
|
23
|
+
var _useRecommendation = useRecommendation(),
|
|
24
|
+
status = _useRecommendation.status,
|
|
25
|
+
filterOptions = _useRecommendation.filterOptions,
|
|
26
|
+
fetchFilterOptions = _useRecommendation.fetchFilterOptions,
|
|
27
|
+
errors = _useRecommendation.errors;
|
|
28
|
+
var _useState = useState(''),
|
|
29
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
30
|
+
searchTerm = _useState2[0],
|
|
31
|
+
setSearchTerm = _useState2[1];
|
|
32
|
+
var _useDebouncedCallback = useDebouncedCallback(function (searchTerm) {
|
|
33
|
+
if (cloudId && user !== null && user !== void 0 && user.accountId) {
|
|
34
|
+
fetchFilterOptions({
|
|
35
|
+
searchTerm: searchTerm,
|
|
36
|
+
cloudId: cloudId,
|
|
37
|
+
userId: user.accountId
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}, SEARCH_DEBOUNCE_MS),
|
|
41
|
+
_useDebouncedCallback2 = _slicedToArray(_useDebouncedCallback, 1),
|
|
42
|
+
handleDebouncedFetchFilterOptions = _useDebouncedCallback2[0];
|
|
43
|
+
var handleInputChange = useCallback( /*#__PURE__*/function () {
|
|
44
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(newSearchTerm) {
|
|
45
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
46
|
+
while (1) switch (_context.prev = _context.next) {
|
|
47
|
+
case 0:
|
|
48
|
+
setSearchTerm(newSearchTerm);
|
|
49
|
+
handleDebouncedFetchFilterOptions(newSearchTerm);
|
|
50
|
+
case 2:
|
|
51
|
+
case "end":
|
|
52
|
+
return _context.stop();
|
|
53
|
+
}
|
|
54
|
+
}, _callee);
|
|
55
|
+
}));
|
|
56
|
+
return function (_x) {
|
|
57
|
+
return _ref2.apply(this, arguments);
|
|
58
|
+
};
|
|
59
|
+
}(), [handleDebouncedFetchFilterOptions]);
|
|
60
|
+
var handleOptionSelection = useCallback(function (newValue) {
|
|
61
|
+
onSelectionChange(CLOLBasicFilters.editedOrCreatedBy, newValue);
|
|
62
|
+
}, [onSelectionChange]);
|
|
63
|
+
var handleMenuOpen = useCallback(function () {
|
|
64
|
+
if ((status === 'empty' || status === 'rejected') && cloudId && user !== null && user !== void 0 && user.accountId) {
|
|
65
|
+
// if user searches and gets status as rejected, we want the dropdown to try load the request with searchString when the user reopens the dropdown
|
|
66
|
+
fetchFilterOptions({
|
|
67
|
+
cloudId: cloudId,
|
|
68
|
+
userId: user.accountId,
|
|
69
|
+
searchTerm: searchTerm
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}, [fetchFilterOptions, status, cloudId, user === null || user === void 0 ? void 0 : user.accountId, searchTerm]);
|
|
73
|
+
var filterOptionsLength = filterOptions.length;
|
|
74
|
+
var isError = status === 'rejected';
|
|
75
|
+
var isLoading = status === 'loading' || status === 'empty';
|
|
76
|
+
var isEmpty = status === 'resolved' && filterOptionsLength === 0;
|
|
77
|
+
var isDisabled = !cloudId || !(user !== null && user !== void 0 && user.accountId);
|
|
78
|
+
return /*#__PURE__*/React.createElement(FilterPopupSelect, {
|
|
79
|
+
buttonLabel: formatMessage(editedOrCreatedByMessage.buttonLabel),
|
|
80
|
+
filterName: filterName,
|
|
81
|
+
isDisabled: isDisabled,
|
|
82
|
+
options: filterOptions,
|
|
83
|
+
showLoading: isLoading,
|
|
84
|
+
selectedOptions: selection,
|
|
85
|
+
onSelectionChange: handleOptionSelection,
|
|
86
|
+
onInputChange: handleInputChange,
|
|
87
|
+
showHydrating: false,
|
|
88
|
+
shouldShowFooter: false,
|
|
89
|
+
status: status,
|
|
90
|
+
onMenuOpen: handleMenuOpen,
|
|
91
|
+
menuListProps: {
|
|
92
|
+
filterName: filterName,
|
|
93
|
+
errors: errors,
|
|
94
|
+
isLoading: isLoading,
|
|
95
|
+
isError: isError,
|
|
96
|
+
isEmpty: isEmpty
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
export default EditedOrCreatedByFilter;
|
package/dist/esm/ui/confluence-search-modal/basic-filters/filters/edited-or-created-by/messages.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl-next';
|
|
2
|
+
export var editedOrCreatedByMessage = defineMessages({
|
|
3
|
+
buttonLabel: {
|
|
4
|
+
id: 'linkDataSource.clol-basic-filter.editedOrCreatedBy.label',
|
|
5
|
+
description: 'Label to be displayed for "Edited or created by" filter dropdown button.',
|
|
6
|
+
defaultMessage: 'Edited or created by'
|
|
7
|
+
}
|
|
8
|
+
});
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
5
|
+
import { useBasicFilterAGG } from '../../../../services/useBasicFilterAGG';
|
|
6
|
+
export var useCurrentUserInfo = function useCurrentUserInfo() {
|
|
7
|
+
var _useState = useState(),
|
|
8
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
9
|
+
user = _useState2[0],
|
|
10
|
+
setUser = _useState2[1];
|
|
11
|
+
var _useBasicFilterAGG = useBasicFilterAGG(),
|
|
12
|
+
getCurrentUserInfoFromAGG = _useBasicFilterAGG.getCurrentUserInfo;
|
|
13
|
+
var getCurrentUserInfo = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
14
|
+
var _user$data;
|
|
15
|
+
var user, _user$data2;
|
|
16
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
17
|
+
while (1) switch (_context.prev = _context.next) {
|
|
18
|
+
case 0:
|
|
19
|
+
_context.next = 2;
|
|
20
|
+
return getCurrentUserInfoFromAGG();
|
|
21
|
+
case 2:
|
|
22
|
+
user = _context.sent;
|
|
23
|
+
if (user !== null && user !== void 0 && (_user$data = user.data) !== null && _user$data !== void 0 && _user$data.me.user) {
|
|
24
|
+
setUser((_user$data2 = user.data) === null || _user$data2 === void 0 ? void 0 : _user$data2.me.user);
|
|
25
|
+
} else {
|
|
26
|
+
setUser(undefined);
|
|
27
|
+
}
|
|
28
|
+
case 4:
|
|
29
|
+
case "end":
|
|
30
|
+
return _context.stop();
|
|
31
|
+
}
|
|
32
|
+
}, _callee);
|
|
33
|
+
})), [getCurrentUserInfoFromAGG]);
|
|
34
|
+
useEffect(function () {
|
|
35
|
+
getCurrentUserInfo();
|
|
36
|
+
}, [getCurrentUserInfo]);
|
|
37
|
+
return {
|
|
38
|
+
user: user,
|
|
39
|
+
getCurrentUserInfo: getCurrentUserInfo
|
|
40
|
+
};
|
|
41
|
+
};
|