@atlaskit/share 0.33.0 → 0.34.3

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 (39) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/cjs/clients/ShareServiceClient.js +1 -1
  3. package/dist/cjs/components/CopyLinkButton.js +1 -1
  4. package/dist/cjs/components/ShareDialogContainer.js +3 -3
  5. package/dist/cjs/components/ShareDialogWithTrigger.js +13 -8
  6. package/dist/cjs/components/ShareForm.js +124 -62
  7. package/dist/cjs/components/ShareHeader.js +2 -3
  8. package/dist/cjs/components/SplitButton.js +32 -19
  9. package/dist/cjs/components/analytics.js +1 -1
  10. package/dist/cjs/components/localStorageUtils.js +1 -1
  11. package/dist/cjs/components/styles.js +1 -1
  12. package/dist/cjs/components/utils.js +1 -1
  13. package/dist/cjs/i18n/index.js +42 -42
  14. package/dist/cjs/i18n.js +5 -0
  15. package/dist/cjs/index.js +8 -8
  16. package/dist/cjs/types/Flag.js +1 -1
  17. package/dist/cjs/version.json +1 -1
  18. package/dist/es2019/components/ShareDialogContainer.js +2 -2
  19. package/dist/es2019/components/ShareDialogWithTrigger.js +11 -7
  20. package/dist/es2019/components/ShareForm.js +103 -47
  21. package/dist/es2019/components/ShareHeader.js +2 -3
  22. package/dist/es2019/components/SplitButton.js +16 -8
  23. package/dist/es2019/i18n.js +5 -0
  24. package/dist/es2019/version.json +1 -1
  25. package/dist/esm/components/ShareDialogContainer.js +2 -2
  26. package/dist/esm/components/ShareDialogWithTrigger.js +12 -7
  27. package/dist/esm/components/ShareForm.js +113 -60
  28. package/dist/esm/components/ShareHeader.js +2 -3
  29. package/dist/esm/components/SplitButton.js +30 -19
  30. package/dist/esm/i18n.js +5 -0
  31. package/dist/esm/version.json +1 -1
  32. package/dist/types/components/ShareDialogContainer.d.ts +3 -3
  33. package/dist/types/components/ShareDialogWithTrigger.d.ts +3 -2
  34. package/dist/types/components/ShareForm.d.ts +9 -3
  35. package/dist/types/components/ShareHeader.d.ts +0 -1
  36. package/dist/types/i18n.d.ts +5 -0
  37. package/dist/types/types/ShareDialogWithTrigger.d.ts +1 -0
  38. package/dist/types/types/ShareEntities.d.ts +1 -0
  39. package/package.json +5 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # @atlaskit/share
2
2
 
3
+ ## 0.34.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [`d506d312f89`](https://bitbucket.org/atlassian/atlassian-frontend/commits/d506d312f89) - Updating ts Type to be string restricted for easier use. Tests updated to accommodate.
8
+
9
+ ## 0.34.2
10
+
11
+ ### Patch Changes
12
+
13
+ - [`89aa3e3f314`](https://bitbucket.org/atlassian/atlassian-frontend/commits/89aa3e3f314) - Update dependency of dropdown menu to the lite mode version. Update all usages to cater to the new API. The padding within dropdown menu items is 8px more, which makes the menu look bigger.
14
+ - [`12bfc09a21e`](https://bitbucket.org/atlassian/atlassian-frontend/commits/12bfc09a21e) - Fixing internal prop calls for testId and removing references to the old DropdownMenuStateless export when using the new default export.
15
+ - Updated dependencies
16
+
17
+ ## 0.34.1
18
+
19
+ ### Patch Changes
20
+
21
+ - [`00ded488f98`](https://bitbucket.org/atlassian/atlassian-frontend/commits/00ded488f98) - Update existing isDisabled prop to be used in renderCustomTriggerButton component callback
22
+
23
+ ## 0.34.0
24
+
25
+ ### Minor Changes
26
+
27
+ - [`e0a9c170e0f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e0a9c170e0f) - [ux] Share now supports tabs for integrations
28
+
3
29
  ## 0.33.0
4
30
 
5
31
  ### Minor Changes
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.ShareServiceClient = exports.DEFAULT_SHARE_SERVICE_URL = exports.SHARE_CONFIG_PATH = exports.DEFAULT_SHARE_PATH = void 0;
8
+ exports.ShareServiceClient = exports.SHARE_CONFIG_PATH = exports.DEFAULT_SHARE_SERVICE_URL = exports.DEFAULT_SHARE_PATH = void 0;
9
9
 
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
@@ -7,7 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.default = exports.CopyLinkButton = exports.HiddenInput = exports.MessageContainer = exports.AUTO_DISMISS_MS = void 0;
10
+ exports.default = exports.MessageContainer = exports.HiddenInput = exports.CopyLinkButton = exports.AUTO_DISMISS_MS = void 0;
11
11
 
12
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
13
 
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.ShareDialogContainer = exports.ShareDialogContainerInternal = exports.defaultConfig = void 0;
8
+ exports.defaultConfig = exports.ShareDialogContainerInternal = exports.ShareDialogContainer = void 0;
9
9
 
10
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
11
 
@@ -403,7 +403,6 @@ var ShareDialogContainerInternal = /*#__PURE__*/function (_React$Component) {
403
403
  shareContentType = _this$props2.shareContentType,
404
404
  shareFormTitle = _this$props2.shareFormTitle,
405
405
  shareFormHelperMessage = _this$props2.shareFormHelperMessage,
406
- contentPermissions = _this$props2.contentPermissions,
407
406
  shouldCloseOnEscapePress = _this$props2.shouldCloseOnEscapePress,
408
407
  showFlags = _this$props2.showFlags,
409
408
  enableSmartUserPicker = _this$props2.enableSmartUserPicker,
@@ -422,6 +421,7 @@ var ShareDialogContainerInternal = /*#__PURE__*/function (_React$Component) {
422
421
  shareFieldsFooter = _this$props2.shareFieldsFooter,
423
422
  isCopyDisabled = _this$props2.isCopyDisabled,
424
423
  isPublicLink = _this$props2.isPublicLink,
424
+ integrationMode = _this$props2.integrationMode,
425
425
  shareIntegrations = _this$props2.shareIntegrations,
426
426
  shareAri = _this$props2.shareAri,
427
427
  tabIndex = _this$props2.tabIndex,
@@ -445,7 +445,6 @@ var ShareDialogContainerInternal = /*#__PURE__*/function (_React$Component) {
445
445
  shareContentType: shareContentType,
446
446
  shareFormTitle: shareFormTitle,
447
447
  shareFormHelperMessage: shareFormHelperMessage,
448
- contentPermissions: contentPermissions,
449
448
  copyLinkOrigin: this.getCopyLinkOriginTracing(),
450
449
  formShareOrigin: this.getFormShareOriginTracing(),
451
450
  shouldCloseOnEscapePress: shouldCloseOnEscapePress,
@@ -466,6 +465,7 @@ var ShareDialogContainerInternal = /*#__PURE__*/function (_React$Component) {
466
465
  shareFieldsFooter: shareFieldsFooter,
467
466
  isCopyDisabled: isCopyDisabled,
468
467
  isPublicLink: isPublicLink,
468
+ integrationMode: integrationMode,
469
469
  shareIntegrations: shareIntegrations,
470
470
  shareAri: shareAri,
471
471
  tabIndex: tabIndex,
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.ShareDialogWithTrigger = exports.ShareDialogWithTriggerInternal = exports.defaultShareContentState = void 0;
8
+ exports.defaultShareContentState = exports.ShareDialogWithTriggerInternal = exports.ShareDialogWithTrigger = void 0;
9
9
 
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
 
@@ -326,6 +326,7 @@ var ShareDialogWithTriggerInternal = /*#__PURE__*/function (_React$PureComponent
326
326
  triggerButtonTooltipPosition = _this$props6.triggerButtonTooltipPosition,
327
327
  triggerButtonAppearance = _this$props6.triggerButtonAppearance,
328
328
  triggerButtonStyle = _this$props6.triggerButtonStyle,
329
+ integrationMode = _this$props6.integrationMode,
329
330
  shareIntegrations = _this$props6.shareIntegrations,
330
331
  dialogZIndex = _this$props6.dialogZIndex,
331
332
  dialogPlacement = _this$props6.dialogPlacement;
@@ -336,6 +337,7 @@ var ShareDialogWithTriggerInternal = /*#__PURE__*/function (_React$PureComponent
336
337
  var shareError = _this.state.shareError;
337
338
  button = renderCustomTriggerButton({
338
339
  error: shareError,
340
+ isDisabled: isDisabled,
339
341
  isSelected: isDialogOpen,
340
342
  onClick: _this.onTriggerClick
341
343
  }, triggerProps);
@@ -362,7 +364,7 @@ var ShareDialogWithTriggerInternal = /*#__PURE__*/function (_React$PureComponent
362
364
  } // If there are any integrations, wrap the share button in a split button with integrations.
363
365
 
364
366
 
365
- if (shareIntegrations !== null && shareIntegrations !== void 0 && shareIntegrations.length) {
367
+ if (integrationMode === 'split' && shareIntegrations !== null && shareIntegrations !== void 0 && shareIntegrations.length) {
366
368
  button = /*#__PURE__*/_react.default.createElement(_SplitButton.default, {
367
369
  shareButton: button,
368
370
  handleOpenSplitButton: _this.handleOpenSplitButton,
@@ -380,10 +382,10 @@ var ShareDialogWithTriggerInternal = /*#__PURE__*/function (_React$PureComponent
380
382
  return button;
381
383
  });
382
384
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleOpenSplitButton", function () {
383
- _this.handleDialogOpen();
384
-
385
385
  _this.setState({
386
386
  isUsingSplitButton: true
387
+ }, function () {
388
+ return _this.handleCloseDialog();
387
389
  });
388
390
 
389
391
  _this.createAndFireEvent((0, _analytics.shareSplitButtonEvent)());
@@ -430,7 +432,6 @@ var ShareDialogWithTriggerInternal = /*#__PURE__*/function (_React$PureComponent
430
432
  loadUserOptions = _this$props7.loadUserOptions,
431
433
  shareFormTitle = _this$props7.shareFormTitle,
432
434
  shareFormHelperMessage = _this$props7.shareFormHelperMessage,
433
- contentPermissions = _this$props7.contentPermissions,
434
435
  bottomMessage = _this$props7.bottomMessage,
435
436
  submitButtonLabel = _this$props7.submitButtonLabel,
436
437
  product = _this$props7.product,
@@ -443,7 +444,9 @@ var ShareDialogWithTriggerInternal = /*#__PURE__*/function (_React$PureComponent
443
444
  dialogZIndex = _this$props7.dialogZIndex,
444
445
  isPublicLink = _this$props7.isPublicLink,
445
446
  tabIndex = _this$props7.tabIndex,
446
- copyTooltipText = _this$props7.copyTooltipText;
447
+ copyTooltipText = _this$props7.copyTooltipText,
448
+ integrationMode = _this$props7.integrationMode,
449
+ shareIntegrations = _this$props7.shareIntegrations;
447
450
  var style = typeof tabIndex !== 'undefined' && tabIndex >= 0 ? {
448
451
  outline: 'none'
449
452
  } : undefined; // for performance purposes, we may want to have a loadable content i.e. ShareForm
@@ -469,8 +472,8 @@ var ShareDialogWithTriggerInternal = /*#__PURE__*/function (_React$PureComponent
469
472
  isSharing: isSharing,
470
473
  onSubmit: _this2.handleShareSubmit,
471
474
  title: shareFormTitle,
475
+ showTitle: integrationMode !== 'tabs' || !shareIntegrations || !shareIntegrations.length,
472
476
  helperMessage: shareFormHelperMessage,
473
- contentPermissions: contentPermissions,
474
477
  shareError: shareError,
475
478
  onDismiss: _this2.handleFormDismiss,
476
479
  defaultValue: defaultValue,
@@ -486,7 +489,9 @@ var ShareDialogWithTriggerInternal = /*#__PURE__*/function (_React$PureComponent
486
489
  fieldsFooter: shareFieldsFooter,
487
490
  selectPortalRef: _this2.selectPortalRef,
488
491
  isPublicLink: isPublicLink,
489
- copyTooltipText: copyTooltipText
492
+ copyTooltipText: copyTooltipText,
493
+ integrationMode: integrationMode,
494
+ shareIntegrations: shareIntegrations
490
495
  })), bottomMessage ? /*#__PURE__*/_react.default.createElement(BottomMessageWrapper, null, bottomMessage) : null, customFooter && /*#__PURE__*/_react.default.createElement(CustomFooterWrapper, null, customFooter)));
491
496
  },
492
497
  isOpen: isDialogOpen,
@@ -2,12 +2,12 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
- exports.ShareForm = exports.FormFooter = exports.FormWrapper = void 0;
9
-
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ exports.ShareForm = exports.FormWrapper = exports.FormFooter = void 0;
11
11
 
12
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
13
 
@@ -23,6 +23,8 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
23
23
 
24
24
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
25
 
26
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
27
+
26
28
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
27
29
 
28
30
  var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
@@ -37,6 +39,8 @@ var _constants = require("@atlaskit/theme/constants");
37
39
 
38
40
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
39
41
 
42
+ var _tabs = _interopRequireWildcard(require("@atlaskit/tabs"));
43
+
40
44
  var _react = _interopRequireDefault(require("react"));
41
45
 
42
46
  var _reactIntl = require("react-intl");
@@ -53,7 +57,13 @@ var _ShareHeader = require("./ShareHeader");
53
57
 
54
58
  var _UserPickerField = require("./UserPickerField");
55
59
 
56
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
60
+ var _IntegrationForm = require("./IntegrationForm");
61
+
62
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
63
+
64
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
65
+
66
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
57
67
 
58
68
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
59
69
 
@@ -63,7 +73,9 @@ var SubmitButtonWrapper = _styledComponents.default.div(_templateObject || (_tem
63
73
 
64
74
  var CenterAlignedIconWrapper = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n align-self: center;\n padding: 0 10px;\n\n > div {\n line-height: 1;\n }\n"])));
65
75
 
66
- var FormWrapper = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\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"])));
76
+ var FormWrapper = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\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"])), function (props) {
77
+ return props.isMainShare ? (0, _constants.gridSize)() : (0, _constants.gridSize)() * 2;
78
+ });
67
79
 
68
80
  exports.FormWrapper = FormWrapper;
69
81
 
@@ -73,6 +85,18 @@ exports.FormFooter = FormFooter;
73
85
 
74
86
  var FormField = _styledComponents.default.div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n margin-bottom: 12px;\n"])));
75
87
 
88
+ var IntegrationWrapper = _styledComponents.default.div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n align-items: center;\n"])));
89
+
90
+ var IntegrationIconWrapper = _styledComponents.default.span(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n margin-right: 5px;\n"])));
91
+
92
+ var integrationTabText = function integrationTabText(integrationName) {
93
+ return /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, (0, _extends2.default)({}, _i18n.messages.shareInIntegrationButtonText, {
94
+ values: {
95
+ integrationName: integrationName
96
+ }
97
+ }));
98
+ };
99
+
76
100
  var InternalForm = /*#__PURE__*/function (_React$PureComponent) {
77
101
  (0, _inherits2.default)(InternalForm, _React$PureComponent);
78
102
 
@@ -88,14 +112,64 @@ var InternalForm = /*#__PURE__*/function (_React$PureComponent) {
88
112
  }
89
113
 
90
114
  _this = _super.call.apply(_super, [this].concat(args));
91
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderSubmitButton", function () {
115
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderShareForm", function () {
92
116
  var _this$props = _this.props,
93
- formatMessage = _this$props.intl.formatMessage,
94
- isSharing = _this$props.isSharing,
95
- shareError = _this$props.shareError,
96
- submitButtonLabel = _this$props.submitButtonLabel,
117
+ formProps = _this$props.formProps,
118
+ title = _this$props.title,
119
+ _this$props$showTitle = _this$props.showTitle,
120
+ showTitle = _this$props$showTitle === void 0 ? true : _this$props$showTitle,
121
+ loadOptions = _this$props.loadOptions,
122
+ onLinkCopy = _this$props.onLinkCopy,
123
+ copyLink = _this$props.copyLink,
124
+ defaultValue = _this$props.defaultValue,
125
+ config = _this$props.config,
126
+ isFetchingConfig = _this$props.isFetchingConfig,
127
+ product = _this$props.product,
128
+ onUserInputChange = _this$props.onUserInputChange,
129
+ enableSmartUserPicker = _this$props.enableSmartUserPicker,
130
+ loggedInAccountId = _this$props.loggedInAccountId,
131
+ cloudId = _this$props.cloudId,
132
+ onUserSelectionChange = _this$props.onUserSelectionChange,
133
+ fieldsFooter = _this$props.fieldsFooter,
134
+ selectPortalRef = _this$props.selectPortalRef,
97
135
  isDisabled = _this$props.isDisabled,
98
- isPublicLink = _this$props.isPublicLink;
136
+ isPublicLink = _this$props.isPublicLink,
137
+ copyTooltipText = _this$props.copyTooltipText,
138
+ helperMessage = _this$props.helperMessage;
139
+ return /*#__PURE__*/_react.default.createElement("form", formProps, showTitle && /*#__PURE__*/_react.default.createElement(_ShareHeader.ShareHeader, {
140
+ title: title
141
+ }), /*#__PURE__*/_react.default.createElement(FormField, null, /*#__PURE__*/_react.default.createElement(_UserPickerField.UserPickerField, {
142
+ onInputChange: onUserInputChange,
143
+ onChange: onUserSelectionChange,
144
+ loadOptions: loadOptions,
145
+ defaultValue: defaultValue && defaultValue.users,
146
+ config: config,
147
+ isLoading: isFetchingConfig,
148
+ product: product,
149
+ enableSmartUserPicker: enableSmartUserPicker,
150
+ loggedInAccountId: loggedInAccountId,
151
+ cloudId: cloudId,
152
+ selectPortalRef: selectPortalRef,
153
+ isPublicLink: isPublicLink,
154
+ helperMessage: helperMessage
155
+ })), /*#__PURE__*/_react.default.createElement(FormField, null, /*#__PURE__*/_react.default.createElement(_CommentField.CommentField, {
156
+ defaultValue: defaultValue && defaultValue.comment
157
+ })), fieldsFooter, /*#__PURE__*/_react.default.createElement(FormFooter, null, /*#__PURE__*/_react.default.createElement(_CopyLinkButton.default, {
158
+ isDisabled: isDisabled,
159
+ onLinkCopy: onLinkCopy,
160
+ link: copyLink,
161
+ isPublicLink: isPublicLink,
162
+ copyTooltipText: copyTooltipText
163
+ }), _this.renderSubmitButton()));
164
+ });
165
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderSubmitButton", function () {
166
+ var _this$props2 = _this.props,
167
+ formatMessage = _this$props2.intl.formatMessage,
168
+ isSharing = _this$props2.isSharing,
169
+ shareError = _this$props2.shareError,
170
+ submitButtonLabel = _this$props2.submitButtonLabel,
171
+ isDisabled = _this$props2.isDisabled,
172
+ isPublicLink = _this$props2.isPublicLink;
99
173
  var shouldShowWarning = shareError && !isSharing;
100
174
  var buttonAppearance = !shouldShowWarning ? 'primary' : 'warning';
101
175
  var sendLabel = isPublicLink ? _i18n.messages.formSendPublic : _i18n.messages.formSend;
@@ -120,9 +194,9 @@ var InternalForm = /*#__PURE__*/function (_React$PureComponent) {
120
194
  (0, _createClass2.default)(InternalForm, [{
121
195
  key: "componentWillUnmount",
122
196
  value: function componentWillUnmount() {
123
- var _this$props2 = this.props,
124
- onDismiss = _this$props2.onDismiss,
125
- getValues = _this$props2.getValues;
197
+ var _this$props3 = this.props,
198
+ onDismiss = _this$props3.onDismiss,
199
+ getValues = _this$props3.getValues;
126
200
 
127
201
  if (onDismiss) {
128
202
  onDismiss(getValues());
@@ -131,54 +205,42 @@ var InternalForm = /*#__PURE__*/function (_React$PureComponent) {
131
205
  }, {
132
206
  key: "render",
133
207
  value: function render() {
134
- var _this$props3 = this.props,
135
- formProps = _this$props3.formProps,
136
- title = _this$props3.title,
137
- contentPermissions = _this$props3.contentPermissions,
138
- loadOptions = _this$props3.loadOptions,
139
- onLinkCopy = _this$props3.onLinkCopy,
140
- copyLink = _this$props3.copyLink,
141
- defaultValue = _this$props3.defaultValue,
142
- config = _this$props3.config,
143
- isFetchingConfig = _this$props3.isFetchingConfig,
144
- product = _this$props3.product,
145
- onUserInputChange = _this$props3.onUserInputChange,
146
- enableSmartUserPicker = _this$props3.enableSmartUserPicker,
147
- loggedInAccountId = _this$props3.loggedInAccountId,
148
- cloudId = _this$props3.cloudId,
149
- onUserSelectionChange = _this$props3.onUserSelectionChange,
150
- fieldsFooter = _this$props3.fieldsFooter,
151
- selectPortalRef = _this$props3.selectPortalRef,
152
- isDisabled = _this$props3.isDisabled,
153
- isPublicLink = _this$props3.isPublicLink,
154
- copyTooltipText = _this$props3.copyTooltipText,
155
- helperMessage = _this$props3.helperMessage;
156
- return /*#__PURE__*/_react.default.createElement(FormWrapper, null, /*#__PURE__*/_react.default.createElement("form", formProps, /*#__PURE__*/_react.default.createElement(_ShareHeader.ShareHeader, {
157
- title: title,
158
- contentPermissions: contentPermissions
159
- }), /*#__PURE__*/_react.default.createElement(FormField, null, /*#__PURE__*/_react.default.createElement(_UserPickerField.UserPickerField, {
160
- onInputChange: onUserInputChange,
161
- onChange: onUserSelectionChange,
162
- loadOptions: loadOptions,
163
- defaultValue: defaultValue && defaultValue.users,
164
- config: config,
165
- isLoading: isFetchingConfig,
166
- product: product,
167
- helperMessage: helperMessage,
168
- enableSmartUserPicker: enableSmartUserPicker,
169
- loggedInAccountId: loggedInAccountId,
170
- cloudId: cloudId,
171
- selectPortalRef: selectPortalRef,
172
- isPublicLink: isPublicLink
173
- })), /*#__PURE__*/_react.default.createElement(FormField, null, /*#__PURE__*/_react.default.createElement(_CommentField.CommentField, {
174
- defaultValue: defaultValue && defaultValue.comment
175
- })), fieldsFooter, /*#__PURE__*/_react.default.createElement(FormFooter, null, /*#__PURE__*/_react.default.createElement(_CopyLinkButton.default, {
176
- isDisabled: isDisabled,
177
- onLinkCopy: onLinkCopy,
178
- link: copyLink,
179
- isPublicLink: isPublicLink,
180
- copyTooltipText: copyTooltipText
181
- }), this.renderSubmitButton())));
208
+ var _this$props4 = this.props,
209
+ title = _this$props4.title,
210
+ _this$props4$integrat = _this$props4.integrationMode,
211
+ integrationMode = _this$props4$integrat === void 0 ? 'off' : _this$props4$integrat,
212
+ shareIntegrations = _this$props4.shareIntegrations;
213
+
214
+ if (integrationMode === 'off' || !shareIntegrations || !shareIntegrations.length) {
215
+ return this.renderShareForm();
216
+ }
217
+
218
+ var firstIntegration = shareIntegrations[0];
219
+
220
+ if (integrationMode === 'tabs') {
221
+ return /*#__PURE__*/_react.default.createElement(_tabs.default, {
222
+ id: "ShareForm-Tabs-Integrations"
223
+ }, /*#__PURE__*/_react.default.createElement(_tabs.TabList, null, /*#__PURE__*/_react.default.createElement(_tabs.Tab, {
224
+ key: "share-tab-default"
225
+ }, title || /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, _i18n.messages.formTitle)), /*#__PURE__*/_react.default.createElement(_tabs.Tab, {
226
+ key: "share-tab-".concat(firstIntegration.type)
227
+ }, /*#__PURE__*/_react.default.createElement(IntegrationWrapper, null, /*#__PURE__*/_react.default.createElement(IntegrationIconWrapper, null, /*#__PURE__*/_react.default.createElement(firstIntegration.Icon, null)), integrationTabText(firstIntegration.type)))), /*#__PURE__*/_react.default.createElement(_tabs.TabPanel, {
228
+ key: "share-tabPanel-default"
229
+ }, /*#__PURE__*/_react.default.createElement(FormWrapper, {
230
+ isMainShare: true
231
+ }, this.renderShareForm())), /*#__PURE__*/_react.default.createElement(_tabs.TabPanel, {
232
+ key: "share-tabPanel-integration"
233
+ }, /*#__PURE__*/_react.default.createElement(FormWrapper, {
234
+ isMainShare: false
235
+ }, /*#__PURE__*/_react.default.createElement(_IntegrationForm.IntegrationForm, {
236
+ Content: firstIntegration.Content,
237
+ onIntegrationClose: function onIntegrationClose() {
238
+ return null;
239
+ }
240
+ }))));
241
+ }
242
+
243
+ return this.renderShareForm();
182
244
  }
183
245
  }]);
184
246
  return InternalForm;
@@ -30,9 +30,8 @@ var FormHeaderTitle = _styledComponents.default.h1(_templateObject2 || (_templat
30
30
  exports.FormHeaderTitle = FormHeaderTitle;
31
31
 
32
32
  var ShareHeader = function ShareHeader(_ref) {
33
- var title = _ref.title,
34
- contentPermissions = _ref.contentPermissions;
35
- return /*#__PURE__*/_react.default.createElement(HeaderWrapper, null, /*#__PURE__*/_react.default.createElement(FormHeaderTitle, null, title || /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, _i18n.messages.formTitle)), contentPermissions);
33
+ var title = _ref.title;
34
+ return /*#__PURE__*/_react.default.createElement(HeaderWrapper, null, /*#__PURE__*/_react.default.createElement(FormHeaderTitle, null, title || /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, _i18n.messages.formTitle)));
36
35
  };
37
36
 
38
37
  exports.ShareHeader = ShareHeader;
@@ -9,6 +9,8 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.default = SplitButton;
11
11
 
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+
12
14
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
15
 
14
16
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
@@ -19,7 +21,11 @@ var _reactIntl = require("react-intl");
19
21
 
20
22
  var _styledComponents = _interopRequireDefault(require("styled-components"));
21
23
 
22
- var _dropdownMenu = require("@atlaskit/dropdown-menu");
24
+ var _standardButton = _interopRequireDefault(require("@atlaskit/button/standard-button"));
25
+
26
+ var _dropdownMenu = _interopRequireWildcard(require("@atlaskit/dropdown-menu"));
27
+
28
+ var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/glyph/chevron-down"));
23
29
 
24
30
  var _colors = require("@atlaskit/theme/colors");
25
31
 
@@ -72,19 +78,26 @@ var SplitButtonDropdown = function SplitButtonDropdown(props) {
72
78
  onIntegrationClick(integration);
73
79
  createAndFireEvent((0, _analytics.shareIntegrationButtonEvent)(integration.type));
74
80
  }, [createAndFireEvent, onIntegrationClick]);
75
- return /*#__PURE__*/_react.default.createElement(DropdownMenuWrapper, null, /*#__PURE__*/_react.default.createElement(_dropdownMenu.DropdownMenuStateless, {
76
- "data-testid": "split-button-dropdown",
77
- triggerButtonProps: {
78
- appearance: triggerButtonAppearance
81
+ return /*#__PURE__*/_react.default.createElement(DropdownMenuWrapper, null, /*#__PURE__*/_react.default.createElement(_dropdownMenu.default, {
82
+ testId: "split-button-dropdown",
83
+ trigger: function trigger(_ref2) {
84
+ var triggerRef = _ref2.triggerRef,
85
+ providedProps = (0, _objectWithoutProperties2.default)(_ref2, ["triggerRef"]);
86
+ return /*#__PURE__*/_react.default.createElement(_standardButton.default, (0, _extends2.default)({}, providedProps, {
87
+ ref: triggerRef,
88
+ iconBefore: /*#__PURE__*/_react.default.createElement(_chevronDown.default, {
89
+ label: ""
90
+ }),
91
+ appearance: triggerButtonAppearance
92
+ }));
79
93
  },
80
- triggerType: "button",
81
- position: "bottom right",
94
+ placement: "bottom-end",
82
95
  isOpen: isUsingSplitButton,
83
96
  onOpenChange: onOpenChange
84
97
  }, /*#__PURE__*/_react.default.createElement(_dropdownMenu.DropdownItemGroup, null, shareIntegrations.map(function (integration) {
85
98
  return /*#__PURE__*/_react.default.createElement(_dropdownMenu.DropdownItem, {
86
99
  key: integration.type,
87
- "data-testid": "split-button-dropdownitem-".concat(integration.type)
100
+ testId: "split-button-dropdownitem-".concat(integration.type)
88
101
  }, /*#__PURE__*/_react.default.createElement(DropDownIntegrationButtonWrapper, null, /*#__PURE__*/_react.default.createElement(_IntegrationButton.default, {
89
102
  textColor: _colors.N800,
90
103
  appearance: "subtle",
@@ -100,17 +113,17 @@ var SplitButtonDropdown = function SplitButtonDropdown(props) {
100
113
 
101
114
  SplitButtonDropdown.displayName = 'SplitButtonDropdown';
102
115
 
103
- function SplitButton(_ref2) {
104
- var shareButton = _ref2.shareButton,
105
- handleOpenSplitButton = _ref2.handleOpenSplitButton,
106
- handleCloseSplitButton = _ref2.handleCloseSplitButton,
107
- isUsingSplitButton = _ref2.isUsingSplitButton,
108
- shareIntegrations = _ref2.shareIntegrations,
109
- onIntegrationClick = _ref2.onIntegrationClick,
110
- triggerButtonAppearance = _ref2.triggerButtonAppearance,
111
- dialogZIndex = _ref2.dialogZIndex,
112
- dialogPlacement = _ref2.dialogPlacement,
113
- createAndFireEvent = _ref2.createAndFireEvent;
116
+ function SplitButton(_ref3) {
117
+ var shareButton = _ref3.shareButton,
118
+ handleOpenSplitButton = _ref3.handleOpenSplitButton,
119
+ handleCloseSplitButton = _ref3.handleCloseSplitButton,
120
+ isUsingSplitButton = _ref3.isUsingSplitButton,
121
+ shareIntegrations = _ref3.shareIntegrations,
122
+ onIntegrationClick = _ref3.onIntegrationClick,
123
+ triggerButtonAppearance = _ref3.triggerButtonAppearance,
124
+ dialogZIndex = _ref3.dialogZIndex,
125
+ dialogPlacement = _ref3.dialogPlacement,
126
+ createAndFireEvent = _ref3.createAndFireEvent;
114
127
  return /*#__PURE__*/_react.default.createElement(SplitButtonWrapper, {
115
128
  "data-testid": "split-button"
116
129
  }, shareButton, /*#__PURE__*/_react.default.createElement(SplitButtonDropdown, {
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.formShareSubmitted = exports.copyLinkButtonClicked = exports.shortUrlGenerated = exports.shortUrlRequested = exports.cancelShare = exports.shareTriggerButtonClicked = exports.errorEncountered = exports.shareIntegrationButtonEvent = exports.shareSplitButtonEvent = exports.screenEvent = exports.INTEGRATION_MODAL_SOURCE = exports.ANALYTICS_SOURCE = exports.CHANNEL_ID = void 0;
8
+ exports.shortUrlRequested = exports.shortUrlGenerated = exports.shareTriggerButtonClicked = exports.shareSplitButtonEvent = exports.shareIntegrationButtonEvent = exports.screenEvent = exports.formShareSubmitted = exports.errorEncountered = exports.copyLinkButtonClicked = exports.cancelShare = exports.INTEGRATION_MODAL_SOURCE = exports.CHANNEL_ID = exports.ANALYTICS_SOURCE = void 0;
9
9
 
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.setIsOnboardingDismissed = exports.getIsOnboardingDismissed = exports.setDefaultSlackWorkSpace = exports.getDefaultSlackWorkSpace = void 0;
6
+ exports.setIsOnboardingDismissed = exports.setDefaultSlackWorkSpace = exports.getIsOnboardingDismissed = exports.getDefaultSlackWorkSpace = void 0;
7
7
 
8
8
  var getLocalStorageKey = function getLocalStorageKey(key) {
9
9
  try {
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = exports.InlineDialogContentWrapper = exports.MAX_PICKER_HEIGHT = void 0;
8
+ exports.default = exports.MAX_PICKER_HEIGHT = exports.InlineDialogContentWrapper = void 0;
9
9
 
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
 
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.allowEmails = exports.optionDataToUsers = exports.getMenuPortalTargetCurrentHTML = exports.generateSelectZIndex = exports.zIndexAddition = void 0;
6
+ exports.zIndexAddition = exports.optionDataToUsers = exports.getMenuPortalTargetCurrentHTML = exports.generateSelectZIndex = exports.allowEmails = void 0;
7
7
 
8
8
  var _theme = require("@atlaskit/theme");
9
9