@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.
Files changed (60) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/clients/ShareServiceClient.js +24 -15
  3. package/dist/cjs/components/LazyShareForm/LazyShareForm.js +3 -1
  4. package/dist/cjs/components/ShareDialogWithTrigger.js +84 -13
  5. package/dist/cjs/components/ShareForm.js +11 -7
  6. package/dist/cjs/components/ShareFormWrapper/styled.js +2 -3
  7. package/dist/cjs/components/ShareHeader.js +1 -2
  8. package/dist/cjs/components/UserPickerField.js +14 -7
  9. package/dist/cjs/components/analytics/analytics.js +1 -1
  10. package/dist/cjs/i18n/da.js +1 -1
  11. package/dist/cjs/i18n/en_ZZ.js +5 -1
  12. package/dist/cjs/i18n/es.js +1 -1
  13. package/dist/cjs/i18n/nl.js +1 -1
  14. package/dist/cjs/i18n/pt_BR.js +1 -1
  15. package/dist/cjs/i18n/tr.js +1 -1
  16. package/dist/cjs/i18n/uk.js +1 -1
  17. package/dist/cjs/version.json +1 -1
  18. package/dist/es2019/clients/ShareServiceClient.js +24 -15
  19. package/dist/es2019/components/LazyShareForm/LazyShareForm.js +2 -1
  20. package/dist/es2019/components/ShareDialogWithTrigger.js +29 -6
  21. package/dist/es2019/components/ShareForm.js +11 -7
  22. package/dist/es2019/components/ShareFormWrapper/styled.js +2 -3
  23. package/dist/es2019/components/ShareHeader.js +3 -4
  24. package/dist/es2019/components/UserPickerField.js +14 -7
  25. package/dist/es2019/components/analytics/analytics.js +1 -1
  26. package/dist/es2019/i18n/da.js +1 -1
  27. package/dist/es2019/i18n/en_ZZ.js +5 -1
  28. package/dist/es2019/i18n/es.js +1 -1
  29. package/dist/es2019/i18n/nl.js +1 -1
  30. package/dist/es2019/i18n/pt_BR.js +1 -1
  31. package/dist/es2019/i18n/tr.js +1 -1
  32. package/dist/es2019/i18n/uk.js +1 -1
  33. package/dist/es2019/version.json +1 -1
  34. package/dist/esm/clients/ShareServiceClient.js +24 -15
  35. package/dist/esm/components/LazyShareForm/LazyShareForm.js +2 -1
  36. package/dist/esm/components/ShareDialogWithTrigger.js +84 -13
  37. package/dist/esm/components/ShareForm.js +11 -7
  38. package/dist/esm/components/ShareFormWrapper/styled.js +2 -3
  39. package/dist/esm/components/ShareHeader.js +1 -2
  40. package/dist/esm/components/UserPickerField.js +14 -7
  41. package/dist/esm/components/analytics/analytics.js +1 -1
  42. package/dist/esm/i18n/da.js +1 -1
  43. package/dist/esm/i18n/en_ZZ.js +5 -1
  44. package/dist/esm/i18n/es.js +1 -1
  45. package/dist/esm/i18n/nl.js +1 -1
  46. package/dist/esm/i18n/pt_BR.js +1 -1
  47. package/dist/esm/i18n/tr.js +1 -1
  48. package/dist/esm/i18n/uk.js +1 -1
  49. package/dist/esm/version.json +1 -1
  50. package/dist/types/components/ShareDialogWithTrigger.d.ts +3 -0
  51. package/dist/types/components/UserPickerField.d.ts +3 -2
  52. package/dist/types/i18n/en_ZZ.d.ts +3 -0
  53. package/dist/types/types/ShareContentState.d.ts +3 -0
  54. package/dist/types-ts4.5/components/ShareDialogWithTrigger.d.ts +3 -0
  55. package/dist/types-ts4.5/components/UserPickerField.d.ts +3 -2
  56. package/dist/types-ts4.5/i18n/en_ZZ.d.ts +3 -0
  57. package/dist/types-ts4.5/types/ShareContentState.d.ts +3 -0
  58. package/package.json +8 -6
  59. package/report.api.md +3 -0
  60. package/tmp/api-report-tmp.d.ts +3 -0
@@ -22,7 +22,6 @@ import Form from '@atlaskit/form';
22
22
  import ErrorIcon from '@atlaskit/icon/glyph/error';
23
23
  import Tabs, { Tab, TabList, TabPanel } from '@atlaskit/tabs';
24
24
  import { R400 } from '@atlaskit/theme/colors';
25
- import { gridSize } from '@atlaskit/theme/constants';
26
25
  import Tooltip from '@atlaskit/tooltip';
27
26
  import { messages } from '../i18n';
28
27
  import { TabType } from '../types';
@@ -34,7 +33,7 @@ import { ShareHeader } from './ShareHeader';
34
33
  import { UserPickerField } from './UserPickerField';
35
34
  var submitButtonWrapperStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n margin-left: auto;\n"])));
36
35
  var centerAlignedIconWrapperStyles = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n display: flex;\n align-self: center;\n padding: 0 10px;\n\n > div {\n line-height: 1;\n }\n"])));
37
- export var formWrapperStyles = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n margin-top: ", "px;\n width: 100%;\n\n /* jira has a class override font settings on h1 in gh-custom-field-pickers.css */\n #ghx-modes-tools #ghx-share & h1:first-child {\n margin-top: 0;\n }\n"])), gridSize());
36
+ export var formWrapperStyles = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n margin-top: ", ";\n width: 100%;\n\n /* jira has a class override font settings on h1 in gh-custom-field-pickers.css */\n #ghx-modes-tools #ghx-share & h1:first-child {\n margin-top: 0;\n }\n"])), "var(--ds-space-100, 8px)");
38
37
  export var formFooterStyles = css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: flex-start;\n"])));
39
38
  var formFieldStyles = css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n margin-bottom: 12px;\n"])));
40
39
  var integrationWrapperStyles = css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n"])));
@@ -86,7 +85,8 @@ var InternalForm = /*#__PURE__*/function (_React$PureComponent) {
86
85
  helperMessage = _this$props.helperMessage,
87
86
  orgId = _this$props.orgId,
88
87
  isBrowseUsersDisabled = _this$props.isBrowseUsersDisabled,
89
- formatMessage = _this$props.intl.formatMessage;
88
+ formatMessage = _this$props.intl.formatMessage,
89
+ shareError = _this$props.shareError;
90
90
  return jsx(AnalyticsContext, {
91
91
  data: {
92
92
  source: ANALYTICS_SOURCE
@@ -110,7 +110,8 @@ var InternalForm = /*#__PURE__*/function (_React$PureComponent) {
110
110
  isPublicLink: isPublicLink,
111
111
  helperMessage: helperMessage,
112
112
  orgId: orgId,
113
- isBrowseUsersDisabled: isBrowseUsersDisabled
113
+ isBrowseUsersDisabled: isBrowseUsersDisabled,
114
+ shareError: shareError
114
115
  })), jsx("div", {
115
116
  css: formFieldStyles
116
117
  }, jsx(CommentField, {
@@ -136,13 +137,16 @@ var InternalForm = /*#__PURE__*/function (_React$PureComponent) {
136
137
  isDisabled = _this$props2.isDisabled,
137
138
  isPublicLink = _this$props2.isPublicLink,
138
139
  integrationMode = _this$props2.integrationMode;
139
- var shouldShowWarning = shareError && !isSharing;
140
+ var isRetryableError = !!(shareError !== null && shareError !== void 0 && shareError.retryable);
141
+ var isNonRetryableError = shareError && !shareError.retryable;
142
+ var shouldShowWarning = isRetryableError && !isSharing;
140
143
  var buttonAppearance = !shouldShowWarning ? 'primary' : 'warning';
141
144
  var tabMode = integrationMode === 'tabs';
142
145
  var formPublicLabel = tabMode ? messages.formSharePublic : messages.formSendPublic;
143
146
  var formSendLabel = messages.formShare;
144
147
  var sendLabel = isPublicLink ? formPublicLabel : formSendLabel;
145
- var buttonLabel = shareError ? messages.formRetry : sendLabel;
148
+ var buttonLabel = isRetryableError ? messages.formRetry : sendLabel;
149
+ var buttonDisabled = isDisabled || isNonRetryableError;
146
150
  var ButtonLabelWrapper = buttonAppearance === 'warning' ? 'strong' : React.Fragment;
147
151
  return jsx("div", {
148
152
  css: submitButtonWrapperStyles
@@ -158,7 +162,7 @@ var InternalForm = /*#__PURE__*/function (_React$PureComponent) {
158
162
  appearance: buttonAppearance,
159
163
  type: "submit",
160
164
  isLoading: isSharing,
161
- isDisabled: isDisabled
165
+ isDisabled: buttonDisabled
162
166
  }, jsx(ButtonLabelWrapper, null, submitButtonLabel || jsx(FormattedMessage, buttonLabel))));
163
167
  });
164
168
  _defineProperty(_assertThisInitialized(_this), "renderMainTabTitle", function () {
@@ -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 var InlineDialogFormWrapper = function InlineDialogFormWrapper(_ref) {
7
6
  var children = _ref.children;
8
7
  return jsx("div", {
9
8
  css: {
10
- width: "".concat(gridSize() * 44, "px")
9
+ width: "".concat(8 * 44, "px")
11
10
  }
12
11
  }, children);
13
12
  };
@@ -22,7 +21,7 @@ export var InlineDialogContentWrapper = function InlineDialogContentWrapper(_ref
22
21
  var children = _ref2.children;
23
22
  return jsx("div", {
24
23
  css: {
25
- padding: "".concat(gridSize() * 2, "px ").concat(gridSize() * 3, "px")
24
+ padding: "var(--ds-space-200, 16px)".concat(" ", "var(--ds-space-300, 24px)")
26
25
  }
27
26
  }, children);
28
27
  };
@@ -4,12 +4,11 @@ var _templateObject, _templateObject2;
4
4
  import React from 'react';
5
5
  import { css, jsx, useTheme } from '@emotion/react';
6
6
  import { FormattedMessage } from 'react-intl-next';
7
- import { gridSize } from '@atlaskit/theme/constants';
8
7
  import { h500 } from '@atlaskit/theme/typography';
9
8
  import { messages } from '../i18n';
10
9
  var headerWrapperStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n"])));
11
10
  export var getFormHeaderTitleStyles = function getFormHeaderTitleStyles(theme) {
12
- return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n ", "\n line-height: ", "px;\n margin-right: ", "px;\n margin-top: ", "px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n > span {\n font-size: initial;\n }\n"])), h500(theme), gridSize() * 4, gridSize() * 4, gridSize() * 4);
11
+ return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n ", "\n line-height: ", ";\n margin-right: ", ";\n margin-top: ", ";\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n > span {\n font-size: initial;\n }\n"])), h500(theme), "var(--ds-font-lineHeight-500, 32px)", "var(--ds-space-400, 32px)", "var(--ds-space-400, 32px)");
13
12
  };
14
13
  export var ShareHeader = function ShareHeader(_ref) {
15
14
  var title = _ref.title;
@@ -92,7 +92,7 @@ export var UserPickerFieldComponent = /*#__PURE__*/function (_React$Component) {
92
92
  return [];
93
93
  }
94
94
  });
95
- _defineProperty(_assertThisInitialized(_this), "getInviteWarningMessage", function () {
95
+ _defineProperty(_assertThisInitialized(_this), "getHelperMessageOrDefault", function () {
96
96
  var _this$props = _this.props,
97
97
  product = _this$props.product,
98
98
  isPublicLink = _this$props.isPublicLink,
@@ -131,7 +131,8 @@ export var UserPickerFieldComponent = /*#__PURE__*/function (_React$Component) {
131
131
  selectPortalRef = _this$props2.selectPortalRef,
132
132
  isPublicLink = _this$props2.isPublicLink,
133
133
  orgId = _this$props2.orgId,
134
- isBrowseUsersDisabled = _this$props2.isBrowseUsersDisabled;
134
+ isBrowseUsersDisabled = _this$props2.isBrowseUsersDisabled,
135
+ shareError = _this$props2.shareError;
135
136
  var smartUserPickerProps = enableSmartUserPicker && !isBrowseUsersDisabled ? {
136
137
  productKey: product,
137
138
  principalId: loggedInAccountId,
@@ -165,13 +166,19 @@ export var UserPickerFieldComponent = /*#__PURE__*/function (_React$Component) {
165
166
  transform: this.handleUserPickerTransform
166
167
  }, function (_ref2) {
167
168
  var fieldProps = _ref2.fieldProps,
168
- error = _ref2.error,
169
- valid = _ref2.meta.valid;
170
- var inviteWarningMessage = _this2.getInviteWarningMessage();
169
+ fieldValidationError = _ref2.error,
170
+ fieldValid = _ref2.meta.valid;
171
+ var helperMessage = _this2.getHelperMessageOrDefault();
172
+ var addMoreMessage = shareError !== null && shareError !== void 0 && shareError.errorCode ? null : intl.formatMessage(messages.userPickerAddMoreMessage);
173
+ var wasValidationOrShareError = !!fieldValidationError || !!shareError;
171
174
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(UserPickerComponent, _extends({}, fieldProps, commonPickerProps, smartUserPickerProps, {
172
- addMoreMessage: intl.formatMessage(messages.userPickerAddMoreMessage),
175
+ addMoreMessage: addMoreMessage,
173
176
  menuPortalTarget: menuPortalTarget
174
- })), inviteWarningMessage && /*#__PURE__*/React.createElement(HelperMessage, null, inviteWarningMessage), !valid && error === REQUIRED && /*#__PURE__*/React.createElement(ErrorMessage, null, /*#__PURE__*/React.createElement(FormattedMessage, requiredMessage)));
177
+ })), 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", {
178
+ target: "_blank",
179
+ href: shareError.helpUrl,
180
+ rel: "help"
181
+ }, "Learn why")));
175
182
  });
176
183
  }
177
184
  }]);
@@ -6,7 +6,7 @@ var buildAttributes = function buildAttributes() {
6
6
  var attributes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
7
  return _objectSpread({
8
8
  packageName: "@atlaskit/share",
9
- packageVersion: "4.2.2"
9
+ packageVersion: "4.3.0"
10
10
  }, attributes);
11
11
  };
12
12
  var createEvent = function createEvent(eventType, source, action, actionSubject, actionSubjectId) {
@@ -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 {Pullanmodning 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}}',
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, blogpost {⁣⁢Blog post shared⁡‌‍⁡⁠⁠⁡⁠⁡⁠⁣⁤} board {⁣⁢Board shared‍⁡‍؜⁠⁠‌⁣⁤} calendar {⁣⁢Calendar shared‌⁡⁠⁡⁡‍؜⁠⁠⁣⁤} draft {⁣⁢Draft shared⁠‌‍⁠‍‍‍؜‍⁠؜⁣⁤} filter {⁣⁢Filter shared‍؜؜‍؜⁡‍⁣⁤} issue {⁣⁢Issue 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‌‌‍‌‍⁡⁣⁤}}',
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⁡‍‍⁠؜⁡‌⁠؜؜؜؜⁣⁤',
@@ -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 {Recursos multimedia 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}}',
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',
@@ -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-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}}',
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 {Pull request 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}}',
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',
@@ -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ı paylaşıldı}}',
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',
@@ -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 {Надано доступ до допису в блозі}board {Надано доступ до дошки}calendar {Надано доступ до календаря}draft {Надано доступ до чернетки}filter {Надано доступ до фільтра}issue {Надано доступ до завдання}summary {Надано доступ до підсумку}list {Надано доступ до списку}timeline {Надано доступ до шкали}form {Надано доступ до форми}media {Надано доступ до медіафайлу}page {Надано доступ до сторінки}project {Надано доступ до проєкту}pullrequest {Надано доступ до запиту на внесення змін}question {Надано доступ до запитання}report {Надано доступ до звіту}repository {Надано доступ до репозиторію}request {Надано доступ до запиту}roadmap {Надано доступ до плану розробки}site {Надано доступ до сайту}space {Надано доступ до розділу}other {Надано доступ до посилання}}',
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': 'Запросити',
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "@atlaskit/share",
3
- "version": "4.2.2"
3
+ "version": "4.3.0"
4
4
  }
@@ -4,6 +4,7 @@ import { jsx } from '@emotion/react';
4
4
  import { WrappedComponentProps } from 'react-intl-next';
5
5
  import { WithAnalyticsEventsProps } from '@atlaskit/analytics-next';
6
6
  import { TriggerProps } from '@atlaskit/popup';
7
+ import { Value } from '@atlaskit/user-picker';
7
8
  import { Integration, ShareData, ShareDialogWithTriggerProps, ShareDialogWithTriggerStates } from '../types';
8
9
  export declare const defaultShareContentState: ShareData;
9
10
  type ShareDialogWithTriggerInternalProps = ShareDialogWithTriggerProps & WrappedComponentProps & WithAnalyticsEventsProps;
@@ -30,6 +31,7 @@ export declare class ShareDialogWithTriggerInternal extends React.PureComponent<
30
31
  private handleDialogOpen;
31
32
  private onTriggerClick;
32
33
  private handleCloseDialog;
34
+ private generateShareError;
33
35
  private handleShareSubmit;
34
36
  private handleFormDismiss;
35
37
  handleCopyLink: () => void;
@@ -37,6 +39,7 @@ export declare class ShareDialogWithTriggerInternal extends React.PureComponent<
37
39
  renderShareTriggerButton: (triggerProps: TriggerProps) => React.ReactNode;
38
40
  handleOpenSplitButton: () => void;
39
41
  handleCloseSplitButton: () => void;
42
+ handleOnUserSelectionChange: (value: Value) => void;
40
43
  render(): jsx.JSX.Element;
41
44
  }
42
45
  export declare const ShareDialogWithTrigger: React.ComponentType<ShareDialogWithTriggerProps>;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { WrappedComponentProps } from 'react-intl-next';
3
3
  import { LoadOptions, OptionData, Value } from '@atlaskit/smart-user-picker';
4
- import { ConfigResponse, ProductName } from '../types';
4
+ import { ConfigResponse, ProductName, ShareError } from '../types';
5
5
  export declare const REQUIRED = "REQUIRED";
6
6
  export type Props = {
7
7
  loadOptions?: LoadOptions;
@@ -19,10 +19,11 @@ export type Props = {
19
19
  helperMessage?: string;
20
20
  orgId?: string;
21
21
  isBrowseUsersDisabled?: boolean;
22
+ shareError?: ShareError;
22
23
  };
23
24
  export declare class UserPickerFieldComponent extends React.Component<WrappedComponentProps & Props> {
24
25
  private loadOptions;
25
- private getInviteWarningMessage;
26
+ private getHelperMessageOrDefault;
26
27
  private handleUserPickerTransform;
27
28
  render(): JSX.Element;
28
29
  }
@@ -13,6 +13,7 @@ declare const _default: {
13
13
  'fabric.elements.share.form.comment.placeholder': string;
14
14
  'fabric.elements.share.form.info.message.no.invite.confluence': string;
15
15
  'fabric.elements.share.form.info.message.no.invite.jira': string;
16
+ 'fabric.elements.share.form.no-permissions': string;
16
17
  'fabric.elements.share.form.public.send': string;
17
18
  'fabric.elements.share.form.public.share': string;
18
19
  'fabric.elements.share.form.retry': string;
@@ -22,11 +23,13 @@ declare const _default: {
22
23
  'fabric.elements.share.form.user-picker.add-more': string;
23
24
  'fabric.elements.share.form.user-picker.no-options.existingUserOnly': string;
24
25
  'fabric.elements.share.form.user-picker.no-options.generic': string;
26
+ 'fabric.elements.share.form.user-picker.placeholder.emailOnly': string;
25
27
  'fabric.elements.share.form.user-picker.placeholder.existingUserOnly': string;
26
28
  'fabric.elements.share.form.user-picker.placeholder.generic': string;
27
29
  'fabric.elements.share.form.user-picker.placeholder.jira': string;
28
30
  'fabric.elements.share.form.user-picker.placholder.generic.existingUserOnly': string;
29
31
  'fabric.elements.share.form.user-picker.validation.required': string;
32
+ 'fabric.elements.share.form.user-picker.validation.required.email-only': string;
30
33
  'fabric.elements.share.form.user-picker.validation.required.existingUserOnly': string;
31
34
  'fabric.elements.share.form.user-picker.validation.required.jira': string;
32
35
  'fabric.elements.share.form.user-picker.validation.required.jira.existingUserOnly': string;
@@ -7,6 +7,9 @@ export type ShareContentState = {
7
7
  };
8
8
  export type ShareError = {
9
9
  message: string;
10
+ errorCode?: string;
11
+ helpUrl?: string;
12
+ retryable: boolean;
10
13
  };
11
14
  export type ShareData = {
12
15
  users: OptionData[];
@@ -4,6 +4,7 @@ import { jsx } from '@emotion/react';
4
4
  import { WrappedComponentProps } from 'react-intl-next';
5
5
  import { WithAnalyticsEventsProps } from '@atlaskit/analytics-next';
6
6
  import { TriggerProps } from '@atlaskit/popup';
7
+ import { Value } from '@atlaskit/user-picker';
7
8
  import { Integration, ShareData, ShareDialogWithTriggerProps, ShareDialogWithTriggerStates } from '../types';
8
9
  export declare const defaultShareContentState: ShareData;
9
10
  type ShareDialogWithTriggerInternalProps = ShareDialogWithTriggerProps & WrappedComponentProps & WithAnalyticsEventsProps;
@@ -30,6 +31,7 @@ export declare class ShareDialogWithTriggerInternal extends React.PureComponent<
30
31
  private handleDialogOpen;
31
32
  private onTriggerClick;
32
33
  private handleCloseDialog;
34
+ private generateShareError;
33
35
  private handleShareSubmit;
34
36
  private handleFormDismiss;
35
37
  handleCopyLink: () => void;
@@ -37,6 +39,7 @@ export declare class ShareDialogWithTriggerInternal extends React.PureComponent<
37
39
  renderShareTriggerButton: (triggerProps: TriggerProps) => React.ReactNode;
38
40
  handleOpenSplitButton: () => void;
39
41
  handleCloseSplitButton: () => void;
42
+ handleOnUserSelectionChange: (value: Value) => void;
40
43
  render(): jsx.JSX.Element;
41
44
  }
42
45
  export declare const ShareDialogWithTrigger: React.ComponentType<ShareDialogWithTriggerProps>;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { WrappedComponentProps } from 'react-intl-next';
3
3
  import { LoadOptions, OptionData, Value } from '@atlaskit/smart-user-picker';
4
- import { ConfigResponse, ProductName } from '../types';
4
+ import { ConfigResponse, ProductName, ShareError } from '../types';
5
5
  export declare const REQUIRED = "REQUIRED";
6
6
  export type Props = {
7
7
  loadOptions?: LoadOptions;
@@ -19,10 +19,11 @@ export type Props = {
19
19
  helperMessage?: string;
20
20
  orgId?: string;
21
21
  isBrowseUsersDisabled?: boolean;
22
+ shareError?: ShareError;
22
23
  };
23
24
  export declare class UserPickerFieldComponent extends React.Component<WrappedComponentProps & Props> {
24
25
  private loadOptions;
25
- private getInviteWarningMessage;
26
+ private getHelperMessageOrDefault;
26
27
  private handleUserPickerTransform;
27
28
  render(): JSX.Element;
28
29
  }
@@ -13,6 +13,7 @@ declare const _default: {
13
13
  'fabric.elements.share.form.comment.placeholder': string;
14
14
  'fabric.elements.share.form.info.message.no.invite.confluence': string;
15
15
  'fabric.elements.share.form.info.message.no.invite.jira': string;
16
+ 'fabric.elements.share.form.no-permissions': string;
16
17
  'fabric.elements.share.form.public.send': string;
17
18
  'fabric.elements.share.form.public.share': string;
18
19
  'fabric.elements.share.form.retry': string;
@@ -22,11 +23,13 @@ declare const _default: {
22
23
  'fabric.elements.share.form.user-picker.add-more': string;
23
24
  'fabric.elements.share.form.user-picker.no-options.existingUserOnly': string;
24
25
  'fabric.elements.share.form.user-picker.no-options.generic': string;
26
+ 'fabric.elements.share.form.user-picker.placeholder.emailOnly': string;
25
27
  'fabric.elements.share.form.user-picker.placeholder.existingUserOnly': string;
26
28
  'fabric.elements.share.form.user-picker.placeholder.generic': string;
27
29
  'fabric.elements.share.form.user-picker.placeholder.jira': string;
28
30
  'fabric.elements.share.form.user-picker.placholder.generic.existingUserOnly': string;
29
31
  'fabric.elements.share.form.user-picker.validation.required': string;
32
+ 'fabric.elements.share.form.user-picker.validation.required.email-only': string;
30
33
  'fabric.elements.share.form.user-picker.validation.required.existingUserOnly': string;
31
34
  'fabric.elements.share.form.user-picker.validation.required.jira': string;
32
35
  'fabric.elements.share.form.user-picker.validation.required.jira.existingUserOnly': string;
@@ -7,6 +7,9 @@ export type ShareContentState = {
7
7
  };
8
8
  export type ShareError = {
9
9
  message: string;
10
+ errorCode?: string;
11
+ helpUrl?: string;
12
+ retryable: boolean;
10
13
  };
11
14
  export type ShareData = {
12
15
  users: OptionData[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/share",
3
- "version": "4.2.2",
3
+ "version": "4.3.0",
4
4
  "description": "Fabric Share Element",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -48,12 +48,12 @@
48
48
  "@atlaskit/smart-user-picker": "^6.1.0",
49
49
  "@atlaskit/spinner": "^15.5.0",
50
50
  "@atlaskit/tabs": "^13.4.0",
51
- "@atlaskit/textarea": "^4.6.0",
51
+ "@atlaskit/textarea": "^4.7.0",
52
52
  "@atlaskit/theme": "^12.5.0",
53
- "@atlaskit/tokens": "^1.4.0",
53
+ "@atlaskit/tokens": "^1.5.0",
54
54
  "@atlaskit/tooltip": "^17.8.0",
55
55
  "@atlaskit/ufo": "^0.2.0",
56
- "@atlaskit/user-picker": "^10.2.0",
56
+ "@atlaskit/user-picker": "^10.3.0",
57
57
  "@atlaskit/util-service-support": "^6.2.0",
58
58
  "@babel/runtime": "^7.0.0",
59
59
  "@emotion/react": "^11.7.1",
@@ -69,13 +69,15 @@
69
69
  },
70
70
  "devDependencies": {
71
71
  "@atlaskit/docs": "^9.1.0",
72
- "@atlaskit/editor-test-helpers": "^18.3.0",
72
+ "@atlaskit/editor-test-helpers": "^18.6.0",
73
73
  "@atlaskit/flag": "^15.2.0",
74
74
  "@atlaskit/section-message": "^6.4.0",
75
- "@atlaskit/select": "^16.2.0",
75
+ "@atlaskit/select": "^16.5.0",
76
76
  "@atlaskit/toggle": "^12.6.0",
77
77
  "@atlaskit/util-data-test": "^17.8.0",
78
78
  "@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",
79
+ "@testing-library/react": "^12.1.5",
80
+ "@testing-library/user-event": "^14.4.3",
79
81
  "enzyme": "^3.10.0",
80
82
  "enzyme-adapter-react-16": "^1.15.1",
81
83
  "enzyme-react-intl": "^2.0.6",
package/report.api.md CHANGED
@@ -347,6 +347,9 @@ export type ShareDialogContainerProps = {
347
347
  // @public (undocumented)
348
348
  export type ShareError = {
349
349
  message: string;
350
+ errorCode?: string;
351
+ helpUrl?: string;
352
+ retryable: boolean;
350
353
  };
351
354
 
352
355
  // @public (undocumented)
@@ -247,6 +247,9 @@ export type ShareDialogContainerProps = {
247
247
  // @public (undocumented)
248
248
  export type ShareError = {
249
249
  message: string;
250
+ errorCode?: string;
251
+ helpUrl?: string;
252
+ retryable: boolean;
250
253
  };
251
254
 
252
255
  // @public (undocumented)