@atlaskit/share 4.2.2 → 4.3.0
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/LazyShareForm/LazyShareForm.js +3 -1
- package/dist/cjs/components/ShareDialogWithTrigger.js +84 -13
- package/dist/cjs/components/ShareForm.js +11 -7
- package/dist/cjs/components/ShareFormWrapper/styled.js +2 -3
- package/dist/cjs/components/ShareHeader.js +1 -2
- 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/version.json +1 -1
- package/dist/es2019/clients/ShareServiceClient.js +24 -15
- package/dist/es2019/components/LazyShareForm/LazyShareForm.js +2 -1
- package/dist/es2019/components/ShareDialogWithTrigger.js +29 -6
- package/dist/es2019/components/ShareForm.js +11 -7
- package/dist/es2019/components/ShareFormWrapper/styled.js +2 -3
- package/dist/es2019/components/ShareHeader.js +3 -4
- 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/version.json +1 -1
- package/dist/esm/clients/ShareServiceClient.js +24 -15
- package/dist/esm/components/LazyShareForm/LazyShareForm.js +2 -1
- package/dist/esm/components/ShareDialogWithTrigger.js +84 -13
- package/dist/esm/components/ShareForm.js +11 -7
- package/dist/esm/components/ShareFormWrapper/styled.js +2 -3
- package/dist/esm/components/ShareHeader.js +1 -2
- 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/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 +8 -6
- package/report.api.md +3 -0
- package/tmp/api-report-tmp.d.ts +3 -0
|
@@ -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,
|
|
@@ -10,7 +10,6 @@ import Form from '@atlaskit/form';
|
|
|
10
10
|
import ErrorIcon from '@atlaskit/icon/glyph/error';
|
|
11
11
|
import Tabs, { Tab, TabList, TabPanel } from '@atlaskit/tabs';
|
|
12
12
|
import { R400 } from '@atlaskit/theme/colors';
|
|
13
|
-
import { gridSize } from '@atlaskit/theme/constants';
|
|
14
13
|
import Tooltip from '@atlaskit/tooltip';
|
|
15
14
|
import { messages } from '../i18n';
|
|
16
15
|
import { TabType } from '../types';
|
|
@@ -34,7 +33,7 @@ const centerAlignedIconWrapperStyles = css`
|
|
|
34
33
|
}
|
|
35
34
|
`;
|
|
36
35
|
export const formWrapperStyles = css`
|
|
37
|
-
margin-top: ${
|
|
36
|
+
margin-top: ${"var(--ds-space-100, 8px)"};
|
|
38
37
|
width: 100%;
|
|
39
38
|
|
|
40
39
|
/* jira has a class override font settings on h1 in gh-custom-field-pickers.css */
|
|
@@ -96,7 +95,8 @@ class InternalForm extends React.PureComponent {
|
|
|
96
95
|
isBrowseUsersDisabled,
|
|
97
96
|
intl: {
|
|
98
97
|
formatMessage
|
|
99
|
-
}
|
|
98
|
+
},
|
|
99
|
+
shareError
|
|
100
100
|
} = this.props;
|
|
101
101
|
return jsx(AnalyticsContext, {
|
|
102
102
|
data: {
|
|
@@ -121,7 +121,8 @@ class InternalForm extends React.PureComponent {
|
|
|
121
121
|
isPublicLink: isPublicLink,
|
|
122
122
|
helperMessage: helperMessage,
|
|
123
123
|
orgId: orgId,
|
|
124
|
-
isBrowseUsersDisabled: isBrowseUsersDisabled
|
|
124
|
+
isBrowseUsersDisabled: isBrowseUsersDisabled,
|
|
125
|
+
shareError: shareError
|
|
125
126
|
})), jsx("div", {
|
|
126
127
|
css: formFieldStyles
|
|
127
128
|
}, jsx(CommentField, {
|
|
@@ -150,13 +151,16 @@ class InternalForm extends React.PureComponent {
|
|
|
150
151
|
isPublicLink,
|
|
151
152
|
integrationMode
|
|
152
153
|
} = this.props;
|
|
153
|
-
const
|
|
154
|
+
const isRetryableError = !!(shareError !== null && shareError !== void 0 && shareError.retryable);
|
|
155
|
+
const isNonRetryableError = shareError && !shareError.retryable;
|
|
156
|
+
const shouldShowWarning = isRetryableError && !isSharing;
|
|
154
157
|
const buttonAppearance = !shouldShowWarning ? 'primary' : 'warning';
|
|
155
158
|
const tabMode = integrationMode === 'tabs';
|
|
156
159
|
const formPublicLabel = tabMode ? messages.formSharePublic : messages.formSendPublic;
|
|
157
160
|
const formSendLabel = messages.formShare;
|
|
158
161
|
const sendLabel = isPublicLink ? formPublicLabel : formSendLabel;
|
|
159
|
-
const buttonLabel =
|
|
162
|
+
const buttonLabel = isRetryableError ? messages.formRetry : sendLabel;
|
|
163
|
+
const buttonDisabled = isDisabled || isNonRetryableError;
|
|
160
164
|
const ButtonLabelWrapper = buttonAppearance === 'warning' ? 'strong' : React.Fragment;
|
|
161
165
|
return jsx("div", {
|
|
162
166
|
css: submitButtonWrapperStyles
|
|
@@ -172,7 +176,7 @@ class InternalForm extends React.PureComponent {
|
|
|
172
176
|
appearance: buttonAppearance,
|
|
173
177
|
type: "submit",
|
|
174
178
|
isLoading: isSharing,
|
|
175
|
-
isDisabled:
|
|
179
|
+
isDisabled: buttonDisabled
|
|
176
180
|
}, jsx(ButtonLabelWrapper, null, submitButtonLabel || jsx(FormattedMessage, buttonLabel))));
|
|
177
181
|
});
|
|
178
182
|
_defineProperty(this, "renderMainTabTitle", () => {
|
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { jsx } from '@emotion/react';
|
|
5
|
-
import { gridSize } from '@atlaskit/theme/constants';
|
|
6
5
|
export const InlineDialogFormWrapper = ({
|
|
7
6
|
children
|
|
8
7
|
}) => jsx("div", {
|
|
9
8
|
css: {
|
|
10
|
-
width: `${
|
|
9
|
+
width: `${8 * 44}px`
|
|
11
10
|
}
|
|
12
11
|
}, children);
|
|
13
12
|
|
|
@@ -21,6 +20,6 @@ export const InlineDialogContentWrapper = ({
|
|
|
21
20
|
children
|
|
22
21
|
}) => jsx("div", {
|
|
23
22
|
css: {
|
|
24
|
-
padding: `${
|
|
23
|
+
padding: `${"var(--ds-space-200, 16px)"} ${"var(--ds-space-300, 24px)"}`
|
|
25
24
|
}
|
|
26
25
|
}, children);
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { css, jsx, useTheme } from '@emotion/react';
|
|
4
4
|
import { FormattedMessage } from 'react-intl-next';
|
|
5
|
-
import { gridSize } from '@atlaskit/theme/constants';
|
|
6
5
|
import { h500 } from '@atlaskit/theme/typography';
|
|
7
6
|
import { messages } from '../i18n';
|
|
8
7
|
const headerWrapperStyles = css`
|
|
@@ -11,9 +10,9 @@ const headerWrapperStyles = css`
|
|
|
11
10
|
`;
|
|
12
11
|
export const getFormHeaderTitleStyles = theme => css`
|
|
13
12
|
${h500(theme)}
|
|
14
|
-
line-height: ${
|
|
15
|
-
margin-right: ${
|
|
16
|
-
margin-top: ${
|
|
13
|
+
line-height: ${"var(--ds-font-lineHeight-500, 32px)"};
|
|
14
|
+
margin-right: ${"var(--ds-space-400, 32px)"};
|
|
15
|
+
margin-top: ${"var(--ds-space-400, 32px)"};
|
|
17
16
|
overflow: hidden;
|
|
18
17
|
text-overflow: ellipsis;
|
|
19
18
|
white-space: nowrap;
|
|
@@ -73,7 +73,7 @@ export class UserPickerFieldComponent extends React.Component {
|
|
|
73
73
|
return [];
|
|
74
74
|
}
|
|
75
75
|
});
|
|
76
|
-
_defineProperty(this, "
|
|
76
|
+
_defineProperty(this, "getHelperMessageOrDefault", () => {
|
|
77
77
|
const {
|
|
78
78
|
product,
|
|
79
79
|
isPublicLink,
|
|
@@ -111,7 +111,8 @@ export class UserPickerFieldComponent extends React.Component {
|
|
|
111
111
|
selectPortalRef,
|
|
112
112
|
isPublicLink,
|
|
113
113
|
orgId,
|
|
114
|
-
isBrowseUsersDisabled
|
|
114
|
+
isBrowseUsersDisabled,
|
|
115
|
+
shareError
|
|
115
116
|
} = this.props;
|
|
116
117
|
const smartUserPickerProps = enableSmartUserPicker && !isBrowseUsersDisabled ? {
|
|
117
118
|
productKey: product,
|
|
@@ -146,16 +147,22 @@ export class UserPickerFieldComponent extends React.Component {
|
|
|
146
147
|
transform: this.handleUserPickerTransform
|
|
147
148
|
}, ({
|
|
148
149
|
fieldProps,
|
|
149
|
-
error,
|
|
150
|
+
error: fieldValidationError,
|
|
150
151
|
meta: {
|
|
151
|
-
valid
|
|
152
|
+
valid: fieldValid
|
|
152
153
|
}
|
|
153
154
|
}) => {
|
|
154
|
-
const
|
|
155
|
+
const helperMessage = this.getHelperMessageOrDefault();
|
|
156
|
+
const addMoreMessage = shareError !== null && shareError !== void 0 && shareError.errorCode ? null : intl.formatMessage(messages.userPickerAddMoreMessage);
|
|
157
|
+
const wasValidationOrShareError = !!fieldValidationError || !!shareError;
|
|
155
158
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(UserPickerComponent, _extends({}, fieldProps, commonPickerProps, smartUserPickerProps, {
|
|
156
|
-
addMoreMessage:
|
|
159
|
+
addMoreMessage: addMoreMessage,
|
|
157
160
|
menuPortalTarget: menuPortalTarget
|
|
158
|
-
})),
|
|
161
|
+
})), helperMessage && !wasValidationOrShareError && /*#__PURE__*/React.createElement(HelperMessage, null, helperMessage), !fieldValid && fieldValidationError === REQUIRED && /*#__PURE__*/React.createElement(ErrorMessage, null, /*#__PURE__*/React.createElement(FormattedMessage, requiredMessage)), shareError && shareError.errorCode && /*#__PURE__*/React.createElement(ErrorMessage, null, shareError.message, "\xA0", shareError.helpUrl && /*#__PURE__*/React.createElement("a", {
|
|
162
|
+
target: "_blank",
|
|
163
|
+
href: shareError.helpUrl,
|
|
164
|
+
rel: "help"
|
|
165
|
+
}, "Learn why")));
|
|
159
166
|
});
|
|
160
167
|
}
|
|
161
168
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isEmail, isTeam, isUser } from '@atlaskit/smart-user-picker';
|
|
2
2
|
const buildAttributes = (attributes = {}) => ({
|
|
3
3
|
packageName: "@atlaskit/share",
|
|
4
|
-
packageVersion: "4.
|
|
4
|
+
packageVersion: "4.3.0",
|
|
5
5
|
...attributes
|
|
6
6
|
});
|
|
7
7
|
const createEvent = (eventType, source, action, actionSubject, actionSubjectId, attributes = {}) => ({
|
package/dist/es2019/i18n/da.js
CHANGED
|
@@ -38,7 +38,7 @@ export default {
|
|
|
38
38
|
'fabric.elements.share.in.integration.button': 'Del i {integrationName}',
|
|
39
39
|
'fabric.elements.share.main.tab.text.confluence': 'Del side',
|
|
40
40
|
'fabric.elements.share.main.tab.text.jira': 'Del sag',
|
|
41
|
-
'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 {
|
|
41
|
+
'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}}',
|
|
42
42
|
'fabric.elements.share.to.integration.button': 'Del med {integrationName}',
|
|
43
43
|
'fabric.elements.share.trigger.button.icon.label': 'Del ikon',
|
|
44
44
|
'fabric.elements.share.trigger.button.invite.text': 'Invitér',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* prettier-ignore */
|
|
1
2
|
/**
|
|
2
3
|
* NOTE:
|
|
3
4
|
*
|
|
@@ -14,6 +15,7 @@ export default {
|
|
|
14
15
|
'fabric.elements.share.form.comment.placeholder': 'Add a message',
|
|
15
16
|
'fabric.elements.share.form.info.message.no.invite.confluence': 'Recipients will see the name of the page and your message',
|
|
16
17
|
'fabric.elements.share.form.info.message.no.invite.jira': 'Recipients will see the name of the issue and your message',
|
|
18
|
+
'fabric.elements.share.form.no-permissions': 'You do not have the ability to share.',
|
|
17
19
|
'fabric.elements.share.form.public.send': 'Send public link',
|
|
18
20
|
'fabric.elements.share.form.public.share': 'Share public link',
|
|
19
21
|
'fabric.elements.share.form.retry': 'Retry',
|
|
@@ -23,18 +25,20 @@ export default {
|
|
|
23
25
|
'fabric.elements.share.form.user-picker.add-more': 'Enter more',
|
|
24
26
|
'fabric.elements.share.form.user-picker.no-options.existingUserOnly': 'We couldn’t find any results for "{inputValue}".',
|
|
25
27
|
'fabric.elements.share.form.user-picker.no-options.generic': 'We couldn’t find any results for "{inputValue}". Invite people by using an email address.',
|
|
28
|
+
'fabric.elements.share.form.user-picker.placeholder.emailOnly': 'Enter email',
|
|
26
29
|
'fabric.elements.share.form.user-picker.placeholder.existingUserOnly': 'Enter name or team',
|
|
27
30
|
'fabric.elements.share.form.user-picker.placeholder.generic': 'Enter name, group, team or email',
|
|
28
31
|
'fabric.elements.share.form.user-picker.placeholder.jira': 'Enter name, team or email',
|
|
29
32
|
'fabric.elements.share.form.user-picker.placholder.generic.existingUserOnly': 'Enter name, group or team',
|
|
30
33
|
'fabric.elements.share.form.user-picker.validation.required': 'Select at least one user, group, team or email.',
|
|
34
|
+
'fabric.elements.share.form.user-picker.validation.required.email-only': 'Select at least one email.',
|
|
31
35
|
'fabric.elements.share.form.user-picker.validation.required.existingUserOnly': 'Select at least one user, group or team.',
|
|
32
36
|
'fabric.elements.share.form.user-picker.validation.required.jira': 'Select at least one user, team or email.',
|
|
33
37
|
'fabric.elements.share.form.user-picker.validation.required.jira.existingUserOnly': 'Select at least one user or team.',
|
|
34
38
|
'fabric.elements.share.in.integration.button': 'Share in {integrationName}',
|
|
35
39
|
'fabric.elements.share.main.tab.text.confluence': 'Share page',
|
|
36
40
|
'fabric.elements.share.main.tab.text.jira': 'Share issue',
|
|
37
|
-
'fabric.elements.share.success.message': '{object, select,
|
|
41
|
+
'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}}',
|
|
38
42
|
'fabric.elements.share.to.integration.button': 'Share to {integrationName}',
|
|
39
43
|
'fabric.elements.share.trigger.button.icon.label': 'Share icon',
|
|
40
44
|
'fabric.elements.share.trigger.button.invite.text': 'Invite',
|
package/dist/es2019/i18n/es.js
CHANGED
|
@@ -38,7 +38,7 @@ export default {
|
|
|
38
38
|
'fabric.elements.share.in.integration.button': 'Compartir en {integrationName}',
|
|
39
39
|
'fabric.elements.share.main.tab.text.confluence': 'Compartir página',
|
|
40
40
|
'fabric.elements.share.main.tab.text.jira': 'Compartir incidencia',
|
|
41
|
-
'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 {
|
|
41
|
+
'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}}',
|
|
42
42
|
'fabric.elements.share.to.integration.button': 'Compartir en {integrationName}',
|
|
43
43
|
'fabric.elements.share.trigger.button.icon.label': 'Icono de compartir',
|
|
44
44
|
'fabric.elements.share.trigger.button.invite.text': 'Invitar',
|
package/dist/es2019/i18n/nl.js
CHANGED
|
@@ -38,7 +38,7 @@ export default {
|
|
|
38
38
|
'fabric.elements.share.in.integration.button': 'Delen in {integrationName}',
|
|
39
39
|
'fabric.elements.share.main.tab.text.confluence': 'Pagina delen',
|
|
40
40
|
'fabric.elements.share.main.tab.text.jira': 'Issue delen',
|
|
41
|
-
'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
|
|
41
|
+
'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}}',
|
|
42
42
|
'fabric.elements.share.to.integration.button': 'Delen met {integrationName}',
|
|
43
43
|
'fabric.elements.share.trigger.button.icon.label': "Pictogram 'Delen'",
|
|
44
44
|
'fabric.elements.share.trigger.button.invite.text': 'Uitnodigen',
|
|
@@ -38,7 +38,7 @@ export default {
|
|
|
38
38
|
'fabric.elements.share.in.integration.button': 'Compartilhar em {integrationName}',
|
|
39
39
|
'fabric.elements.share.main.tab.text.confluence': 'Compartilhar página',
|
|
40
40
|
'fabric.elements.share.main.tab.text.jira': 'Compartilhar item',
|
|
41
|
-
'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 {
|
|
41
|
+
'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}}',
|
|
42
42
|
'fabric.elements.share.to.integration.button': 'Compartilhar em {integrationName}',
|
|
43
43
|
'fabric.elements.share.trigger.button.icon.label': 'Ícone de compartilhamento',
|
|
44
44
|
'fabric.elements.share.trigger.button.invite.text': 'Convidar',
|
package/dist/es2019/i18n/tr.js
CHANGED
|
@@ -38,7 +38,7 @@ export default {
|
|
|
38
38
|
'fabric.elements.share.in.integration.button': '{integrationName} içinde paylaş',
|
|
39
39
|
'fabric.elements.share.main.tab.text.confluence': 'Sayfayı paylaşın',
|
|
40
40
|
'fabric.elements.share.main.tab.text.jira': 'Konuyu paylaşın',
|
|
41
|
-
'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ı
|
|
41
|
+
'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ı}}',
|
|
42
42
|
'fabric.elements.share.to.integration.button': '{integrationName} üzerinden paylaş',
|
|
43
43
|
'fabric.elements.share.trigger.button.icon.label': 'Paylaşma simgesi',
|
|
44
44
|
'fabric.elements.share.trigger.button.invite.text': 'Davet Et',
|
package/dist/es2019/i18n/uk.js
CHANGED
|
@@ -38,7 +38,7 @@ export default {
|
|
|
38
38
|
'fabric.elements.share.in.integration.button': 'Поділитися в {integrationName}',
|
|
39
39
|
'fabric.elements.share.main.tab.text.confluence': 'Поділитися сторінкою',
|
|
40
40
|
'fabric.elements.share.main.tab.text.jira': 'Поділитися завданням',
|
|
41
|
-
'fabric.elements.share.success.message': '{object, select,blogpost {Надано доступ до допису
|
|
41
|
+
'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 {Надано доступ до посилання}}',
|
|
42
42
|
'fabric.elements.share.to.integration.button': 'Надіслати в {integrationName}',
|
|
43
43
|
'fabric.elements.share.trigger.button.icon.label': 'Надіслати піктограму',
|
|
44
44
|
'fabric.elements.share.trigger.button.invite.text': 'Запросити',
|
package/dist/es2019/version.json
CHANGED
|
@@ -35,22 +35,31 @@ export var ShareServiceClient = /*#__PURE__*/function () {
|
|
|
35
35
|
}, {
|
|
36
36
|
key: "share",
|
|
37
37
|
value: function share(content, recipients, metadata, comment) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
38
|
+
return fetch("".concat(this.serviceConfig.url, "/").concat(DEFAULT_SHARE_PATH), {
|
|
39
|
+
method: 'post',
|
|
40
|
+
headers: {
|
|
41
|
+
'Content-Type': 'application/json; charset=UTF-8'
|
|
42
|
+
},
|
|
43
|
+
credentials: 'include',
|
|
44
|
+
body: JSON.stringify({
|
|
45
|
+
content: content,
|
|
46
|
+
recipients: recipients,
|
|
47
|
+
metadata: metadata,
|
|
48
|
+
comment: comment
|
|
49
|
+
})
|
|
50
|
+
}).then(function (response) {
|
|
51
|
+
if (response.status === 204) {
|
|
52
|
+
return Promise.resolve();
|
|
53
|
+
} else if (response.ok) {
|
|
54
|
+
return response.json();
|
|
55
|
+
} else {
|
|
56
|
+
return Promise.reject({
|
|
57
|
+
code: response.status,
|
|
58
|
+
reason: response.statusText,
|
|
59
|
+
body: response.json()
|
|
60
|
+
});
|
|
51
61
|
}
|
|
52
|
-
};
|
|
53
|
-
return utils.requestService(this.serviceConfig, options);
|
|
62
|
+
});
|
|
54
63
|
}
|
|
55
64
|
}]);
|
|
56
65
|
return ShareServiceClient;
|
|
@@ -4,6 +4,7 @@ import React from 'react';
|
|
|
4
4
|
import { jsx } from '@emotion/react';
|
|
5
5
|
import { FormattedMessage } from 'react-intl-next';
|
|
6
6
|
import { AnalyticsContext } from '@atlaskit/analytics-next';
|
|
7
|
+
// eslint-disable-next-line @atlaskit/design-system/no-deprecated-imports
|
|
7
8
|
import { gridSize } from '@atlaskit/theme/constants';
|
|
8
9
|
import { messages } from '../../i18n';
|
|
9
10
|
import { INTEGRATION_MODAL_SOURCE } from '../analytics/analytics';
|
|
@@ -56,7 +57,7 @@ function LazyShareForm(props) {
|
|
|
56
57
|
}
|
|
57
58
|
}, bottomMessage) : null, customFooter && selectedIntegration === null && jsx("div", {
|
|
58
59
|
css: {
|
|
59
|
-
margin: "0 ".concat(-
|
|
60
|
+
margin: "0 calc(-1 * ".concat("var(--ds-space-300, 24px)", ") calc(-1 * ", "var(--ds-space-200, 16px)", ") calc(-1 * ", "var(--ds-space-300, 24px)", ")")
|
|
60
61
|
}
|
|
61
62
|
}, customFooter));
|
|
62
63
|
React.useEffect(function () {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
3
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
3
4
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
4
5
|
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
|
|
@@ -8,6 +9,7 @@ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
|
8
9
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
9
10
|
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
|
10
11
|
var _templateObject;
|
|
12
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
11
13
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
12
14
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
13
15
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
@@ -249,19 +251,40 @@ export var ShareDialogWithTriggerInternal = /*#__PURE__*/function (_React$PureCo
|
|
|
249
251
|
});
|
|
250
252
|
showFlags(_this.getFlags());
|
|
251
253
|
shareSubmitExp.success();
|
|
252
|
-
}).catch(function (
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
254
|
+
}).catch( /*#__PURE__*/function () {
|
|
255
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(err) {
|
|
256
|
+
var shareError;
|
|
257
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
258
|
+
while (1) switch (_context.prev = _context.next) {
|
|
259
|
+
case 0:
|
|
260
|
+
_context.next = 2;
|
|
261
|
+
return _this.generateShareError(err).catch(function (errorGenFailed) {
|
|
262
|
+
return {
|
|
263
|
+
message: err.message || errorGenFailed.message || 'Unknown error',
|
|
264
|
+
retryable: true
|
|
265
|
+
};
|
|
266
|
+
});
|
|
267
|
+
case 2:
|
|
268
|
+
shareError = _context.sent;
|
|
269
|
+
_this.setState({
|
|
270
|
+
isSharing: false,
|
|
271
|
+
shareError: shareError
|
|
272
|
+
});
|
|
273
|
+
isValidFailedExperience(shareSubmitExp, err);
|
|
274
|
+
case 5:
|
|
275
|
+
case "end":
|
|
276
|
+
return _context.stop();
|
|
277
|
+
}
|
|
278
|
+
}, _callee);
|
|
279
|
+
}));
|
|
280
|
+
return function (_x) {
|
|
281
|
+
return _ref.apply(this, arguments);
|
|
282
|
+
};
|
|
283
|
+
}());
|
|
261
284
|
});
|
|
262
285
|
_defineProperty(_assertThisInitialized(_this), "handleFormDismiss", function (data) {
|
|
263
|
-
_this.setState(function (
|
|
264
|
-
var ignoreIntermediateState =
|
|
286
|
+
_this.setState(function (_ref2) {
|
|
287
|
+
var ignoreIntermediateState = _ref2.ignoreIntermediateState;
|
|
265
288
|
return ignoreIntermediateState ? null : {
|
|
266
289
|
defaultValue: data
|
|
267
290
|
};
|
|
@@ -365,6 +388,13 @@ export var ShareDialogWithTriggerInternal = /*#__PURE__*/function (_React$PureCo
|
|
|
365
388
|
isUsingSplitButton: false
|
|
366
389
|
});
|
|
367
390
|
});
|
|
391
|
+
_defineProperty(_assertThisInitialized(_this), "handleOnUserSelectionChange", function (value) {
|
|
392
|
+
var onUserSelectionChange = _this.props.onUserSelectionChange;
|
|
393
|
+
_this.setState({
|
|
394
|
+
shareError: undefined
|
|
395
|
+
});
|
|
396
|
+
onUserSelectionChange === null || onUserSelectionChange === void 0 ? void 0 : onUserSelectionChange(value);
|
|
397
|
+
});
|
|
368
398
|
return _this;
|
|
369
399
|
}
|
|
370
400
|
_createClass(ShareDialogWithTriggerInternal, [{
|
|
@@ -381,6 +411,48 @@ export var ShareDialogWithTriggerInternal = /*#__PURE__*/function (_React$PureCo
|
|
|
381
411
|
this.handleDialogOpen();
|
|
382
412
|
}
|
|
383
413
|
}
|
|
414
|
+
}, {
|
|
415
|
+
key: "generateShareError",
|
|
416
|
+
value: function () {
|
|
417
|
+
var _generateShareError = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(err) {
|
|
418
|
+
var _errorBody$messagesDe;
|
|
419
|
+
var errorBody, firstErrorFromBody;
|
|
420
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
421
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
422
|
+
case 0:
|
|
423
|
+
if (!err.body) {
|
|
424
|
+
_context2.next = 6;
|
|
425
|
+
break;
|
|
426
|
+
}
|
|
427
|
+
_context2.next = 3;
|
|
428
|
+
return err.body;
|
|
429
|
+
case 3:
|
|
430
|
+
_context2.t0 = _context2.sent;
|
|
431
|
+
_context2.next = 7;
|
|
432
|
+
break;
|
|
433
|
+
case 6:
|
|
434
|
+
_context2.t0 = {};
|
|
435
|
+
case 7:
|
|
436
|
+
errorBody = _context2.t0;
|
|
437
|
+
// We'll only try and deal with the first error, sorry
|
|
438
|
+
firstErrorFromBody = (_errorBody$messagesDe = errorBody.messagesDetails) === null || _errorBody$messagesDe === void 0 ? void 0 : _errorBody$messagesDe[0];
|
|
439
|
+
return _context2.abrupt("return", {
|
|
440
|
+
message: (firstErrorFromBody === null || firstErrorFromBody === void 0 ? void 0 : firstErrorFromBody.message) || err.message,
|
|
441
|
+
errorCode: firstErrorFromBody === null || firstErrorFromBody === void 0 ? void 0 : firstErrorFromBody.errorCode,
|
|
442
|
+
helpUrl: firstErrorFromBody === null || firstErrorFromBody === void 0 ? void 0 : firstErrorFromBody.helpUrl,
|
|
443
|
+
retryable: (firstErrorFromBody === null || firstErrorFromBody === void 0 ? void 0 : firstErrorFromBody.errorCode) === undefined
|
|
444
|
+
});
|
|
445
|
+
case 10:
|
|
446
|
+
case "end":
|
|
447
|
+
return _context2.stop();
|
|
448
|
+
}
|
|
449
|
+
}, _callee2);
|
|
450
|
+
}));
|
|
451
|
+
function generateShareError(_x2) {
|
|
452
|
+
return _generateShareError.apply(this, arguments);
|
|
453
|
+
}
|
|
454
|
+
return generateShareError;
|
|
455
|
+
}()
|
|
384
456
|
}, {
|
|
385
457
|
key: "render",
|
|
386
458
|
value: function render() {
|
|
@@ -409,7 +481,6 @@ export var ShareDialogWithTriggerInternal = /*#__PURE__*/function (_React$PureCo
|
|
|
409
481
|
cloudId = _this$props7.cloudId,
|
|
410
482
|
orgId = _this$props7.orgId,
|
|
411
483
|
shareFieldsFooter = _this$props7.shareFieldsFooter,
|
|
412
|
-
onUserSelectionChange = _this$props7.onUserSelectionChange,
|
|
413
484
|
dialogZIndex = _this$props7.dialogZIndex,
|
|
414
485
|
isPublicLink = _this$props7.isPublicLink,
|
|
415
486
|
tabIndex = _this$props7.tabIndex,
|
|
@@ -455,7 +526,7 @@ export var ShareDialogWithTriggerInternal = /*#__PURE__*/function (_React$PureCo
|
|
|
455
526
|
loggedInAccountId: loggedInAccountId,
|
|
456
527
|
cloudId: cloudId,
|
|
457
528
|
orgId: orgId,
|
|
458
|
-
onUserSelectionChange:
|
|
529
|
+
onUserSelectionChange: _this2.handleOnUserSelectionChange,
|
|
459
530
|
shareFieldsFooter: shareFieldsFooter,
|
|
460
531
|
isPublicLink: isPublicLink,
|
|
461
532
|
copyTooltipText: copyTooltipText,
|