@atlaskit/feedback-collector 14.6.3 → 14.6.5
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 +14 -0
- package/dist/cjs/components/FeedbackCollector.js +1 -1
- package/dist/cjs/components/FeedbackForm.js +191 -25
- package/dist/es2019/components/FeedbackCollector.js +1 -1
- package/dist/es2019/components/FeedbackForm.js +148 -10
- package/dist/esm/components/FeedbackCollector.js +1 -1
- package/dist/esm/components/FeedbackForm.js +191 -25
- package/package.json +9 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @atlaskit/feedback-collector
|
|
2
2
|
|
|
3
|
+
## 14.6.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
|
|
9
|
+
## 14.6.4
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`22069f5ef5d73`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/22069f5ef5d73) -
|
|
14
|
+
We are testing a refactor of internal components behind a feature flag. If this is successful, it
|
|
15
|
+
will be landed in a future release.
|
|
16
|
+
|
|
3
17
|
## 14.6.3
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
|
@@ -164,7 +164,7 @@ var FeedbackCollector = exports.default = /*#__PURE__*/function (_Component) {
|
|
|
164
164
|
}, {
|
|
165
165
|
key: "getPackageVersion",
|
|
166
166
|
value: function getPackageVersion() {
|
|
167
|
-
return "
|
|
167
|
+
return "14.6.4" || 'Unknown, at least 11.0.0';
|
|
168
168
|
}
|
|
169
169
|
}, {
|
|
170
170
|
key: "getEntitlementInformation",
|
|
@@ -27,7 +27,8 @@ var _colors = require("@atlaskit/theme/colors");
|
|
|
27
27
|
var _messages = require("../messages");
|
|
28
28
|
var _IntlProviderWithResolvedMessages = require("./IntlProviderWithResolvedMessages");
|
|
29
29
|
var _excluded = ["id"],
|
|
30
|
-
_excluded2 = ["
|
|
30
|
+
_excluded2 = ["id"],
|
|
31
|
+
_excluded3 = ["locale"];
|
|
31
32
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
32
33
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
33
34
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -168,13 +169,28 @@ var FeedbackForm = function FeedbackForm(_ref2) {
|
|
|
168
169
|
}
|
|
169
170
|
return _messages.messages.canBeContactedLabel;
|
|
170
171
|
};
|
|
172
|
+
var requiredFieldsSummary =
|
|
173
|
+
/*#__PURE__*/
|
|
174
|
+
// eslint-disable-next-line @atlaskit/design-system/use-primitives-text
|
|
175
|
+
_react.default.createElement("p", {
|
|
176
|
+
style: {
|
|
177
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
178
|
+
color: "var(--ds-text-subtle, ".concat(_colors.N300, ")"),
|
|
179
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
180
|
+
marginBottom: "var(--ds-space-300, 24px)"
|
|
181
|
+
}
|
|
182
|
+
}, formatMessage(_messages.messages.requiredFieldsSummary), /*#__PURE__*/_react.default.createElement(_form.RequiredAsterisk, null));
|
|
183
|
+
var feedbackIsAnonymous =
|
|
184
|
+
/*#__PURE__*/
|
|
185
|
+
// eslint-disable-next-line @atlaskit/design-system/use-primitives-text
|
|
186
|
+
_react.default.createElement("p", null, formatMessage(_messages.messages.feedbackIsAnonymous));
|
|
171
187
|
return /*#__PURE__*/_react.default.createElement(_modalDialog.default, {
|
|
172
188
|
shouldCloseOnOverlayClick: false,
|
|
173
189
|
onClose: onClose,
|
|
174
190
|
testId: "feedbackCollectorModalDialog",
|
|
175
191
|
shouldReturnFocus: shouldReturnFocusRef,
|
|
176
192
|
shouldScrollInViewport: true
|
|
177
|
-
}, /*#__PURE__*/_react.default.createElement(_form.default, {
|
|
193
|
+
}, (0, _platformFeatureFlags.fg)('platform-design_system_team-form_conversion') ? /*#__PURE__*/_react.default.createElement(_form.default, {
|
|
178
194
|
onSubmit: /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
179
195
|
var errors;
|
|
180
196
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
@@ -213,26 +229,176 @@ var FeedbackForm = function FeedbackForm(_ref2) {
|
|
|
213
229
|
}
|
|
214
230
|
}, _callee, null, [[6,, 9, 12]]);
|
|
215
231
|
}))
|
|
232
|
+
}, /*#__PURE__*/_react.default.createElement(_modalDialog.ModalHeader, {
|
|
233
|
+
hasCloseButton: true
|
|
234
|
+
}, /*#__PURE__*/_react.default.createElement(_modalDialog.ModalTitle, null, feedbackTitle || /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.feedbackTitle))), /*#__PURE__*/_react.default.createElement(_modalDialog.ModalBody, null, requiredFieldsSummary, feedbackTitleDetails, customContent, showTypeField ? /*#__PURE__*/_react.default.createElement(_form.Field, {
|
|
235
|
+
name: "topic",
|
|
236
|
+
label: selectLabel || formatMessage(_messages.messages.selectionOptionDefaultLabel),
|
|
237
|
+
isRequired: true,
|
|
238
|
+
"aria-required": true // JCA11Y-1619
|
|
216
239
|
}, function (_ref4) {
|
|
217
|
-
var
|
|
240
|
+
var _ref4$fieldProps = _ref4.fieldProps,
|
|
241
|
+
id = _ref4$fieldProps.id,
|
|
242
|
+
restProps = (0, _objectWithoutProperties2.default)(_ref4$fieldProps, _excluded);
|
|
243
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_select.default, (0, _extends2.default)({}, restProps, {
|
|
244
|
+
onChange: function onChange(option) {
|
|
245
|
+
if (!option || option instanceof Array) {
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
setType(option.value);
|
|
249
|
+
// Clear validation error when user selects a type (only for new validation)
|
|
250
|
+
if (useNewValidation && validationErrors.type) {
|
|
251
|
+
setValidationErrors(function (prev) {
|
|
252
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
253
|
+
type: undefined
|
|
254
|
+
});
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
},
|
|
258
|
+
menuPortalTarget: document.body,
|
|
259
|
+
styles: {
|
|
260
|
+
menuPortal: function menuPortal(base) {
|
|
261
|
+
return _objectSpread(_objectSpread({}, base), {}, {
|
|
262
|
+
zIndex: 9999
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
options: selectOptions
|
|
267
|
+
// @ts-ignore
|
|
268
|
+
,
|
|
269
|
+
ref: focusRef,
|
|
270
|
+
placeholder: getDefaultPlaceholder(feedbackGroupLabels),
|
|
271
|
+
inputId: id
|
|
272
|
+
})), useNewValidation && validationErrors.type && /*#__PURE__*/_react.default.createElement(_form.ErrorMessage, null, validationErrors.type));
|
|
273
|
+
}) : null, showDefaultTextFields && canShowTextField && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_form.Field, {
|
|
274
|
+
label: showTypeField ? getFieldLabels(feedbackGroupLabels)[type] : customTextAreaLabel || formatMessage(_messages.messages.defaultCustomTextAreaLabel),
|
|
275
|
+
isRequired: true,
|
|
276
|
+
name: "description"
|
|
277
|
+
}, function (_ref5) {
|
|
278
|
+
var fieldProps = _ref5.fieldProps;
|
|
279
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_textarea.default, (0, _extends2.default)({}, fieldProps, {
|
|
280
|
+
name: "foo",
|
|
281
|
+
minimumRows: 6,
|
|
282
|
+
placeholder: summaryPlaceholder || undefined,
|
|
283
|
+
onChange: function onChange(e) {
|
|
284
|
+
setDescription(e.target.value);
|
|
285
|
+
// Clear validation error when user types
|
|
286
|
+
if (useNewValidation && validationErrors.description) {
|
|
287
|
+
setValidationErrors(function (prev) {
|
|
288
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
289
|
+
description: undefined
|
|
290
|
+
});
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
},
|
|
294
|
+
value: description
|
|
295
|
+
})), useNewValidation && validationErrors.description && /*#__PURE__*/_react.default.createElement(_form.ErrorMessage, null, validationErrors.description));
|
|
296
|
+
}), !anonymousFeedback && /*#__PURE__*/_react.default.createElement(_form.Fieldset, null, /*#__PURE__*/_react.default.createElement("legend", {
|
|
297
|
+
"aria-hidden": false,
|
|
298
|
+
hidden: true
|
|
299
|
+
}, "Atlassian opt-in options"), /*#__PURE__*/_react.default.createElement(_form.Field, {
|
|
300
|
+
name: "can-be-contacted"
|
|
301
|
+
}, function (_ref6) {
|
|
302
|
+
var fieldProps = _ref6.fieldProps;
|
|
303
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_checkbox.Checkbox, (0, _extends2.default)({}, fieldProps, {
|
|
304
|
+
"aria-describedby": undefined // JCA11Y-1988
|
|
305
|
+
,
|
|
306
|
+
label: canBeContactedLabel || /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, (0, _platformFeatureFlags.fg)('product-terminology-refresh') ? renderContactLabelAppify() : renderContactLabel(), !(0, _platformFeatureFlags.fg)('jfp_a11y_team_feedback_collector_nested_elements') && {
|
|
307
|
+
values: {
|
|
308
|
+
a: function a(chunks) {
|
|
309
|
+
return /*#__PURE__*/_react.default.createElement(_link.default, {
|
|
310
|
+
href: "https://www.atlassian.com/legal/privacy-policy",
|
|
311
|
+
target: "_blank"
|
|
312
|
+
}, chunks);
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
})),
|
|
316
|
+
onChange: function onChange(event) {
|
|
317
|
+
return setCanBeContacted(event.target.checked);
|
|
318
|
+
}
|
|
319
|
+
})), canBeContactedLabel && canBeContactedLink && (0, _platformFeatureFlags.fg)('jfp_a11y_team_feedback_collector_nested_elements') && /*#__PURE__*/_react.default.createElement(LinkWrapper, null, canBeContactedLink), !canBeContactedLabel && (0, _platformFeatureFlags.fg)('jfp_a11y_team_feedback_collector_nested_elements') && /*#__PURE__*/_react.default.createElement(LinkWrapper, null, /*#__PURE__*/_react.default.createElement(_link.default, {
|
|
320
|
+
href: "https://www.atlassian.com/legal/privacy-policy",
|
|
321
|
+
target: "_blank"
|
|
322
|
+
}, formatMessage(_messages.messages.privacyPolicy))));
|
|
323
|
+
}), /*#__PURE__*/_react.default.createElement(_form.Field, {
|
|
324
|
+
name: "enroll-in-research-group"
|
|
325
|
+
}, function (_ref7) {
|
|
326
|
+
var fieldProps = _ref7.fieldProps;
|
|
327
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_checkbox.Checkbox, (0, _extends2.default)({}, fieldProps, {
|
|
328
|
+
"aria-describedby": undefined // JCA11Y-1988
|
|
329
|
+
,
|
|
330
|
+
label: enrolInResearchLabel || formatMessage(_messages.messages.enrolInResearchLabel),
|
|
331
|
+
onChange: function onChange(event) {
|
|
332
|
+
return setEnrollInResearchGroup(event.target.checked);
|
|
333
|
+
}
|
|
334
|
+
})), enrolInResearchLabel && enrolInResearchLink && (0, _platformFeatureFlags.fg)('jfp_a11y_team_feedback_collector_nested_elements') && /*#__PURE__*/_react.default.createElement(LinkWrapper, null, enrolInResearchLink));
|
|
335
|
+
})) || /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_form.Field, {
|
|
336
|
+
name: 'anonymousFeedback'
|
|
337
|
+
}, function () {
|
|
338
|
+
return /*#__PURE__*/_react.default.createElement(_sectionMessage.default, {
|
|
339
|
+
title: formatMessage(_messages.messages.feedbackIsAnonymousTitle),
|
|
340
|
+
appearance: 'information'
|
|
341
|
+
}, feedbackIsAnonymous);
|
|
342
|
+
})))), /*#__PURE__*/_react.default.createElement(_modalDialog.ModalFooter, null, /*#__PURE__*/_react.default.createElement(_standardButton.default, {
|
|
343
|
+
appearance: "subtle",
|
|
344
|
+
onClick: onClose
|
|
345
|
+
}, cancelButtonLabel || /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.cancelButtonLabel)), /*#__PURE__*/_react.default.createElement(_standardButton.default, {
|
|
346
|
+
appearance: "primary",
|
|
347
|
+
type: "submit",
|
|
348
|
+
isDisabled: isSubmitting || isDisabled,
|
|
349
|
+
testId: "feedbackCollectorSubmitBtn"
|
|
350
|
+
}, submitButtonLabel || /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.submitButtonLabel)))) : /*#__PURE__*/_react.default.createElement(_form.default, {
|
|
351
|
+
onSubmit: /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
352
|
+
var errors;
|
|
353
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
354
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
355
|
+
case 0:
|
|
356
|
+
if (!useNewValidation) {
|
|
357
|
+
_context2.next = 5;
|
|
358
|
+
break;
|
|
359
|
+
}
|
|
360
|
+
// New validation: validate on submit and show errors
|
|
361
|
+
errors = getValidationErrors(); // If there are validation errors, show them and don't submit
|
|
362
|
+
if (!(Object.keys(errors).length > 0)) {
|
|
363
|
+
_context2.next = 5;
|
|
364
|
+
break;
|
|
365
|
+
}
|
|
366
|
+
setValidationErrors(errors);
|
|
367
|
+
return _context2.abrupt("return");
|
|
368
|
+
case 5:
|
|
369
|
+
// Submit the form (both old and new validation paths reach here)
|
|
370
|
+
setIsSubmitting(true);
|
|
371
|
+
_context2.prev = 6;
|
|
372
|
+
_context2.next = 9;
|
|
373
|
+
return onSubmit({
|
|
374
|
+
canBeContacted: canBeContacted,
|
|
375
|
+
description: description,
|
|
376
|
+
enrollInResearchGroup: enrollInResearchGroup,
|
|
377
|
+
type: type
|
|
378
|
+
});
|
|
379
|
+
case 9:
|
|
380
|
+
_context2.prev = 9;
|
|
381
|
+
setIsSubmitting(false);
|
|
382
|
+
return _context2.finish(9);
|
|
383
|
+
case 12:
|
|
384
|
+
case "end":
|
|
385
|
+
return _context2.stop();
|
|
386
|
+
}
|
|
387
|
+
}, _callee2, null, [[6,, 9, 12]]);
|
|
388
|
+
}))
|
|
389
|
+
}, function (_ref9) {
|
|
390
|
+
var formProps = _ref9.formProps;
|
|
218
391
|
return /*#__PURE__*/_react.default.createElement("form", formProps, /*#__PURE__*/_react.default.createElement(_modalDialog.ModalHeader, {
|
|
219
392
|
hasCloseButton: true
|
|
220
|
-
}, /*#__PURE__*/_react.default.createElement(_modalDialog.ModalTitle, null, feedbackTitle || /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.feedbackTitle))), /*#__PURE__*/_react.default.createElement(_modalDialog.ModalBody, null, /*#__PURE__*/_react.default.createElement(
|
|
221
|
-
style: {
|
|
222
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
223
|
-
color: "var(--ds-text-subtle, ".concat(_colors.N300, ")"),
|
|
224
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
225
|
-
marginBottom: "var(--ds-space-300, 24px)"
|
|
226
|
-
}
|
|
227
|
-
}, formatMessage(_messages.messages.requiredFieldsSummary), /*#__PURE__*/_react.default.createElement(_form.RequiredAsterisk, null)), feedbackTitleDetails, customContent, showTypeField ? /*#__PURE__*/_react.default.createElement(_form.Field, {
|
|
393
|
+
}, /*#__PURE__*/_react.default.createElement(_modalDialog.ModalTitle, null, feedbackTitle || /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.feedbackTitle))), /*#__PURE__*/_react.default.createElement(_modalDialog.ModalBody, null, requiredFieldsSummary, feedbackTitleDetails, customContent, showTypeField ? /*#__PURE__*/_react.default.createElement(_form.Field, {
|
|
228
394
|
name: "topic",
|
|
229
395
|
label: selectLabel || formatMessage(_messages.messages.selectionOptionDefaultLabel),
|
|
230
396
|
isRequired: true,
|
|
231
397
|
"aria-required": true // JCA11Y-1619
|
|
232
|
-
}, function (
|
|
233
|
-
var
|
|
234
|
-
id =
|
|
235
|
-
restProps = (0, _objectWithoutProperties2.default)(
|
|
398
|
+
}, function (_ref0) {
|
|
399
|
+
var _ref0$fieldProps = _ref0.fieldProps,
|
|
400
|
+
id = _ref0$fieldProps.id,
|
|
401
|
+
restProps = (0, _objectWithoutProperties2.default)(_ref0$fieldProps, _excluded2);
|
|
236
402
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_select.default, (0, _extends2.default)({}, restProps, {
|
|
237
403
|
onChange: function onChange(option) {
|
|
238
404
|
if (!option || option instanceof Array) {
|
|
@@ -267,8 +433,8 @@ var FeedbackForm = function FeedbackForm(_ref2) {
|
|
|
267
433
|
label: showTypeField ? getFieldLabels(feedbackGroupLabels)[type] : customTextAreaLabel || formatMessage(_messages.messages.defaultCustomTextAreaLabel),
|
|
268
434
|
isRequired: true,
|
|
269
435
|
name: "description"
|
|
270
|
-
}, function (
|
|
271
|
-
var fieldProps =
|
|
436
|
+
}, function (_ref1) {
|
|
437
|
+
var fieldProps = _ref1.fieldProps;
|
|
272
438
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_textarea.default, (0, _extends2.default)({}, fieldProps, {
|
|
273
439
|
name: "foo",
|
|
274
440
|
minimumRows: 6,
|
|
@@ -291,8 +457,8 @@ var FeedbackForm = function FeedbackForm(_ref2) {
|
|
|
291
457
|
hidden: true
|
|
292
458
|
}, "Atlassian opt-in options"), /*#__PURE__*/_react.default.createElement(_form.Field, {
|
|
293
459
|
name: "can-be-contacted"
|
|
294
|
-
}, function (
|
|
295
|
-
var fieldProps =
|
|
460
|
+
}, function (_ref10) {
|
|
461
|
+
var fieldProps = _ref10.fieldProps;
|
|
296
462
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_checkbox.Checkbox, (0, _extends2.default)({}, fieldProps, {
|
|
297
463
|
"aria-describedby": undefined // JCA11Y-1988
|
|
298
464
|
,
|
|
@@ -315,8 +481,8 @@ var FeedbackForm = function FeedbackForm(_ref2) {
|
|
|
315
481
|
}, formatMessage(_messages.messages.privacyPolicy))));
|
|
316
482
|
}), /*#__PURE__*/_react.default.createElement(_form.Field, {
|
|
317
483
|
name: "enroll-in-research-group"
|
|
318
|
-
}, function (
|
|
319
|
-
var fieldProps =
|
|
484
|
+
}, function (_ref11) {
|
|
485
|
+
var fieldProps = _ref11.fieldProps;
|
|
320
486
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_checkbox.Checkbox, (0, _extends2.default)({}, fieldProps, {
|
|
321
487
|
"aria-describedby": undefined // JCA11Y-1988
|
|
322
488
|
,
|
|
@@ -331,7 +497,7 @@ var FeedbackForm = function FeedbackForm(_ref2) {
|
|
|
331
497
|
return /*#__PURE__*/_react.default.createElement(_sectionMessage.default, {
|
|
332
498
|
title: formatMessage(_messages.messages.feedbackIsAnonymousTitle),
|
|
333
499
|
appearance: 'information'
|
|
334
|
-
},
|
|
500
|
+
}, feedbackIsAnonymous);
|
|
335
501
|
})))), /*#__PURE__*/_react.default.createElement(_modalDialog.ModalFooter, null, /*#__PURE__*/_react.default.createElement(_standardButton.default, {
|
|
336
502
|
appearance: "subtle",
|
|
337
503
|
onClick: onClose
|
|
@@ -343,9 +509,9 @@ var FeedbackForm = function FeedbackForm(_ref2) {
|
|
|
343
509
|
}, submitButtonLabel || /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.submitButtonLabel))));
|
|
344
510
|
}));
|
|
345
511
|
};
|
|
346
|
-
var FeedbackFormWithIntl = function FeedbackFormWithIntl(
|
|
347
|
-
var locale =
|
|
348
|
-
props = (0, _objectWithoutProperties2.default)(
|
|
512
|
+
var FeedbackFormWithIntl = function FeedbackFormWithIntl(_ref12) {
|
|
513
|
+
var locale = _ref12.locale,
|
|
514
|
+
props = (0, _objectWithoutProperties2.default)(_ref12, _excluded3);
|
|
349
515
|
return /*#__PURE__*/_react.default.createElement(_IntlProviderWithResolvedMessages.IntlProviderWithResolvedMessages, {
|
|
350
516
|
locale: locale
|
|
351
517
|
}, /*#__PURE__*/_react.default.createElement(FeedbackForm, props));
|
|
@@ -92,7 +92,7 @@ export default class FeedbackCollector extends Component {
|
|
|
92
92
|
return FeedbackCollector.defaultProps.url;
|
|
93
93
|
}
|
|
94
94
|
getPackageVersion() {
|
|
95
|
-
return "
|
|
95
|
+
return "14.6.4" || 'Unknown, at least 11.0.0';
|
|
96
96
|
}
|
|
97
97
|
async getEntitlementInformation() {
|
|
98
98
|
var _entitlementDetails, _entitlementDetails2, _productName, _entitlement, _productEntitlement;
|
|
@@ -130,13 +130,158 @@ const FeedbackForm = ({
|
|
|
130
130
|
}
|
|
131
131
|
return messages.canBeContactedLabel;
|
|
132
132
|
};
|
|
133
|
+
const requiredFieldsSummary =
|
|
134
|
+
/*#__PURE__*/
|
|
135
|
+
// eslint-disable-next-line @atlaskit/design-system/use-primitives-text
|
|
136
|
+
React.createElement("p", {
|
|
137
|
+
style: {
|
|
138
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
139
|
+
color: `var(--ds-text-subtle, ${N300})`,
|
|
140
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
141
|
+
marginBottom: "var(--ds-space-300, 24px)"
|
|
142
|
+
}
|
|
143
|
+
}, formatMessage(messages.requiredFieldsSummary), /*#__PURE__*/React.createElement(RequiredAsterisk, null));
|
|
144
|
+
const feedbackIsAnonymous =
|
|
145
|
+
/*#__PURE__*/
|
|
146
|
+
// eslint-disable-next-line @atlaskit/design-system/use-primitives-text
|
|
147
|
+
React.createElement("p", null, formatMessage(messages.feedbackIsAnonymous));
|
|
133
148
|
return /*#__PURE__*/React.createElement(Modal, {
|
|
134
149
|
shouldCloseOnOverlayClick: false,
|
|
135
150
|
onClose: onClose,
|
|
136
151
|
testId: "feedbackCollectorModalDialog",
|
|
137
152
|
shouldReturnFocus: shouldReturnFocusRef,
|
|
138
153
|
shouldScrollInViewport: true
|
|
139
|
-
}, /*#__PURE__*/React.createElement(Form, {
|
|
154
|
+
}, fg('platform-design_system_team-form_conversion') ? /*#__PURE__*/React.createElement(Form, {
|
|
155
|
+
onSubmit: async () => {
|
|
156
|
+
if (useNewValidation) {
|
|
157
|
+
// New validation: validate on submit and show errors
|
|
158
|
+
const errors = getValidationErrors();
|
|
159
|
+
|
|
160
|
+
// If there are validation errors, show them and don't submit
|
|
161
|
+
if (Object.keys(errors).length > 0) {
|
|
162
|
+
setValidationErrors(errors);
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// Submit the form (both old and new validation paths reach here)
|
|
168
|
+
setIsSubmitting(true);
|
|
169
|
+
try {
|
|
170
|
+
await onSubmit({
|
|
171
|
+
canBeContacted,
|
|
172
|
+
description,
|
|
173
|
+
enrollInResearchGroup,
|
|
174
|
+
type
|
|
175
|
+
});
|
|
176
|
+
} finally {
|
|
177
|
+
setIsSubmitting(false);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}, /*#__PURE__*/React.createElement(ModalHeader, {
|
|
181
|
+
hasCloseButton: true
|
|
182
|
+
}, /*#__PURE__*/React.createElement(ModalTitle, null, feedbackTitle || /*#__PURE__*/React.createElement(FormattedMessage, messages.feedbackTitle))), /*#__PURE__*/React.createElement(ModalBody, null, requiredFieldsSummary, feedbackTitleDetails, customContent, showTypeField ? /*#__PURE__*/React.createElement(Field, {
|
|
183
|
+
name: "topic",
|
|
184
|
+
label: selectLabel || formatMessage(messages.selectionOptionDefaultLabel),
|
|
185
|
+
isRequired: true,
|
|
186
|
+
"aria-required": true // JCA11Y-1619
|
|
187
|
+
}, ({
|
|
188
|
+
fieldProps: {
|
|
189
|
+
id,
|
|
190
|
+
...restProps
|
|
191
|
+
}
|
|
192
|
+
}) => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Select, _extends({}, restProps, {
|
|
193
|
+
onChange: option => {
|
|
194
|
+
if (!option || option instanceof Array) {
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
setType(option.value);
|
|
198
|
+
// Clear validation error when user selects a type (only for new validation)
|
|
199
|
+
if (useNewValidation && validationErrors.type) {
|
|
200
|
+
setValidationErrors(prev => ({
|
|
201
|
+
...prev,
|
|
202
|
+
type: undefined
|
|
203
|
+
}));
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
menuPortalTarget: document.body,
|
|
207
|
+
styles: {
|
|
208
|
+
menuPortal: base => ({
|
|
209
|
+
...base,
|
|
210
|
+
zIndex: 9999
|
|
211
|
+
})
|
|
212
|
+
},
|
|
213
|
+
options: selectOptions
|
|
214
|
+
// @ts-ignore
|
|
215
|
+
,
|
|
216
|
+
ref: focusRef,
|
|
217
|
+
placeholder: getDefaultPlaceholder(feedbackGroupLabels),
|
|
218
|
+
inputId: id
|
|
219
|
+
})), useNewValidation && validationErrors.type && /*#__PURE__*/React.createElement(ErrorMessage, null, validationErrors.type))) : null, showDefaultTextFields && canShowTextField && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Field, {
|
|
220
|
+
label: showTypeField ? getFieldLabels(feedbackGroupLabels)[type] : customTextAreaLabel || formatMessage(messages.defaultCustomTextAreaLabel),
|
|
221
|
+
isRequired: true,
|
|
222
|
+
name: "description"
|
|
223
|
+
}, ({
|
|
224
|
+
fieldProps
|
|
225
|
+
}) => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TextArea, _extends({}, fieldProps, {
|
|
226
|
+
name: "foo",
|
|
227
|
+
minimumRows: 6,
|
|
228
|
+
placeholder: summaryPlaceholder || undefined,
|
|
229
|
+
onChange: e => {
|
|
230
|
+
setDescription(e.target.value);
|
|
231
|
+
// Clear validation error when user types
|
|
232
|
+
if (useNewValidation && validationErrors.description) {
|
|
233
|
+
setValidationErrors(prev => ({
|
|
234
|
+
...prev,
|
|
235
|
+
description: undefined
|
|
236
|
+
}));
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
value: description
|
|
240
|
+
})), useNewValidation && validationErrors.description && /*#__PURE__*/React.createElement(ErrorMessage, null, validationErrors.description))), !anonymousFeedback && /*#__PURE__*/React.createElement(Fieldset, null, /*#__PURE__*/React.createElement("legend", {
|
|
241
|
+
"aria-hidden": false,
|
|
242
|
+
hidden: true
|
|
243
|
+
}, "Atlassian opt-in options"), /*#__PURE__*/React.createElement(Field, {
|
|
244
|
+
name: "can-be-contacted"
|
|
245
|
+
}, ({
|
|
246
|
+
fieldProps
|
|
247
|
+
}) => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Checkbox, _extends({}, fieldProps, {
|
|
248
|
+
"aria-describedby": undefined // JCA11Y-1988
|
|
249
|
+
,
|
|
250
|
+
label: canBeContactedLabel || /*#__PURE__*/React.createElement(FormattedMessage, _extends({}, fg('product-terminology-refresh') ? renderContactLabelAppify() : renderContactLabel(), !fg('jfp_a11y_team_feedback_collector_nested_elements') && {
|
|
251
|
+
values: {
|
|
252
|
+
a: chunks => /*#__PURE__*/React.createElement(Link, {
|
|
253
|
+
href: "https://www.atlassian.com/legal/privacy-policy",
|
|
254
|
+
target: "_blank"
|
|
255
|
+
}, chunks)
|
|
256
|
+
}
|
|
257
|
+
})),
|
|
258
|
+
onChange: event => setCanBeContacted(event.target.checked)
|
|
259
|
+
})), canBeContactedLabel && canBeContactedLink && fg('jfp_a11y_team_feedback_collector_nested_elements') && /*#__PURE__*/React.createElement(LinkWrapper, null, canBeContactedLink), !canBeContactedLabel && fg('jfp_a11y_team_feedback_collector_nested_elements') && /*#__PURE__*/React.createElement(LinkWrapper, null, /*#__PURE__*/React.createElement(Link, {
|
|
260
|
+
href: "https://www.atlassian.com/legal/privacy-policy",
|
|
261
|
+
target: "_blank"
|
|
262
|
+
}, formatMessage(messages.privacyPolicy))))), /*#__PURE__*/React.createElement(Field, {
|
|
263
|
+
name: "enroll-in-research-group"
|
|
264
|
+
}, ({
|
|
265
|
+
fieldProps
|
|
266
|
+
}) => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Checkbox, _extends({}, fieldProps, {
|
|
267
|
+
"aria-describedby": undefined // JCA11Y-1988
|
|
268
|
+
,
|
|
269
|
+
label: enrolInResearchLabel || formatMessage(messages.enrolInResearchLabel),
|
|
270
|
+
onChange: event => setEnrollInResearchGroup(event.target.checked)
|
|
271
|
+
})), enrolInResearchLabel && enrolInResearchLink && fg('jfp_a11y_team_feedback_collector_nested_elements') && /*#__PURE__*/React.createElement(LinkWrapper, null, enrolInResearchLink)))) || /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Field, {
|
|
272
|
+
name: 'anonymousFeedback'
|
|
273
|
+
}, () => /*#__PURE__*/React.createElement(SectionMessage, {
|
|
274
|
+
title: formatMessage(messages.feedbackIsAnonymousTitle),
|
|
275
|
+
appearance: 'information'
|
|
276
|
+
}, feedbackIsAnonymous))))), /*#__PURE__*/React.createElement(ModalFooter, null, /*#__PURE__*/React.createElement(Button, {
|
|
277
|
+
appearance: "subtle",
|
|
278
|
+
onClick: onClose
|
|
279
|
+
}, cancelButtonLabel || /*#__PURE__*/React.createElement(FormattedMessage, messages.cancelButtonLabel)), /*#__PURE__*/React.createElement(Button, {
|
|
280
|
+
appearance: "primary",
|
|
281
|
+
type: "submit",
|
|
282
|
+
isDisabled: isSubmitting || isDisabled,
|
|
283
|
+
testId: "feedbackCollectorSubmitBtn"
|
|
284
|
+
}, submitButtonLabel || /*#__PURE__*/React.createElement(FormattedMessage, messages.submitButtonLabel)))) : /*#__PURE__*/React.createElement(Form, {
|
|
140
285
|
onSubmit: async () => {
|
|
141
286
|
if (useNewValidation) {
|
|
142
287
|
// New validation: validate on submit and show errors
|
|
@@ -166,14 +311,7 @@ const FeedbackForm = ({
|
|
|
166
311
|
formProps
|
|
167
312
|
}) => /*#__PURE__*/React.createElement("form", formProps, /*#__PURE__*/React.createElement(ModalHeader, {
|
|
168
313
|
hasCloseButton: true
|
|
169
|
-
}, /*#__PURE__*/React.createElement(ModalTitle, null, feedbackTitle || /*#__PURE__*/React.createElement(FormattedMessage, messages.feedbackTitle))), /*#__PURE__*/React.createElement(ModalBody, null, /*#__PURE__*/React.createElement(
|
|
170
|
-
style: {
|
|
171
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
172
|
-
color: `var(--ds-text-subtle, ${N300})`,
|
|
173
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
174
|
-
marginBottom: "var(--ds-space-300, 24px)"
|
|
175
|
-
}
|
|
176
|
-
}, formatMessage(messages.requiredFieldsSummary), /*#__PURE__*/React.createElement(RequiredAsterisk, null)), feedbackTitleDetails, customContent, showTypeField ? /*#__PURE__*/React.createElement(Field, {
|
|
314
|
+
}, /*#__PURE__*/React.createElement(ModalTitle, null, feedbackTitle || /*#__PURE__*/React.createElement(FormattedMessage, messages.feedbackTitle))), /*#__PURE__*/React.createElement(ModalBody, null, requiredFieldsSummary, feedbackTitleDetails, customContent, showTypeField ? /*#__PURE__*/React.createElement(Field, {
|
|
177
315
|
name: "topic",
|
|
178
316
|
label: selectLabel || formatMessage(messages.selectionOptionDefaultLabel),
|
|
179
317
|
isRequired: true,
|
|
@@ -267,7 +405,7 @@ const FeedbackForm = ({
|
|
|
267
405
|
}, () => /*#__PURE__*/React.createElement(SectionMessage, {
|
|
268
406
|
title: formatMessage(messages.feedbackIsAnonymousTitle),
|
|
269
407
|
appearance: 'information'
|
|
270
|
-
},
|
|
408
|
+
}, feedbackIsAnonymous))))), /*#__PURE__*/React.createElement(ModalFooter, null, /*#__PURE__*/React.createElement(Button, {
|
|
271
409
|
appearance: "subtle",
|
|
272
410
|
onClick: onClose
|
|
273
411
|
}, cancelButtonLabel || /*#__PURE__*/React.createElement(FormattedMessage, messages.cancelButtonLabel)), /*#__PURE__*/React.createElement(Button, {
|
|
@@ -155,7 +155,7 @@ var FeedbackCollector = /*#__PURE__*/function (_Component) {
|
|
|
155
155
|
}, {
|
|
156
156
|
key: "getPackageVersion",
|
|
157
157
|
value: function getPackageVersion() {
|
|
158
|
-
return "
|
|
158
|
+
return "14.6.4" || 'Unknown, at least 11.0.0';
|
|
159
159
|
}
|
|
160
160
|
}, {
|
|
161
161
|
key: "getEntitlementInformation",
|
|
@@ -4,7 +4,8 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
|
|
|
4
4
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
5
5
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
6
6
|
var _excluded = ["id"],
|
|
7
|
-
_excluded2 = ["
|
|
7
|
+
_excluded2 = ["id"],
|
|
8
|
+
_excluded3 = ["locale"];
|
|
8
9
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
9
10
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
10
11
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
@@ -159,13 +160,28 @@ var FeedbackForm = function FeedbackForm(_ref2) {
|
|
|
159
160
|
}
|
|
160
161
|
return messages.canBeContactedLabel;
|
|
161
162
|
};
|
|
163
|
+
var requiredFieldsSummary =
|
|
164
|
+
/*#__PURE__*/
|
|
165
|
+
// eslint-disable-next-line @atlaskit/design-system/use-primitives-text
|
|
166
|
+
React.createElement("p", {
|
|
167
|
+
style: {
|
|
168
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
169
|
+
color: "var(--ds-text-subtle, ".concat(N300, ")"),
|
|
170
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
171
|
+
marginBottom: "var(--ds-space-300, 24px)"
|
|
172
|
+
}
|
|
173
|
+
}, formatMessage(messages.requiredFieldsSummary), /*#__PURE__*/React.createElement(RequiredAsterisk, null));
|
|
174
|
+
var feedbackIsAnonymous =
|
|
175
|
+
/*#__PURE__*/
|
|
176
|
+
// eslint-disable-next-line @atlaskit/design-system/use-primitives-text
|
|
177
|
+
React.createElement("p", null, formatMessage(messages.feedbackIsAnonymous));
|
|
162
178
|
return /*#__PURE__*/React.createElement(Modal, {
|
|
163
179
|
shouldCloseOnOverlayClick: false,
|
|
164
180
|
onClose: onClose,
|
|
165
181
|
testId: "feedbackCollectorModalDialog",
|
|
166
182
|
shouldReturnFocus: shouldReturnFocusRef,
|
|
167
183
|
shouldScrollInViewport: true
|
|
168
|
-
}, /*#__PURE__*/React.createElement(Form, {
|
|
184
|
+
}, fg('platform-design_system_team-form_conversion') ? /*#__PURE__*/React.createElement(Form, {
|
|
169
185
|
onSubmit: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
170
186
|
var errors;
|
|
171
187
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
@@ -204,26 +220,176 @@ var FeedbackForm = function FeedbackForm(_ref2) {
|
|
|
204
220
|
}
|
|
205
221
|
}, _callee, null, [[6,, 9, 12]]);
|
|
206
222
|
}))
|
|
223
|
+
}, /*#__PURE__*/React.createElement(ModalHeader, {
|
|
224
|
+
hasCloseButton: true
|
|
225
|
+
}, /*#__PURE__*/React.createElement(ModalTitle, null, feedbackTitle || /*#__PURE__*/React.createElement(FormattedMessage, messages.feedbackTitle))), /*#__PURE__*/React.createElement(ModalBody, null, requiredFieldsSummary, feedbackTitleDetails, customContent, showTypeField ? /*#__PURE__*/React.createElement(Field, {
|
|
226
|
+
name: "topic",
|
|
227
|
+
label: selectLabel || formatMessage(messages.selectionOptionDefaultLabel),
|
|
228
|
+
isRequired: true,
|
|
229
|
+
"aria-required": true // JCA11Y-1619
|
|
207
230
|
}, function (_ref4) {
|
|
208
|
-
var
|
|
231
|
+
var _ref4$fieldProps = _ref4.fieldProps,
|
|
232
|
+
id = _ref4$fieldProps.id,
|
|
233
|
+
restProps = _objectWithoutProperties(_ref4$fieldProps, _excluded);
|
|
234
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Select, _extends({}, restProps, {
|
|
235
|
+
onChange: function onChange(option) {
|
|
236
|
+
if (!option || option instanceof Array) {
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
setType(option.value);
|
|
240
|
+
// Clear validation error when user selects a type (only for new validation)
|
|
241
|
+
if (useNewValidation && validationErrors.type) {
|
|
242
|
+
setValidationErrors(function (prev) {
|
|
243
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
244
|
+
type: undefined
|
|
245
|
+
});
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
},
|
|
249
|
+
menuPortalTarget: document.body,
|
|
250
|
+
styles: {
|
|
251
|
+
menuPortal: function menuPortal(base) {
|
|
252
|
+
return _objectSpread(_objectSpread({}, base), {}, {
|
|
253
|
+
zIndex: 9999
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
},
|
|
257
|
+
options: selectOptions
|
|
258
|
+
// @ts-ignore
|
|
259
|
+
,
|
|
260
|
+
ref: focusRef,
|
|
261
|
+
placeholder: getDefaultPlaceholder(feedbackGroupLabels),
|
|
262
|
+
inputId: id
|
|
263
|
+
})), useNewValidation && validationErrors.type && /*#__PURE__*/React.createElement(ErrorMessage, null, validationErrors.type));
|
|
264
|
+
}) : null, showDefaultTextFields && canShowTextField && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Field, {
|
|
265
|
+
label: showTypeField ? getFieldLabels(feedbackGroupLabels)[type] : customTextAreaLabel || formatMessage(messages.defaultCustomTextAreaLabel),
|
|
266
|
+
isRequired: true,
|
|
267
|
+
name: "description"
|
|
268
|
+
}, function (_ref5) {
|
|
269
|
+
var fieldProps = _ref5.fieldProps;
|
|
270
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TextArea, _extends({}, fieldProps, {
|
|
271
|
+
name: "foo",
|
|
272
|
+
minimumRows: 6,
|
|
273
|
+
placeholder: summaryPlaceholder || undefined,
|
|
274
|
+
onChange: function onChange(e) {
|
|
275
|
+
setDescription(e.target.value);
|
|
276
|
+
// Clear validation error when user types
|
|
277
|
+
if (useNewValidation && validationErrors.description) {
|
|
278
|
+
setValidationErrors(function (prev) {
|
|
279
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
280
|
+
description: undefined
|
|
281
|
+
});
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
},
|
|
285
|
+
value: description
|
|
286
|
+
})), useNewValidation && validationErrors.description && /*#__PURE__*/React.createElement(ErrorMessage, null, validationErrors.description));
|
|
287
|
+
}), !anonymousFeedback && /*#__PURE__*/React.createElement(Fieldset, null, /*#__PURE__*/React.createElement("legend", {
|
|
288
|
+
"aria-hidden": false,
|
|
289
|
+
hidden: true
|
|
290
|
+
}, "Atlassian opt-in options"), /*#__PURE__*/React.createElement(Field, {
|
|
291
|
+
name: "can-be-contacted"
|
|
292
|
+
}, function (_ref6) {
|
|
293
|
+
var fieldProps = _ref6.fieldProps;
|
|
294
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Checkbox, _extends({}, fieldProps, {
|
|
295
|
+
"aria-describedby": undefined // JCA11Y-1988
|
|
296
|
+
,
|
|
297
|
+
label: canBeContactedLabel || /*#__PURE__*/React.createElement(FormattedMessage, _extends({}, fg('product-terminology-refresh') ? renderContactLabelAppify() : renderContactLabel(), !fg('jfp_a11y_team_feedback_collector_nested_elements') && {
|
|
298
|
+
values: {
|
|
299
|
+
a: function a(chunks) {
|
|
300
|
+
return /*#__PURE__*/React.createElement(Link, {
|
|
301
|
+
href: "https://www.atlassian.com/legal/privacy-policy",
|
|
302
|
+
target: "_blank"
|
|
303
|
+
}, chunks);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
})),
|
|
307
|
+
onChange: function onChange(event) {
|
|
308
|
+
return setCanBeContacted(event.target.checked);
|
|
309
|
+
}
|
|
310
|
+
})), canBeContactedLabel && canBeContactedLink && fg('jfp_a11y_team_feedback_collector_nested_elements') && /*#__PURE__*/React.createElement(LinkWrapper, null, canBeContactedLink), !canBeContactedLabel && fg('jfp_a11y_team_feedback_collector_nested_elements') && /*#__PURE__*/React.createElement(LinkWrapper, null, /*#__PURE__*/React.createElement(Link, {
|
|
311
|
+
href: "https://www.atlassian.com/legal/privacy-policy",
|
|
312
|
+
target: "_blank"
|
|
313
|
+
}, formatMessage(messages.privacyPolicy))));
|
|
314
|
+
}), /*#__PURE__*/React.createElement(Field, {
|
|
315
|
+
name: "enroll-in-research-group"
|
|
316
|
+
}, function (_ref7) {
|
|
317
|
+
var fieldProps = _ref7.fieldProps;
|
|
318
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Checkbox, _extends({}, fieldProps, {
|
|
319
|
+
"aria-describedby": undefined // JCA11Y-1988
|
|
320
|
+
,
|
|
321
|
+
label: enrolInResearchLabel || formatMessage(messages.enrolInResearchLabel),
|
|
322
|
+
onChange: function onChange(event) {
|
|
323
|
+
return setEnrollInResearchGroup(event.target.checked);
|
|
324
|
+
}
|
|
325
|
+
})), enrolInResearchLabel && enrolInResearchLink && fg('jfp_a11y_team_feedback_collector_nested_elements') && /*#__PURE__*/React.createElement(LinkWrapper, null, enrolInResearchLink));
|
|
326
|
+
})) || /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Field, {
|
|
327
|
+
name: 'anonymousFeedback'
|
|
328
|
+
}, function () {
|
|
329
|
+
return /*#__PURE__*/React.createElement(SectionMessage, {
|
|
330
|
+
title: formatMessage(messages.feedbackIsAnonymousTitle),
|
|
331
|
+
appearance: 'information'
|
|
332
|
+
}, feedbackIsAnonymous);
|
|
333
|
+
})))), /*#__PURE__*/React.createElement(ModalFooter, null, /*#__PURE__*/React.createElement(Button, {
|
|
334
|
+
appearance: "subtle",
|
|
335
|
+
onClick: onClose
|
|
336
|
+
}, cancelButtonLabel || /*#__PURE__*/React.createElement(FormattedMessage, messages.cancelButtonLabel)), /*#__PURE__*/React.createElement(Button, {
|
|
337
|
+
appearance: "primary",
|
|
338
|
+
type: "submit",
|
|
339
|
+
isDisabled: isSubmitting || isDisabled,
|
|
340
|
+
testId: "feedbackCollectorSubmitBtn"
|
|
341
|
+
}, submitButtonLabel || /*#__PURE__*/React.createElement(FormattedMessage, messages.submitButtonLabel)))) : /*#__PURE__*/React.createElement(Form, {
|
|
342
|
+
onSubmit: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
343
|
+
var errors;
|
|
344
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
345
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
346
|
+
case 0:
|
|
347
|
+
if (!useNewValidation) {
|
|
348
|
+
_context2.next = 5;
|
|
349
|
+
break;
|
|
350
|
+
}
|
|
351
|
+
// New validation: validate on submit and show errors
|
|
352
|
+
errors = getValidationErrors(); // If there are validation errors, show them and don't submit
|
|
353
|
+
if (!(Object.keys(errors).length > 0)) {
|
|
354
|
+
_context2.next = 5;
|
|
355
|
+
break;
|
|
356
|
+
}
|
|
357
|
+
setValidationErrors(errors);
|
|
358
|
+
return _context2.abrupt("return");
|
|
359
|
+
case 5:
|
|
360
|
+
// Submit the form (both old and new validation paths reach here)
|
|
361
|
+
setIsSubmitting(true);
|
|
362
|
+
_context2.prev = 6;
|
|
363
|
+
_context2.next = 9;
|
|
364
|
+
return onSubmit({
|
|
365
|
+
canBeContacted: canBeContacted,
|
|
366
|
+
description: description,
|
|
367
|
+
enrollInResearchGroup: enrollInResearchGroup,
|
|
368
|
+
type: type
|
|
369
|
+
});
|
|
370
|
+
case 9:
|
|
371
|
+
_context2.prev = 9;
|
|
372
|
+
setIsSubmitting(false);
|
|
373
|
+
return _context2.finish(9);
|
|
374
|
+
case 12:
|
|
375
|
+
case "end":
|
|
376
|
+
return _context2.stop();
|
|
377
|
+
}
|
|
378
|
+
}, _callee2, null, [[6,, 9, 12]]);
|
|
379
|
+
}))
|
|
380
|
+
}, function (_ref9) {
|
|
381
|
+
var formProps = _ref9.formProps;
|
|
209
382
|
return /*#__PURE__*/React.createElement("form", formProps, /*#__PURE__*/React.createElement(ModalHeader, {
|
|
210
383
|
hasCloseButton: true
|
|
211
|
-
}, /*#__PURE__*/React.createElement(ModalTitle, null, feedbackTitle || /*#__PURE__*/React.createElement(FormattedMessage, messages.feedbackTitle))), /*#__PURE__*/React.createElement(ModalBody, null, /*#__PURE__*/React.createElement(
|
|
212
|
-
style: {
|
|
213
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
214
|
-
color: "var(--ds-text-subtle, ".concat(N300, ")"),
|
|
215
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
216
|
-
marginBottom: "var(--ds-space-300, 24px)"
|
|
217
|
-
}
|
|
218
|
-
}, formatMessage(messages.requiredFieldsSummary), /*#__PURE__*/React.createElement(RequiredAsterisk, null)), feedbackTitleDetails, customContent, showTypeField ? /*#__PURE__*/React.createElement(Field, {
|
|
384
|
+
}, /*#__PURE__*/React.createElement(ModalTitle, null, feedbackTitle || /*#__PURE__*/React.createElement(FormattedMessage, messages.feedbackTitle))), /*#__PURE__*/React.createElement(ModalBody, null, requiredFieldsSummary, feedbackTitleDetails, customContent, showTypeField ? /*#__PURE__*/React.createElement(Field, {
|
|
219
385
|
name: "topic",
|
|
220
386
|
label: selectLabel || formatMessage(messages.selectionOptionDefaultLabel),
|
|
221
387
|
isRequired: true,
|
|
222
388
|
"aria-required": true // JCA11Y-1619
|
|
223
|
-
}, function (
|
|
224
|
-
var
|
|
225
|
-
id =
|
|
226
|
-
restProps = _objectWithoutProperties(
|
|
389
|
+
}, function (_ref0) {
|
|
390
|
+
var _ref0$fieldProps = _ref0.fieldProps,
|
|
391
|
+
id = _ref0$fieldProps.id,
|
|
392
|
+
restProps = _objectWithoutProperties(_ref0$fieldProps, _excluded2);
|
|
227
393
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Select, _extends({}, restProps, {
|
|
228
394
|
onChange: function onChange(option) {
|
|
229
395
|
if (!option || option instanceof Array) {
|
|
@@ -258,8 +424,8 @@ var FeedbackForm = function FeedbackForm(_ref2) {
|
|
|
258
424
|
label: showTypeField ? getFieldLabels(feedbackGroupLabels)[type] : customTextAreaLabel || formatMessage(messages.defaultCustomTextAreaLabel),
|
|
259
425
|
isRequired: true,
|
|
260
426
|
name: "description"
|
|
261
|
-
}, function (
|
|
262
|
-
var fieldProps =
|
|
427
|
+
}, function (_ref1) {
|
|
428
|
+
var fieldProps = _ref1.fieldProps;
|
|
263
429
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TextArea, _extends({}, fieldProps, {
|
|
264
430
|
name: "foo",
|
|
265
431
|
minimumRows: 6,
|
|
@@ -282,8 +448,8 @@ var FeedbackForm = function FeedbackForm(_ref2) {
|
|
|
282
448
|
hidden: true
|
|
283
449
|
}, "Atlassian opt-in options"), /*#__PURE__*/React.createElement(Field, {
|
|
284
450
|
name: "can-be-contacted"
|
|
285
|
-
}, function (
|
|
286
|
-
var fieldProps =
|
|
451
|
+
}, function (_ref10) {
|
|
452
|
+
var fieldProps = _ref10.fieldProps;
|
|
287
453
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Checkbox, _extends({}, fieldProps, {
|
|
288
454
|
"aria-describedby": undefined // JCA11Y-1988
|
|
289
455
|
,
|
|
@@ -306,8 +472,8 @@ var FeedbackForm = function FeedbackForm(_ref2) {
|
|
|
306
472
|
}, formatMessage(messages.privacyPolicy))));
|
|
307
473
|
}), /*#__PURE__*/React.createElement(Field, {
|
|
308
474
|
name: "enroll-in-research-group"
|
|
309
|
-
}, function (
|
|
310
|
-
var fieldProps =
|
|
475
|
+
}, function (_ref11) {
|
|
476
|
+
var fieldProps = _ref11.fieldProps;
|
|
311
477
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Checkbox, _extends({}, fieldProps, {
|
|
312
478
|
"aria-describedby": undefined // JCA11Y-1988
|
|
313
479
|
,
|
|
@@ -322,7 +488,7 @@ var FeedbackForm = function FeedbackForm(_ref2) {
|
|
|
322
488
|
return /*#__PURE__*/React.createElement(SectionMessage, {
|
|
323
489
|
title: formatMessage(messages.feedbackIsAnonymousTitle),
|
|
324
490
|
appearance: 'information'
|
|
325
|
-
},
|
|
491
|
+
}, feedbackIsAnonymous);
|
|
326
492
|
})))), /*#__PURE__*/React.createElement(ModalFooter, null, /*#__PURE__*/React.createElement(Button, {
|
|
327
493
|
appearance: "subtle",
|
|
328
494
|
onClick: onClose
|
|
@@ -334,9 +500,9 @@ var FeedbackForm = function FeedbackForm(_ref2) {
|
|
|
334
500
|
}, submitButtonLabel || /*#__PURE__*/React.createElement(FormattedMessage, messages.submitButtonLabel))));
|
|
335
501
|
}));
|
|
336
502
|
};
|
|
337
|
-
var FeedbackFormWithIntl = function FeedbackFormWithIntl(
|
|
338
|
-
var locale =
|
|
339
|
-
props = _objectWithoutProperties(
|
|
503
|
+
var FeedbackFormWithIntl = function FeedbackFormWithIntl(_ref12) {
|
|
504
|
+
var locale = _ref12.locale,
|
|
505
|
+
props = _objectWithoutProperties(_ref12, _excluded3);
|
|
340
506
|
return /*#__PURE__*/React.createElement(IntlProviderWithResolvedMessages, {
|
|
341
507
|
locale: locale
|
|
342
508
|
}, /*#__PURE__*/React.createElement(FeedbackForm, props));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/feedback-collector",
|
|
3
|
-
"version": "14.6.
|
|
3
|
+
"version": "14.6.5",
|
|
4
4
|
"description": "A component that collects feedback across Atlassian products.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -33,19 +33,19 @@
|
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@atlaskit/afm-i18n-platform-web-platform-feedback-collector": "2.7.0",
|
|
36
|
-
"@atlaskit/button": "^23.
|
|
36
|
+
"@atlaskit/button": "^23.6.0",
|
|
37
37
|
"@atlaskit/checkbox": "^17.1.0",
|
|
38
38
|
"@atlaskit/flag": "^17.5.0",
|
|
39
39
|
"@atlaskit/form": "^14.2.0",
|
|
40
40
|
"@atlaskit/icon": "^28.5.0",
|
|
41
41
|
"@atlaskit/link": "^3.2.0",
|
|
42
|
-
"@atlaskit/modal-dialog": "^14.
|
|
42
|
+
"@atlaskit/modal-dialog": "^14.6.0",
|
|
43
43
|
"@atlaskit/platform-feature-flags": "^1.1.0",
|
|
44
|
-
"@atlaskit/section-message": "^8.
|
|
44
|
+
"@atlaskit/section-message": "^8.9.0",
|
|
45
45
|
"@atlaskit/select": "^21.3.0",
|
|
46
46
|
"@atlaskit/textarea": "^8.0.0",
|
|
47
47
|
"@atlaskit/theme": "^21.0.0",
|
|
48
|
-
"@atlaskit/tokens": "^
|
|
48
|
+
"@atlaskit/tokens": "^8.0.0",
|
|
49
49
|
"@babel/runtime": "^7.0.0",
|
|
50
50
|
"react-intl-next": "npm:react-intl@^5.18.1"
|
|
51
51
|
},
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@af/visual-regression": "workspace:^",
|
|
58
58
|
"@atlaskit/ssr": "workspace:^",
|
|
59
|
-
"@atlassian/feature-flags-test-utils": "^0.
|
|
59
|
+
"@atlassian/feature-flags-test-utils": "^1.0.0",
|
|
60
60
|
"@testing-library/react": "^13.4.0",
|
|
61
61
|
"@testing-library/react-hooks": "^8.0.1",
|
|
62
62
|
"buffer": "^6.0.3"
|
|
@@ -95,6 +95,9 @@
|
|
|
95
95
|
},
|
|
96
96
|
"jfp_a11y_team_feedback_collector_nested_elements": {
|
|
97
97
|
"type": "boolean"
|
|
98
|
+
},
|
|
99
|
+
"platform-design_system_team-form_conversion": {
|
|
100
|
+
"type": "boolean"
|
|
98
101
|
}
|
|
99
102
|
}
|
|
100
103
|
}
|