@atlaskit/share 4.2.3 → 4.3.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/clients/ShareServiceClient.js +24 -15
- package/dist/cjs/components/ShareDialogWithTrigger.js +84 -13
- package/dist/cjs/components/ShareForm.js +10 -5
- package/dist/cjs/components/UserPickerField.js +14 -7
- package/dist/cjs/components/analytics/analytics.js +1 -1
- package/dist/cjs/i18n/da.js +1 -1
- package/dist/cjs/i18n/en_ZZ.js +5 -1
- package/dist/cjs/i18n/es.js +1 -1
- package/dist/cjs/i18n/nl.js +1 -1
- package/dist/cjs/i18n/pt_BR.js +1 -1
- package/dist/cjs/i18n/tr.js +1 -1
- package/dist/cjs/i18n/uk.js +1 -1
- package/dist/cjs/i18n.js +1 -1
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/clients/ShareServiceClient.js +24 -15
- package/dist/es2019/components/ShareDialogWithTrigger.js +29 -6
- package/dist/es2019/components/ShareForm.js +10 -5
- package/dist/es2019/components/UserPickerField.js +14 -7
- package/dist/es2019/components/analytics/analytics.js +1 -1
- package/dist/es2019/i18n/da.js +1 -1
- package/dist/es2019/i18n/en_ZZ.js +5 -1
- package/dist/es2019/i18n/es.js +1 -1
- package/dist/es2019/i18n/nl.js +1 -1
- package/dist/es2019/i18n/pt_BR.js +1 -1
- package/dist/es2019/i18n/tr.js +1 -1
- package/dist/es2019/i18n/uk.js +1 -1
- package/dist/es2019/i18n.js +1 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/clients/ShareServiceClient.js +24 -15
- package/dist/esm/components/ShareDialogWithTrigger.js +84 -13
- package/dist/esm/components/ShareForm.js +10 -5
- package/dist/esm/components/UserPickerField.js +14 -7
- package/dist/esm/components/analytics/analytics.js +1 -1
- package/dist/esm/i18n/da.js +1 -1
- package/dist/esm/i18n/en_ZZ.js +5 -1
- package/dist/esm/i18n/es.js +1 -1
- package/dist/esm/i18n/nl.js +1 -1
- package/dist/esm/i18n/pt_BR.js +1 -1
- package/dist/esm/i18n/tr.js +1 -1
- package/dist/esm/i18n/uk.js +1 -1
- package/dist/esm/i18n.js +1 -1
- package/dist/esm/version.json +1 -1
- package/dist/types/components/ShareDialogWithTrigger.d.ts +3 -0
- package/dist/types/components/UserPickerField.d.ts +3 -2
- package/dist/types/i18n/en_ZZ.d.ts +3 -0
- package/dist/types/types/ShareContentState.d.ts +3 -0
- package/dist/types-ts4.5/components/ShareDialogWithTrigger.d.ts +3 -0
- package/dist/types-ts4.5/components/UserPickerField.d.ts +3 -2
- package/dist/types-ts4.5/i18n/en_ZZ.d.ts +3 -0
- package/dist/types-ts4.5/types/ShareContentState.d.ts +3 -0
- package/package.json +9 -7
- package/report.api.md +3 -0
- package/tmp/api-report-tmp.d.ts +3 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @atlaskit/share
|
|
2
2
|
|
|
3
|
+
## 4.3.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`6febf275a0a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6febf275a0a) - [ux] Rename Roadmap to Timeline in the shared success message for roadmap share content type
|
|
8
|
+
|
|
9
|
+
## 4.3.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- [`1b0098b3680`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1b0098b3680) - [ux] Updated the Share dialog to handle errors relating to user, group, or team selection.
|
|
14
|
+
|
|
3
15
|
## 4.2.3
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -45,22 +45,31 @@ var ShareServiceClient = /*#__PURE__*/function () {
|
|
|
45
45
|
}, {
|
|
46
46
|
key: "share",
|
|
47
47
|
value: function share(content, recipients, metadata, comment) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
48
|
+
return fetch("".concat(this.serviceConfig.url, "/").concat(DEFAULT_SHARE_PATH), {
|
|
49
|
+
method: 'post',
|
|
50
|
+
headers: {
|
|
51
|
+
'Content-Type': 'application/json; charset=UTF-8'
|
|
52
|
+
},
|
|
53
|
+
credentials: 'include',
|
|
54
|
+
body: JSON.stringify({
|
|
55
|
+
content: content,
|
|
56
|
+
recipients: recipients,
|
|
57
|
+
metadata: metadata,
|
|
58
|
+
comment: comment
|
|
59
|
+
})
|
|
60
|
+
}).then(function (response) {
|
|
61
|
+
if (response.status === 204) {
|
|
62
|
+
return Promise.resolve();
|
|
63
|
+
} else if (response.ok) {
|
|
64
|
+
return response.json();
|
|
65
|
+
} else {
|
|
66
|
+
return Promise.reject({
|
|
67
|
+
code: response.status,
|
|
68
|
+
reason: response.statusText,
|
|
69
|
+
body: response.json()
|
|
70
|
+
});
|
|
61
71
|
}
|
|
62
|
-
};
|
|
63
|
-
return _utilServiceSupport.utils.requestService(this.serviceConfig, options);
|
|
72
|
+
});
|
|
64
73
|
}
|
|
65
74
|
}]);
|
|
66
75
|
return ShareServiceClient;
|
|
@@ -5,7 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.defaultShareContentState = exports.ShareDialogWithTriggerInternal = exports.ShareDialogWithTrigger = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
8
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
9
11
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
12
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
13
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
@@ -254,19 +256,40 @@ var ShareDialogWithTriggerInternal = /*#__PURE__*/function (_React$PureComponent
|
|
|
254
256
|
});
|
|
255
257
|
showFlags(_this.getFlags());
|
|
256
258
|
_ufoExperiences.shareSubmitExp.success();
|
|
257
|
-
}).catch(function (
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
259
|
+
}).catch( /*#__PURE__*/function () {
|
|
260
|
+
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(err) {
|
|
261
|
+
var shareError;
|
|
262
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
263
|
+
while (1) switch (_context.prev = _context.next) {
|
|
264
|
+
case 0:
|
|
265
|
+
_context.next = 2;
|
|
266
|
+
return _this.generateShareError(err).catch(function (errorGenFailed) {
|
|
267
|
+
return {
|
|
268
|
+
message: err.message || errorGenFailed.message || 'Unknown error',
|
|
269
|
+
retryable: true
|
|
270
|
+
};
|
|
271
|
+
});
|
|
272
|
+
case 2:
|
|
273
|
+
shareError = _context.sent;
|
|
274
|
+
_this.setState({
|
|
275
|
+
isSharing: false,
|
|
276
|
+
shareError: shareError
|
|
277
|
+
});
|
|
278
|
+
(0, _ufoExperienceHelper.isValidFailedExperience)(_ufoExperiences.shareSubmitExp, err);
|
|
279
|
+
case 5:
|
|
280
|
+
case "end":
|
|
281
|
+
return _context.stop();
|
|
282
|
+
}
|
|
283
|
+
}, _callee);
|
|
284
|
+
}));
|
|
285
|
+
return function (_x) {
|
|
286
|
+
return _ref.apply(this, arguments);
|
|
287
|
+
};
|
|
288
|
+
}());
|
|
266
289
|
});
|
|
267
290
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleFormDismiss", function (data) {
|
|
268
|
-
_this.setState(function (
|
|
269
|
-
var ignoreIntermediateState =
|
|
291
|
+
_this.setState(function (_ref2) {
|
|
292
|
+
var ignoreIntermediateState = _ref2.ignoreIntermediateState;
|
|
270
293
|
return ignoreIntermediateState ? null : {
|
|
271
294
|
defaultValue: data
|
|
272
295
|
};
|
|
@@ -370,6 +393,13 @@ var ShareDialogWithTriggerInternal = /*#__PURE__*/function (_React$PureComponent
|
|
|
370
393
|
isUsingSplitButton: false
|
|
371
394
|
});
|
|
372
395
|
});
|
|
396
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleOnUserSelectionChange", function (value) {
|
|
397
|
+
var onUserSelectionChange = _this.props.onUserSelectionChange;
|
|
398
|
+
_this.setState({
|
|
399
|
+
shareError: undefined
|
|
400
|
+
});
|
|
401
|
+
onUserSelectionChange === null || onUserSelectionChange === void 0 ? void 0 : onUserSelectionChange(value);
|
|
402
|
+
});
|
|
373
403
|
return _this;
|
|
374
404
|
}
|
|
375
405
|
(0, _createClass2.default)(ShareDialogWithTriggerInternal, [{
|
|
@@ -386,6 +416,48 @@ var ShareDialogWithTriggerInternal = /*#__PURE__*/function (_React$PureComponent
|
|
|
386
416
|
this.handleDialogOpen();
|
|
387
417
|
}
|
|
388
418
|
}
|
|
419
|
+
}, {
|
|
420
|
+
key: "generateShareError",
|
|
421
|
+
value: function () {
|
|
422
|
+
var _generateShareError = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(err) {
|
|
423
|
+
var _errorBody$messagesDe;
|
|
424
|
+
var errorBody, firstErrorFromBody;
|
|
425
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
426
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
427
|
+
case 0:
|
|
428
|
+
if (!err.body) {
|
|
429
|
+
_context2.next = 6;
|
|
430
|
+
break;
|
|
431
|
+
}
|
|
432
|
+
_context2.next = 3;
|
|
433
|
+
return err.body;
|
|
434
|
+
case 3:
|
|
435
|
+
_context2.t0 = _context2.sent;
|
|
436
|
+
_context2.next = 7;
|
|
437
|
+
break;
|
|
438
|
+
case 6:
|
|
439
|
+
_context2.t0 = {};
|
|
440
|
+
case 7:
|
|
441
|
+
errorBody = _context2.t0;
|
|
442
|
+
// We'll only try and deal with the first error, sorry
|
|
443
|
+
firstErrorFromBody = (_errorBody$messagesDe = errorBody.messagesDetails) === null || _errorBody$messagesDe === void 0 ? void 0 : _errorBody$messagesDe[0];
|
|
444
|
+
return _context2.abrupt("return", {
|
|
445
|
+
message: (firstErrorFromBody === null || firstErrorFromBody === void 0 ? void 0 : firstErrorFromBody.message) || err.message,
|
|
446
|
+
errorCode: firstErrorFromBody === null || firstErrorFromBody === void 0 ? void 0 : firstErrorFromBody.errorCode,
|
|
447
|
+
helpUrl: firstErrorFromBody === null || firstErrorFromBody === void 0 ? void 0 : firstErrorFromBody.helpUrl,
|
|
448
|
+
retryable: (firstErrorFromBody === null || firstErrorFromBody === void 0 ? void 0 : firstErrorFromBody.errorCode) === undefined
|
|
449
|
+
});
|
|
450
|
+
case 10:
|
|
451
|
+
case "end":
|
|
452
|
+
return _context2.stop();
|
|
453
|
+
}
|
|
454
|
+
}, _callee2);
|
|
455
|
+
}));
|
|
456
|
+
function generateShareError(_x2) {
|
|
457
|
+
return _generateShareError.apply(this, arguments);
|
|
458
|
+
}
|
|
459
|
+
return generateShareError;
|
|
460
|
+
}()
|
|
389
461
|
}, {
|
|
390
462
|
key: "render",
|
|
391
463
|
value: function render() {
|
|
@@ -414,7 +486,6 @@ var ShareDialogWithTriggerInternal = /*#__PURE__*/function (_React$PureComponent
|
|
|
414
486
|
cloudId = _this$props7.cloudId,
|
|
415
487
|
orgId = _this$props7.orgId,
|
|
416
488
|
shareFieldsFooter = _this$props7.shareFieldsFooter,
|
|
417
|
-
onUserSelectionChange = _this$props7.onUserSelectionChange,
|
|
418
489
|
dialogZIndex = _this$props7.dialogZIndex,
|
|
419
490
|
isPublicLink = _this$props7.isPublicLink,
|
|
420
491
|
tabIndex = _this$props7.tabIndex,
|
|
@@ -460,7 +531,7 @@ var ShareDialogWithTriggerInternal = /*#__PURE__*/function (_React$PureComponent
|
|
|
460
531
|
loggedInAccountId: loggedInAccountId,
|
|
461
532
|
cloudId: cloudId,
|
|
462
533
|
orgId: orgId,
|
|
463
|
-
onUserSelectionChange:
|
|
534
|
+
onUserSelectionChange: _this2.handleOnUserSelectionChange,
|
|
464
535
|
shareFieldsFooter: shareFieldsFooter,
|
|
465
536
|
isPublicLink: isPublicLink,
|
|
466
537
|
copyTooltipText: copyTooltipText,
|
|
@@ -97,7 +97,8 @@ var InternalForm = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
97
97
|
helperMessage = _this$props.helperMessage,
|
|
98
98
|
orgId = _this$props.orgId,
|
|
99
99
|
isBrowseUsersDisabled = _this$props.isBrowseUsersDisabled,
|
|
100
|
-
formatMessage = _this$props.intl.formatMessage
|
|
100
|
+
formatMessage = _this$props.intl.formatMessage,
|
|
101
|
+
shareError = _this$props.shareError;
|
|
101
102
|
return (0, _react2.jsx)(_analyticsNext.AnalyticsContext, {
|
|
102
103
|
data: {
|
|
103
104
|
source: _analytics.ANALYTICS_SOURCE
|
|
@@ -121,7 +122,8 @@ var InternalForm = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
121
122
|
isPublicLink: isPublicLink,
|
|
122
123
|
helperMessage: helperMessage,
|
|
123
124
|
orgId: orgId,
|
|
124
|
-
isBrowseUsersDisabled: isBrowseUsersDisabled
|
|
125
|
+
isBrowseUsersDisabled: isBrowseUsersDisabled,
|
|
126
|
+
shareError: shareError
|
|
125
127
|
})), (0, _react2.jsx)("div", {
|
|
126
128
|
css: formFieldStyles
|
|
127
129
|
}, (0, _react2.jsx)(_CommentField.CommentField, {
|
|
@@ -147,13 +149,16 @@ var InternalForm = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
147
149
|
isDisabled = _this$props2.isDisabled,
|
|
148
150
|
isPublicLink = _this$props2.isPublicLink,
|
|
149
151
|
integrationMode = _this$props2.integrationMode;
|
|
150
|
-
var
|
|
152
|
+
var isRetryableError = !!(shareError !== null && shareError !== void 0 && shareError.retryable);
|
|
153
|
+
var isNonRetryableError = shareError && !shareError.retryable;
|
|
154
|
+
var shouldShowWarning = isRetryableError && !isSharing;
|
|
151
155
|
var buttonAppearance = !shouldShowWarning ? 'primary' : 'warning';
|
|
152
156
|
var tabMode = integrationMode === 'tabs';
|
|
153
157
|
var formPublicLabel = tabMode ? _i18n.messages.formSharePublic : _i18n.messages.formSendPublic;
|
|
154
158
|
var formSendLabel = _i18n.messages.formShare;
|
|
155
159
|
var sendLabel = isPublicLink ? formPublicLabel : formSendLabel;
|
|
156
|
-
var buttonLabel =
|
|
160
|
+
var buttonLabel = isRetryableError ? _i18n.messages.formRetry : sendLabel;
|
|
161
|
+
var buttonDisabled = isDisabled || isNonRetryableError;
|
|
157
162
|
var ButtonLabelWrapper = buttonAppearance === 'warning' ? 'strong' : _react.default.Fragment;
|
|
158
163
|
return (0, _react2.jsx)("div", {
|
|
159
164
|
css: submitButtonWrapperStyles
|
|
@@ -169,7 +174,7 @@ var InternalForm = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
169
174
|
appearance: buttonAppearance,
|
|
170
175
|
type: "submit",
|
|
171
176
|
isLoading: isSharing,
|
|
172
|
-
isDisabled:
|
|
177
|
+
isDisabled: buttonDisabled
|
|
173
178
|
}, (0, _react2.jsx)(ButtonLabelWrapper, null, submitButtonLabel || (0, _react2.jsx)(_reactIntlNext.FormattedMessage, buttonLabel))));
|
|
174
179
|
});
|
|
175
180
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderMainTabTitle", function () {
|
|
@@ -103,7 +103,7 @@ var UserPickerFieldComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
103
103
|
return [];
|
|
104
104
|
}
|
|
105
105
|
});
|
|
106
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "
|
|
106
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getHelperMessageOrDefault", function () {
|
|
107
107
|
var _this$props = _this.props,
|
|
108
108
|
product = _this$props.product,
|
|
109
109
|
isPublicLink = _this$props.isPublicLink,
|
|
@@ -142,7 +142,8 @@ var UserPickerFieldComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
142
142
|
selectPortalRef = _this$props2.selectPortalRef,
|
|
143
143
|
isPublicLink = _this$props2.isPublicLink,
|
|
144
144
|
orgId = _this$props2.orgId,
|
|
145
|
-
isBrowseUsersDisabled = _this$props2.isBrowseUsersDisabled
|
|
145
|
+
isBrowseUsersDisabled = _this$props2.isBrowseUsersDisabled,
|
|
146
|
+
shareError = _this$props2.shareError;
|
|
146
147
|
var smartUserPickerProps = enableSmartUserPicker && !isBrowseUsersDisabled ? {
|
|
147
148
|
productKey: product,
|
|
148
149
|
principalId: loggedInAccountId,
|
|
@@ -176,13 +177,19 @@ var UserPickerFieldComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
176
177
|
transform: this.handleUserPickerTransform
|
|
177
178
|
}, function (_ref2) {
|
|
178
179
|
var fieldProps = _ref2.fieldProps,
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
var
|
|
180
|
+
fieldValidationError = _ref2.error,
|
|
181
|
+
fieldValid = _ref2.meta.valid;
|
|
182
|
+
var helperMessage = _this2.getHelperMessageOrDefault();
|
|
183
|
+
var addMoreMessage = shareError !== null && shareError !== void 0 && shareError.errorCode ? null : intl.formatMessage(_i18n.messages.userPickerAddMoreMessage);
|
|
184
|
+
var wasValidationOrShareError = !!fieldValidationError || !!shareError;
|
|
182
185
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(UserPickerComponent, (0, _extends2.default)({}, fieldProps, commonPickerProps, smartUserPickerProps, {
|
|
183
|
-
addMoreMessage:
|
|
186
|
+
addMoreMessage: addMoreMessage,
|
|
184
187
|
menuPortalTarget: menuPortalTarget
|
|
185
|
-
})),
|
|
188
|
+
})), helperMessage && !wasValidationOrShareError && /*#__PURE__*/_react.default.createElement(_form.HelperMessage, null, helperMessage), !fieldValid && fieldValidationError === REQUIRED && /*#__PURE__*/_react.default.createElement(_form.ErrorMessage, null, /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, requiredMessage)), shareError && shareError.errorCode && /*#__PURE__*/_react.default.createElement(_form.ErrorMessage, null, shareError.message, "\xA0", shareError.helpUrl && /*#__PURE__*/_react.default.createElement("a", {
|
|
189
|
+
target: "_blank",
|
|
190
|
+
href: shareError.helpUrl,
|
|
191
|
+
rel: "help"
|
|
192
|
+
}, "Learn why")));
|
|
186
193
|
});
|
|
187
194
|
}
|
|
188
195
|
}]);
|
|
@@ -13,7 +13,7 @@ var buildAttributes = function buildAttributes() {
|
|
|
13
13
|
var attributes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
14
14
|
return _objectSpread({
|
|
15
15
|
packageName: "@atlaskit/share",
|
|
16
|
-
packageVersion: "4.
|
|
16
|
+
packageVersion: "4.3.1"
|
|
17
17
|
}, attributes);
|
|
18
18
|
};
|
|
19
19
|
var createEvent = function createEvent(eventType, source, action, actionSubject, actionSubjectId) {
|
package/dist/cjs/i18n/da.js
CHANGED
|
@@ -44,7 +44,7 @@ var _default = {
|
|
|
44
44
|
'fabric.elements.share.in.integration.button': 'Del i {integrationName}',
|
|
45
45
|
'fabric.elements.share.main.tab.text.confluence': 'Del side',
|
|
46
46
|
'fabric.elements.share.main.tab.text.jira': 'Del sag',
|
|
47
|
-
'fabric.elements.share.success.message': '{object, select,blogpost {Blogindlæg delt}board {Tavle delt}calendar {Kalender delt}draft {Udkast delt}filter {Filter delt}issue {Sag delt}summary {Oversigt delt}list {Liste delt}timeline {Tidslinje delt}form {Formular delt}media {Medier delt}page {Side delt}project {Projekt delt}pullrequest {
|
|
47
|
+
'fabric.elements.share.success.message': '{object, select,blogpost {Blogindlæg delt}board {Tavle delt}calendar {Kalender delt}draft {Udkast delt}filter {Filter delt}issue {Sag delt}summary {Oversigt delt}list {Liste delt}timeline {Tidslinje delt}form {Formular delt}media {Medier delt}page {Side delt}project {Projekt delt}pullrequest {Pull-anmodning delt}question {Spørgsmål delt}report {Rapport delt}repository {Lager delt}request {Anmodning delt}roadmap {Køreplan delt}site {Websted delt}space {Område delt}other {Link delt}}',
|
|
48
48
|
'fabric.elements.share.to.integration.button': 'Del med {integrationName}',
|
|
49
49
|
'fabric.elements.share.trigger.button.icon.label': 'Del ikon',
|
|
50
50
|
'fabric.elements.share.trigger.button.invite.text': 'Invitér',
|
package/dist/cjs/i18n/en_ZZ.js
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
+
/* prettier-ignore */
|
|
7
8
|
/**
|
|
8
9
|
* NOTE:
|
|
9
10
|
*
|
|
@@ -20,6 +21,7 @@ var _default = {
|
|
|
20
21
|
'fabric.elements.share.form.comment.placeholder': 'Add a message',
|
|
21
22
|
'fabric.elements.share.form.info.message.no.invite.confluence': 'Recipients will see the name of the page and your message',
|
|
22
23
|
'fabric.elements.share.form.info.message.no.invite.jira': 'Recipients will see the name of the issue and your message',
|
|
24
|
+
'fabric.elements.share.form.no-permissions': 'You do not have the ability to share.',
|
|
23
25
|
'fabric.elements.share.form.public.send': 'Send public link',
|
|
24
26
|
'fabric.elements.share.form.public.share': 'Share public link',
|
|
25
27
|
'fabric.elements.share.form.retry': 'Retry',
|
|
@@ -29,18 +31,20 @@ var _default = {
|
|
|
29
31
|
'fabric.elements.share.form.user-picker.add-more': 'Enter more',
|
|
30
32
|
'fabric.elements.share.form.user-picker.no-options.existingUserOnly': 'We couldn’t find any results for "{inputValue}".',
|
|
31
33
|
'fabric.elements.share.form.user-picker.no-options.generic': 'We couldn’t find any results for "{inputValue}". Invite people by using an email address.',
|
|
34
|
+
'fabric.elements.share.form.user-picker.placeholder.emailOnly': 'Enter email',
|
|
32
35
|
'fabric.elements.share.form.user-picker.placeholder.existingUserOnly': 'Enter name or team',
|
|
33
36
|
'fabric.elements.share.form.user-picker.placeholder.generic': 'Enter name, group, team or email',
|
|
34
37
|
'fabric.elements.share.form.user-picker.placeholder.jira': 'Enter name, team or email',
|
|
35
38
|
'fabric.elements.share.form.user-picker.placholder.generic.existingUserOnly': 'Enter name, group or team',
|
|
36
39
|
'fabric.elements.share.form.user-picker.validation.required': 'Select at least one user, group, team or email.',
|
|
40
|
+
'fabric.elements.share.form.user-picker.validation.required.email-only': 'Select at least one email.',
|
|
37
41
|
'fabric.elements.share.form.user-picker.validation.required.existingUserOnly': 'Select at least one user, group or team.',
|
|
38
42
|
'fabric.elements.share.form.user-picker.validation.required.jira': 'Select at least one user, team or email.',
|
|
39
43
|
'fabric.elements.share.form.user-picker.validation.required.jira.existingUserOnly': 'Select at least one user or team.',
|
|
40
44
|
'fabric.elements.share.in.integration.button': 'Share in {integrationName}',
|
|
41
45
|
'fabric.elements.share.main.tab.text.confluence': 'Share page',
|
|
42
46
|
'fabric.elements.share.main.tab.text.jira': 'Share issue',
|
|
43
|
-
'fabric.elements.share.success.message': '{object, select,
|
|
47
|
+
'fabric.elements.share.success.message': '{object, select,blogpost {Blog post shared}board {Board shared}calendar {Calendar shared}draft {Draft shared}filter {Filter shared}issue {Issue shared}summary {Summary shared}list {List shared}timeline {Timeline shared}form {Form shared}media {Media shared}page {Page shared}project {Project shared}pullrequest {Pull Request shared}question {Question shared}report {Report shared}repository {Repository shared}request {Request shared}roadmap {Roadmap shared}site {Site shared}space {Space shared}other {Link Shared}}',
|
|
44
48
|
'fabric.elements.share.to.integration.button': 'Share to {integrationName}',
|
|
45
49
|
'fabric.elements.share.trigger.button.icon.label': 'Share icon',
|
|
46
50
|
'fabric.elements.share.trigger.button.invite.text': 'Invite',
|
package/dist/cjs/i18n/es.js
CHANGED
|
@@ -44,7 +44,7 @@ var _default = {
|
|
|
44
44
|
'fabric.elements.share.in.integration.button': 'Compartir en {integrationName}',
|
|
45
45
|
'fabric.elements.share.main.tab.text.confluence': 'Compartir página',
|
|
46
46
|
'fabric.elements.share.main.tab.text.jira': 'Compartir incidencia',
|
|
47
|
-
'fabric.elements.share.success.message': '{object, select,blogpost {Entrada de blog compartida}board {Tablero compartido}calendar {Calendario compartido}draft {Borrador compartido}filter {Filtro compartido}issue {Incidencia compartida}summary {Resumen compartido}list {Lista compartida}timeline {Cronograma compartido}form {Formulario compartido}media {
|
|
47
|
+
'fabric.elements.share.success.message': '{object, select,blogpost {Entrada de blog compartida}board {Tablero compartido}calendar {Calendario compartido}draft {Borrador compartido}filter {Filtro compartido}issue {Incidencia compartida}summary {Resumen compartido}list {Lista compartida}timeline {Cronograma compartido}form {Formulario compartido}media {Medios compartidos}page {Página compartida}project {Proyecto compartido}pullrequest {Solicitud de incorporación de cambios compartida}question {Pregunta compartida}report {Informe compartido}repository {Repositorio compartido}request {Solicitud compartida}roadmap {Hoja de ruta compartida}site {Sitio compartido}space {Espacio compartido}other {Enlace compartido}}',
|
|
48
48
|
'fabric.elements.share.to.integration.button': 'Compartir en {integrationName}',
|
|
49
49
|
'fabric.elements.share.trigger.button.icon.label': 'Icono de compartir',
|
|
50
50
|
'fabric.elements.share.trigger.button.invite.text': 'Invitar',
|
package/dist/cjs/i18n/nl.js
CHANGED
|
@@ -44,7 +44,7 @@ var _default = {
|
|
|
44
44
|
'fabric.elements.share.in.integration.button': 'Delen in {integrationName}',
|
|
45
45
|
'fabric.elements.share.main.tab.text.confluence': 'Pagina delen',
|
|
46
46
|
'fabric.elements.share.main.tab.text.jira': 'Issue delen',
|
|
47
|
-
'fabric.elements.share.success.message': '{object, select,blogpost {blogpost gedeeld}board {bord gedeeld}calendar {agenda gedeeld}draft {concept gedeeld}filter {filter gedeeld}issue {issue gedeeld}summary {samenvatting gedeeld}list {lijst gedeeld}timeline {tijdlijn gedeeld}form {formulier gedeeld}media {media gedeeld}page {pagina gedeeld}project {project gedeeld}pullrequest {pull
|
|
47
|
+
'fabric.elements.share.success.message': '{object, select,blogpost {blogpost gedeeld}board {bord gedeeld}calendar {agenda gedeeld}draft {concept gedeeld}filter {filter gedeeld}issue {issue gedeeld}summary {samenvatting gedeeld}list {lijst gedeeld}timeline {tijdlijn gedeeld}form {formulier gedeeld}media {media gedeeld}page {pagina gedeeld}project {project gedeeld}pullrequest {pull request gedeeld}question {vraag gedeeld}report {rapport gedeeld}repository {repository gedeeld}request {aanvraag gedeeld}roadmap {roadmap gedeeld}site {site gedeeld}space {space gedeeld}other {link gedeeld}}',
|
|
48
48
|
'fabric.elements.share.to.integration.button': 'Delen met {integrationName}',
|
|
49
49
|
'fabric.elements.share.trigger.button.icon.label': "Pictogram 'Delen'",
|
|
50
50
|
'fabric.elements.share.trigger.button.invite.text': 'Uitnodigen',
|
package/dist/cjs/i18n/pt_BR.js
CHANGED
|
@@ -44,7 +44,7 @@ var _default = {
|
|
|
44
44
|
'fabric.elements.share.in.integration.button': 'Compartilhar em {integrationName}',
|
|
45
45
|
'fabric.elements.share.main.tab.text.confluence': 'Compartilhar página',
|
|
46
46
|
'fabric.elements.share.main.tab.text.jira': 'Compartilhar item',
|
|
47
|
-
'fabric.elements.share.success.message': '{object, select,blogpost {Blog compartilhado}board {Quadro compartilhado}calendar {Calendário compartilhado}draft {Rascunho compartilhado}filter {Filtro compartilhado}issue {Item compartilhado}summary {Resumo compartilhado}list {Lista compartilhada}timeline {Cronograma compartilhado}form {Formulário compartilhado}media {Mídia compartilhada}page {Página compartilhada}project {Projeto compartilhado}pullrequest {
|
|
47
|
+
'fabric.elements.share.success.message': '{object, select,blogpost {Blog compartilhado}board {Quadro compartilhado}calendar {Calendário compartilhado}draft {Rascunho compartilhado}filter {Filtro compartilhado}issue {Item compartilhado}summary {Resumo compartilhado}list {Lista compartilhada}timeline {Cronograma compartilhado}form {Formulário compartilhado}media {Mídia compartilhada}page {Página compartilhada}project {Projeto compartilhado}pullrequest {Solicitação pull compartilhada}question {Pergunta compartilhada}report {Relatório compartilhado}repository {Repositório compartilhado}request {Solicitação compartilhada}roadmap {Roteiro compartilhado}site {Site compartilhado}space {Espaço compartilhado}other {Link compartilhado}}',
|
|
48
48
|
'fabric.elements.share.to.integration.button': 'Compartilhar em {integrationName}',
|
|
49
49
|
'fabric.elements.share.trigger.button.icon.label': 'Ícone de compartilhamento',
|
|
50
50
|
'fabric.elements.share.trigger.button.invite.text': 'Convidar',
|
package/dist/cjs/i18n/tr.js
CHANGED
|
@@ -44,7 +44,7 @@ var _default = {
|
|
|
44
44
|
'fabric.elements.share.in.integration.button': '{integrationName} içinde paylaş',
|
|
45
45
|
'fabric.elements.share.main.tab.text.confluence': 'Sayfayı paylaşın',
|
|
46
46
|
'fabric.elements.share.main.tab.text.jira': 'Konuyu paylaşın',
|
|
47
|
-
'fabric.elements.share.success.message': '{object, select,blogpost {Blog gönderisi paylaşıldı}board {Pano paylaşıldı}calendar {Takvim paylaşıldı}draft {Taslak paylaşıldı}filter {Filtre paylaşıldı}issue {Konu paylaşıldı}summary {Özet paylaşıldı}list {Liste paylaşıldı}timeline {Zaman Çizelgesi paylaşıldı}form {Form paylaşıldı}media {Medya paylaşıldı}page {Sayfa paylaşıldı}project {Proje paylaşıldı}pullrequest {Çekme İsteği paylaşıldı}question {Soru paylaşıldı}report {Rapor paylaşıldı}repository {Depo paylaşıldı}request {Talep paylaşıldı}roadmap {Yol haritası paylaşıldı}site {Site paylaşıldı}space {Alan paylaşıldı}other {Bağlantı
|
|
47
|
+
'fabric.elements.share.success.message': '{object, select,blogpost {Blog gönderisi paylaşıldı}board {Pano paylaşıldı}calendar {Takvim paylaşıldı}draft {Taslak paylaşıldı}filter {Filtre paylaşıldı}issue {Konu paylaşıldı}summary {Özet paylaşıldı}list {Liste paylaşıldı}timeline {Zaman Çizelgesi paylaşıldı}form {Form paylaşıldı}media {Medya paylaşıldı}page {Sayfa paylaşıldı}project {Proje paylaşıldı}pullrequest {Çekme İsteği paylaşıldı}question {Soru paylaşıldı}report {Rapor paylaşıldı}repository {Depo paylaşıldı}request {Talep paylaşıldı}roadmap {Yol haritası paylaşıldı}site {Site paylaşıldı}space {Alan paylaşıldı}other {Bağlantı Paylaşıldı}}',
|
|
48
48
|
'fabric.elements.share.to.integration.button': '{integrationName} üzerinden paylaş',
|
|
49
49
|
'fabric.elements.share.trigger.button.icon.label': 'Paylaşma simgesi',
|
|
50
50
|
'fabric.elements.share.trigger.button.invite.text': 'Davet Et',
|
package/dist/cjs/i18n/uk.js
CHANGED
|
@@ -44,7 +44,7 @@ var _default = {
|
|
|
44
44
|
'fabric.elements.share.in.integration.button': 'Поділитися в {integrationName}',
|
|
45
45
|
'fabric.elements.share.main.tab.text.confluence': 'Поділитися сторінкою',
|
|
46
46
|
'fabric.elements.share.main.tab.text.jira': 'Поділитися завданням',
|
|
47
|
-
'fabric.elements.share.success.message': '{object, select,blogpost {Надано доступ до допису
|
|
47
|
+
'fabric.elements.share.success.message': '{object, select,blogpost {Надано доступ до допису у блозі}board {Надано доступ до дошки}calendar {Надано доступ до календаря}draft {Надано доступ до чернетки}filter {Надано доступ до фільтра}issue {Надано доступ до завдання}summary {Надано доступ до підсумку}list {Надано доступ до списку}timeline {Надано доступ до шкали}form {Надано доступ до форми}media {Надано доступ до медіафайлу}page {Надано доступ до сторінки}project {Надано доступ до проєкту}pullrequest {Надано доступ до запиту на внесення змін}question {Надано доступ до запитання}report {Надано доступ до звіту}repository {Надано доступ до репозиторію}request {Надано доступ до запиту}roadmap {Надано доступ до плану розробки}site {Надано доступ до сайту}space {Надано доступ до розділу}other {Надано доступ до посилання}}',
|
|
48
48
|
'fabric.elements.share.to.integration.button': 'Надіслати в {integrationName}',
|
|
49
49
|
'fabric.elements.share.trigger.button.icon.label': 'Надіслати піктограму',
|
|
50
50
|
'fabric.elements.share.trigger.button.invite.text': 'Запросити',
|
package/dist/cjs/i18n.js
CHANGED
|
@@ -170,7 +170,7 @@ var messages = (0, _reactIntlNext.defineMessages)({
|
|
|
170
170
|
id: 'fabric.elements.share.success.message',
|
|
171
171
|
defaultMessage: '{object, select,' + 'blogpost {Blog post shared}' + 'board {Board shared}' + 'calendar {Calendar shared}' + 'draft {Draft shared}' +
|
|
172
172
|
// this is a placeholder for Invite to edit in Confluence
|
|
173
|
-
'filter {Filter shared}' + 'issue {Issue shared}' + 'summary {Summary shared}' + 'list {List shared}' + 'timeline {Timeline shared}' + 'form {Form shared}' + 'media {Media shared}' + 'page {Page shared}' + 'project {Project shared}' + 'pullrequest {Pull Request shared}' + 'question {Question shared}' + 'report {Report shared}' + 'repository {Repository shared}' + 'request {Request shared}' + 'roadmap {
|
|
173
|
+
'filter {Filter shared}' + 'issue {Issue shared}' + 'summary {Summary shared}' + 'list {List shared}' + 'timeline {Timeline shared}' + 'form {Form shared}' + 'media {Media shared}' + 'page {Page shared}' + 'project {Project shared}' + 'pullrequest {Pull Request shared}' + 'question {Question shared}' + 'report {Report shared}' + 'repository {Repository shared}' + 'request {Request shared}' + 'roadmap {Timeline shared}' + 'site {Site shared}' + 'space {Space shared}' + 'other {Link Shared}' + '}',
|
|
174
174
|
description: 'Default text for share success message displayed in a flag'
|
|
175
175
|
},
|
|
176
176
|
shareToIntegrationButtonText: {
|
package/dist/cjs/version.json
CHANGED
|
@@ -26,21 +26,30 @@ export class ShareServiceClient {
|
|
|
26
26
|
* To send a POST request to the share endpoint in Share service
|
|
27
27
|
*/
|
|
28
28
|
share(content, recipients, metadata, comment) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
29
|
+
return fetch(`${this.serviceConfig.url}/${DEFAULT_SHARE_PATH}`, {
|
|
30
|
+
method: 'post',
|
|
31
|
+
headers: {
|
|
32
|
+
'Content-Type': 'application/json; charset=UTF-8'
|
|
33
|
+
},
|
|
34
|
+
credentials: 'include',
|
|
35
|
+
body: JSON.stringify({
|
|
36
|
+
content,
|
|
37
|
+
recipients,
|
|
38
|
+
metadata,
|
|
39
|
+
comment
|
|
40
|
+
})
|
|
41
|
+
}).then(response => {
|
|
42
|
+
if (response.status === 204) {
|
|
43
|
+
return Promise.resolve();
|
|
44
|
+
} else if (response.ok) {
|
|
45
|
+
return response.json();
|
|
46
|
+
} else {
|
|
47
|
+
return Promise.reject({
|
|
48
|
+
code: response.status,
|
|
49
|
+
reason: response.statusText,
|
|
50
|
+
body: response.json()
|
|
51
|
+
});
|
|
42
52
|
}
|
|
43
|
-
};
|
|
44
|
-
return utils.requestService(this.serviceConfig, options);
|
|
53
|
+
});
|
|
45
54
|
}
|
|
46
55
|
}
|
|
@@ -249,12 +249,14 @@ export class ShareDialogWithTriggerInternal extends React.PureComponent {
|
|
|
249
249
|
});
|
|
250
250
|
showFlags(this.getFlags());
|
|
251
251
|
shareSubmitExp.success();
|
|
252
|
-
}).catch(err => {
|
|
252
|
+
}).catch(async err => {
|
|
253
|
+
const shareError = await this.generateShareError(err).catch(errorGenFailed => ({
|
|
254
|
+
message: err.message || errorGenFailed.message || 'Unknown error',
|
|
255
|
+
retryable: true
|
|
256
|
+
}));
|
|
253
257
|
this.setState({
|
|
254
258
|
isSharing: false,
|
|
255
|
-
shareError
|
|
256
|
-
message: err.message
|
|
257
|
-
}
|
|
259
|
+
shareError
|
|
258
260
|
});
|
|
259
261
|
isValidFailedExperience(shareSubmitExp, err);
|
|
260
262
|
});
|
|
@@ -369,6 +371,15 @@ export class ShareDialogWithTriggerInternal extends React.PureComponent {
|
|
|
369
371
|
isUsingSplitButton: false
|
|
370
372
|
});
|
|
371
373
|
});
|
|
374
|
+
_defineProperty(this, "handleOnUserSelectionChange", value => {
|
|
375
|
+
const {
|
|
376
|
+
onUserSelectionChange
|
|
377
|
+
} = this.props;
|
|
378
|
+
this.setState({
|
|
379
|
+
shareError: undefined
|
|
380
|
+
});
|
|
381
|
+
onUserSelectionChange === null || onUserSelectionChange === void 0 ? void 0 : onUserSelectionChange(value);
|
|
382
|
+
});
|
|
372
383
|
}
|
|
373
384
|
componentDidMount() {
|
|
374
385
|
if (this.props.isAutoOpenDialog) {
|
|
@@ -380,6 +391,19 @@ export class ShareDialogWithTriggerInternal extends React.PureComponent {
|
|
|
380
391
|
this.handleDialogOpen();
|
|
381
392
|
}
|
|
382
393
|
}
|
|
394
|
+
async generateShareError(err) {
|
|
395
|
+
var _errorBody$messagesDe;
|
|
396
|
+
const errorBody = err.body ? await err.body : {};
|
|
397
|
+
|
|
398
|
+
// We'll only try and deal with the first error, sorry
|
|
399
|
+
const firstErrorFromBody = (_errorBody$messagesDe = errorBody.messagesDetails) === null || _errorBody$messagesDe === void 0 ? void 0 : _errorBody$messagesDe[0];
|
|
400
|
+
return {
|
|
401
|
+
message: (firstErrorFromBody === null || firstErrorFromBody === void 0 ? void 0 : firstErrorFromBody.message) || err.message,
|
|
402
|
+
errorCode: firstErrorFromBody === null || firstErrorFromBody === void 0 ? void 0 : firstErrorFromBody.errorCode,
|
|
403
|
+
helpUrl: firstErrorFromBody === null || firstErrorFromBody === void 0 ? void 0 : firstErrorFromBody.helpUrl,
|
|
404
|
+
retryable: (firstErrorFromBody === null || firstErrorFromBody === void 0 ? void 0 : firstErrorFromBody.errorCode) === undefined
|
|
405
|
+
};
|
|
406
|
+
}
|
|
383
407
|
render() {
|
|
384
408
|
const {
|
|
385
409
|
isDialogOpen,
|
|
@@ -406,7 +430,6 @@ export class ShareDialogWithTriggerInternal extends React.PureComponent {
|
|
|
406
430
|
cloudId,
|
|
407
431
|
orgId,
|
|
408
432
|
shareFieldsFooter,
|
|
409
|
-
onUserSelectionChange,
|
|
410
433
|
dialogZIndex,
|
|
411
434
|
isPublicLink,
|
|
412
435
|
tabIndex,
|
|
@@ -452,7 +475,7 @@ export class ShareDialogWithTriggerInternal extends React.PureComponent {
|
|
|
452
475
|
loggedInAccountId: loggedInAccountId,
|
|
453
476
|
cloudId: cloudId,
|
|
454
477
|
orgId: orgId,
|
|
455
|
-
onUserSelectionChange:
|
|
478
|
+
onUserSelectionChange: this.handleOnUserSelectionChange,
|
|
456
479
|
shareFieldsFooter: shareFieldsFooter,
|
|
457
480
|
isPublicLink: isPublicLink,
|
|
458
481
|
copyTooltipText: copyTooltipText,
|
|
@@ -95,7 +95,8 @@ class InternalForm extends React.PureComponent {
|
|
|
95
95
|
isBrowseUsersDisabled,
|
|
96
96
|
intl: {
|
|
97
97
|
formatMessage
|
|
98
|
-
}
|
|
98
|
+
},
|
|
99
|
+
shareError
|
|
99
100
|
} = this.props;
|
|
100
101
|
return jsx(AnalyticsContext, {
|
|
101
102
|
data: {
|
|
@@ -120,7 +121,8 @@ class InternalForm extends React.PureComponent {
|
|
|
120
121
|
isPublicLink: isPublicLink,
|
|
121
122
|
helperMessage: helperMessage,
|
|
122
123
|
orgId: orgId,
|
|
123
|
-
isBrowseUsersDisabled: isBrowseUsersDisabled
|
|
124
|
+
isBrowseUsersDisabled: isBrowseUsersDisabled,
|
|
125
|
+
shareError: shareError
|
|
124
126
|
})), jsx("div", {
|
|
125
127
|
css: formFieldStyles
|
|
126
128
|
}, jsx(CommentField, {
|
|
@@ -149,13 +151,16 @@ class InternalForm extends React.PureComponent {
|
|
|
149
151
|
isPublicLink,
|
|
150
152
|
integrationMode
|
|
151
153
|
} = this.props;
|
|
152
|
-
const
|
|
154
|
+
const isRetryableError = !!(shareError !== null && shareError !== void 0 && shareError.retryable);
|
|
155
|
+
const isNonRetryableError = shareError && !shareError.retryable;
|
|
156
|
+
const shouldShowWarning = isRetryableError && !isSharing;
|
|
153
157
|
const buttonAppearance = !shouldShowWarning ? 'primary' : 'warning';
|
|
154
158
|
const tabMode = integrationMode === 'tabs';
|
|
155
159
|
const formPublicLabel = tabMode ? messages.formSharePublic : messages.formSendPublic;
|
|
156
160
|
const formSendLabel = messages.formShare;
|
|
157
161
|
const sendLabel = isPublicLink ? formPublicLabel : formSendLabel;
|
|
158
|
-
const buttonLabel =
|
|
162
|
+
const buttonLabel = isRetryableError ? messages.formRetry : sendLabel;
|
|
163
|
+
const buttonDisabled = isDisabled || isNonRetryableError;
|
|
159
164
|
const ButtonLabelWrapper = buttonAppearance === 'warning' ? 'strong' : React.Fragment;
|
|
160
165
|
return jsx("div", {
|
|
161
166
|
css: submitButtonWrapperStyles
|
|
@@ -171,7 +176,7 @@ class InternalForm extends React.PureComponent {
|
|
|
171
176
|
appearance: buttonAppearance,
|
|
172
177
|
type: "submit",
|
|
173
178
|
isLoading: isSharing,
|
|
174
|
-
isDisabled:
|
|
179
|
+
isDisabled: buttonDisabled
|
|
175
180
|
}, jsx(ButtonLabelWrapper, null, submitButtonLabel || jsx(FormattedMessage, buttonLabel))));
|
|
176
181
|
});
|
|
177
182
|
_defineProperty(this, "renderMainTabTitle", () => {
|