@atlaskit/editor-synced-block-renderer 5.6.2 → 5.6.4

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 (51) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/afm-cc/tsconfig.json +3 -0
  3. package/afm-jira/tsconfig.json +3 -0
  4. package/afm-products/tsconfig.json +3 -0
  5. package/dist/cjs/ui/SyncedBlockErrorComponent.js +10 -3
  6. package/dist/cjs/ui/SyncedBlockErrorStateCard.compiled.css +3 -5
  7. package/dist/cjs/ui/SyncedBlockErrorStateCard.js +5 -2
  8. package/dist/cjs/ui/SyncedBlockLoadError.compiled.css +3 -0
  9. package/dist/cjs/ui/SyncedBlockLoadError.js +16 -5
  10. package/dist/cjs/ui/SyncedBlockNodeComponentRenderer.js +12 -0
  11. package/dist/cjs/ui/SyncedBlockNotFoundError.compiled.css +10 -0
  12. package/dist/cjs/ui/SyncedBlockNotFoundError.js +155 -17
  13. package/dist/cjs/ui/SyncedBlockRenderer.js +14 -0
  14. package/dist/cjs/ui/SyncedBlockUnpublishedError.compiled.css +3 -0
  15. package/dist/cjs/ui/SyncedBlockUnpublishedError.js +37 -0
  16. package/dist/cjs/useSyncedBlockNodeComponent.js +6 -1
  17. package/dist/es2019/ui/SyncedBlockErrorComponent.js +10 -3
  18. package/dist/es2019/ui/SyncedBlockErrorStateCard.compiled.css +3 -5
  19. package/dist/es2019/ui/SyncedBlockErrorStateCard.js +5 -2
  20. package/dist/es2019/ui/SyncedBlockLoadError.compiled.css +3 -0
  21. package/dist/es2019/ui/SyncedBlockLoadError.js +16 -5
  22. package/dist/es2019/ui/SyncedBlockNodeComponentRenderer.js +12 -0
  23. package/dist/es2019/ui/SyncedBlockNotFoundError.compiled.css +10 -0
  24. package/dist/es2019/ui/SyncedBlockNotFoundError.js +128 -14
  25. package/dist/es2019/ui/SyncedBlockRenderer.js +14 -0
  26. package/dist/es2019/ui/SyncedBlockUnpublishedError.compiled.css +3 -0
  27. package/dist/es2019/ui/SyncedBlockUnpublishedError.js +30 -0
  28. package/dist/es2019/useSyncedBlockNodeComponent.js +4 -1
  29. package/dist/esm/ui/SyncedBlockErrorComponent.js +10 -3
  30. package/dist/esm/ui/SyncedBlockErrorStateCard.compiled.css +3 -5
  31. package/dist/esm/ui/SyncedBlockErrorStateCard.js +5 -2
  32. package/dist/esm/ui/SyncedBlockLoadError.compiled.css +3 -0
  33. package/dist/esm/ui/SyncedBlockLoadError.js +16 -5
  34. package/dist/esm/ui/SyncedBlockNodeComponentRenderer.js +12 -0
  35. package/dist/esm/ui/SyncedBlockNotFoundError.compiled.css +10 -0
  36. package/dist/esm/ui/SyncedBlockNotFoundError.js +153 -17
  37. package/dist/esm/ui/SyncedBlockRenderer.js +14 -0
  38. package/dist/esm/ui/SyncedBlockUnpublishedError.compiled.css +3 -0
  39. package/dist/esm/ui/SyncedBlockUnpublishedError.js +30 -0
  40. package/dist/esm/useSyncedBlockNodeComponent.js +6 -1
  41. package/dist/types/ui/SyncedBlockErrorComponent.d.ts +2 -1
  42. package/dist/types/ui/SyncedBlockErrorStateCard.d.ts +0 -1
  43. package/dist/types/ui/SyncedBlockLoadError.d.ts +1 -1
  44. package/dist/types/ui/SyncedBlockNotFoundError.d.ts +2 -1
  45. package/dist/types/ui/SyncedBlockUnpublishedError.d.ts +4 -0
  46. package/dist/types-ts4.5/ui/SyncedBlockErrorComponent.d.ts +2 -1
  47. package/dist/types-ts4.5/ui/SyncedBlockErrorStateCard.d.ts +0 -1
  48. package/dist/types-ts4.5/ui/SyncedBlockLoadError.d.ts +1 -1
  49. package/dist/types-ts4.5/ui/SyncedBlockNotFoundError.d.ts +2 -1
  50. package/dist/types-ts4.5/ui/SyncedBlockUnpublishedError.d.ts +4 -0
  51. package/package.json +3 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # @atlaskit/editor-synced-block-renderer
2
2
 
3
+ ## 5.6.4
4
+
5
+ ### Patch Changes
6
+
7
+ - [`faddbf566c913`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/faddbf566c913) -
8
+ [ux] Add error message in reference sync block when source is unpublished
9
+ - Updated dependencies
10
+
11
+ ## 5.6.3
12
+
13
+ ### Patch Changes
14
+
15
+ - [`f11ff647ea458`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/f11ff647ea458) -
16
+ [ux] [EDITOR-4521] Implement source deleted reference UI, update block deleted/unsynced reference
17
+ UI to add delete button, unsynced label and source title/url
18
+ - Updated dependencies
19
+
3
20
  ## 5.6.2
4
21
 
5
22
  ### Patch Changes
@@ -50,6 +50,9 @@
50
50
  {
51
51
  "path": "../../../platform/feature-flags/afm-cc/tsconfig.json"
52
52
  },
53
+ {
54
+ "path": "../../../platform/feature-flags-react/afm-cc/tsconfig.json"
55
+ },
53
56
  {
54
57
  "path": "../../../design-system/primitives/afm-cc/tsconfig.json"
55
58
  },
@@ -50,6 +50,9 @@
50
50
  {
51
51
  "path": "../../../platform/feature-flags/afm-jira/tsconfig.json"
52
52
  },
53
+ {
54
+ "path": "../../../platform/feature-flags-react/afm-jira/tsconfig.json"
55
+ },
53
56
  {
54
57
  "path": "../../../design-system/primitives/afm-jira/tsconfig.json"
55
58
  },
@@ -50,6 +50,9 @@
50
50
  {
51
51
  "path": "../../../platform/feature-flags/afm-products/tsconfig.json"
52
52
  },
53
+ {
54
+ "path": "../../../platform/feature-flags-react/afm-products/tsconfig.json"
55
+ },
53
56
  {
54
57
  "path": "../../../design-system/primitives/afm-products/tsconfig.json"
55
58
  },
@@ -14,6 +14,7 @@ var _SyncedBlockLoadError = require("./SyncedBlockLoadError");
14
14
  var _SyncedBlockNotFoundError = require("./SyncedBlockNotFoundError");
15
15
  var _SyncedBlockOfflineError = require("./SyncedBlockOfflineError");
16
16
  var _SyncedBlockPermissionDenied = require("./SyncedBlockPermissionDenied");
17
+ var _SyncedBlockUnpublishedError = require("./SyncedBlockUnpublishedError");
17
18
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
18
19
  var getForbiddenErrorContent = function getForbiddenErrorContent(resourceId, fireAnalyticsEvent) {
19
20
  try {
@@ -40,7 +41,8 @@ var SyncedBlockErrorComponent = exports.SyncedBlockErrorComponent = function Syn
40
41
  isLoading = _ref.isLoading,
41
42
  onRetry = _ref.onRetry,
42
43
  resourceId = _ref.resourceId,
43
- fireAnalyticsEvent = _ref.fireAnalyticsEvent;
44
+ fireAnalyticsEvent = _ref.fireAnalyticsEvent,
45
+ sourceURL = _ref.sourceURL;
44
46
  var getErrorContent = (0, _react.useMemo)(function () {
45
47
  switch (error === null || error === void 0 ? void 0 : error.type) {
46
48
  case _editorSyncedBlockProvider.SyncBlockError.Offline:
@@ -49,7 +51,12 @@ var SyncedBlockErrorComponent = exports.SyncedBlockErrorComponent = function Syn
49
51
  return getForbiddenErrorContent(resourceId, fireAnalyticsEvent);
50
52
  case _editorSyncedBlockProvider.SyncBlockError.NotFound:
51
53
  return /*#__PURE__*/_react.default.createElement(_SyncedBlockNotFoundError.SyncedBlockNotFoundError, {
52
- reason: error.reason
54
+ reason: error.reason,
55
+ sourceAri: error.sourceAri
56
+ });
57
+ case _editorSyncedBlockProvider.SyncBlockError.Unpublished:
58
+ return /*#__PURE__*/_react.default.createElement(_SyncedBlockUnpublishedError.SyncedBlockUnpublishedError, {
59
+ sourceURL: sourceURL
53
60
  });
54
61
  case _editorSyncedBlockProvider.SyncBlockError.Errored:
55
62
  case _editorSyncedBlockProvider.SyncBlockError.RateLimited:
@@ -61,7 +68,7 @@ var SyncedBlockErrorComponent = exports.SyncedBlockErrorComponent = function Syn
61
68
  default:
62
69
  return /*#__PURE__*/_react.default.createElement(_SyncedBlockGenericError.SyncedBlockGenericError, null);
63
70
  }
64
- }, [error, isLoading, onRetry, resourceId, fireAnalyticsEvent]);
71
+ }, [error, isLoading, onRetry, resourceId, fireAnalyticsEvent, sourceURL]);
65
72
  return (
66
73
  /*#__PURE__*/
67
74
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
@@ -1,8 +1,6 @@
1
1
 
2
- ._zulppxbi{gap:var(--ds-space-200,1pc)}._19bvpxbi{padding-left:var(--ds-space-200,1pc)}
3
- ._1bahv2br{justify-content:start}
2
+ ._zulppxbi{gap:var(--ds-space-200,1pc)}
3
+ ._1rjc12x7{padding-block:var(--ds-space-075,6px)}._1bahv2br{justify-content:start}
4
4
  ._1e0c1txw{display:flex}
5
5
  ._4cvr1h6o{align-items:center}
6
- ._ca0qu2gc{padding-top:var(--ds-space-100,8px)}
7
- ._n3tdu2gc{padding-bottom:var(--ds-space-100,8px)}
8
- ._u5f3pxbi{padding-right:var(--ds-space-200,1pc)}
6
+ ._bozgpxbi{padding-inline-start:var(--ds-space-200,1pc)}
@@ -13,7 +13,8 @@ var _warningOutline = _interopRequireDefault(require("@atlaskit/icon-lab/core/wa
13
13
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
14
14
  var _compiled = require("@atlaskit/primitives/compiled");
15
15
  var styles = {
16
- wrapper: "_zulppxbi _ca0qu2gc _n3tdu2gc _19bvpxbi _u5f3pxbi _1e0c1txw _1bahv2br _4cvr1h6o"
16
+ wrapper: "_zulppxbi _1rjc12x7 _bozgpxbi _1e0c1txw _1bahv2br _4cvr1h6o",
17
+ container: "_1e0c1txw"
17
18
  };
18
19
  var SyncedBlockErrorStateCard = exports.SyncedBlockErrorStateCard = function SyncedBlockErrorStateCard(_ref) {
19
20
  var children = _ref.children,
@@ -21,11 +22,13 @@ var SyncedBlockErrorStateCard = exports.SyncedBlockErrorStateCard = function Syn
21
22
  icon = _ref.icon;
22
23
  var Icon = (0, _platformFeatureFlags.fg)('platform_synced_block_dogfooding') ? icon !== null && icon !== void 0 ? icon : _warningOutline.default : _warningOutline.default;
23
24
  return /*#__PURE__*/_react.default.createElement(_compiled.Box, {
25
+ xcss: styles.container
26
+ }, /*#__PURE__*/_react.default.createElement(_compiled.Box, {
24
27
  xcss: styles.wrapper
25
28
  }, /*#__PURE__*/_react.default.createElement(Icon, {
26
29
  color: "var(--ds-icon-subtle, #505258)",
27
30
  label: ""
28
31
  }), /*#__PURE__*/_react.default.createElement(_compiled.Text, {
29
32
  color: "color.text.subtle"
30
- }, description), children);
33
+ }, description), !(0, _platformFeatureFlags.fg)('platform_synced_block_dogfooding') && children), (0, _platformFeatureFlags.fg)('platform_synced_block_dogfooding') && children);
31
34
  };
@@ -0,0 +1,3 @@
1
+ ._18u0u2gc{margin-left:var(--ds-space-100,8px)}
2
+ ._1e0c1txw{display:flex}
3
+ ._4cvr1h6o{align-items:center}
@@ -1,3 +1,4 @@
1
+ /* SyncedBlockLoadError.tsx generated by @compiled/babel-plugin v0.38.1 */
1
2
  "use strict";
2
3
 
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -5,27 +6,37 @@ Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.SyncedBlockLoadError = void 0;
9
+ require("./SyncedBlockLoadError.compiled.css");
10
+ var _runtime = require("@compiled/react/runtime");
8
11
  var _react = _interopRequireDefault(require("react"));
9
12
  var _reactIntlNext = require("react-intl-next");
10
13
  var _new = _interopRequireDefault(require("@atlaskit/button/new"));
11
14
  var _messages = require("@atlaskit/editor-common/messages");
15
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
16
+ var _compiled = require("@atlaskit/primitives/compiled");
12
17
  var _SyncedBlockErrorStateCard = require("./SyncedBlockErrorStateCard");
18
+ var styles = {
19
+ buttonContainer: "_18u0u2gc _1e0c1txw _4cvr1h6o"
20
+ };
13
21
  var SyncedBlockLoadError = exports.SyncedBlockLoadError = function SyncedBlockLoadError(_ref) {
14
22
  var onRetry = _ref.onRetry,
15
23
  isLoading = _ref.isLoading;
16
24
  var _useIntl = (0, _reactIntlNext.useIntl)(),
17
25
  formatMessage = _useIntl.formatMessage;
18
- return /*#__PURE__*/_react.default.createElement(_SyncedBlockErrorStateCard.SyncedBlockErrorStateCard, {
19
- description: formatMessage(_messages.syncBlockMessages.generalErrorDescription)
20
- }, onRetry && /*#__PURE__*/_react.default.createElement(_new.default, {
26
+ var button = /*#__PURE__*/_react.default.createElement(_new.default, {
21
27
  appearance: "default",
22
28
  spacing: "compact",
23
29
  onClick: function onClick(event) {
24
30
  event.preventDefault();
25
31
  event.stopPropagation();
26
- onRetry();
32
+ onRetry === null || onRetry === void 0 || onRetry();
27
33
  },
28
34
  isLoading: isLoading,
29
35
  testId: "sync-block-retry-btn"
30
- }, formatMessage(_messages.syncBlockMessages.retryButton)));
36
+ }, formatMessage(_messages.syncBlockMessages.retryButton));
37
+ return /*#__PURE__*/_react.default.createElement(_SyncedBlockErrorStateCard.SyncedBlockErrorStateCard, {
38
+ description: formatMessage(_messages.syncBlockMessages.generalErrorDescription)
39
+ }, onRetry && ((0, _platformFeatureFlags.fg)('platform_synced_block_dogfooding') ? /*#__PURE__*/_react.default.createElement(_compiled.Box, {
40
+ xcss: styles.buttonContainer
41
+ }, button) : button));
31
42
  };
@@ -20,6 +20,7 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
20
20
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
21
21
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22
22
  var SyncedBlockNodeComponentRenderer = exports.SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentRenderer(_ref) {
23
+ var _syncBlockInstance$da2;
23
24
  var nodeProps = _ref.nodeProps,
24
25
  syncBlockStoreManager = _ref.syncBlockStoreManager,
25
26
  rendererOptions = _ref.rendererOptions;
@@ -73,6 +74,17 @@ var SyncedBlockNodeComponentRenderer = exports.SyncedBlockNodeComponentRenderer
73
74
  fireAnalyticsEvent: fireAnalyticsEvent
74
75
  });
75
76
  }
77
+ if ((syncBlockInstance === null || syncBlockInstance === void 0 || (_syncBlockInstance$da2 = syncBlockInstance.data) === null || _syncBlockInstance$da2 === void 0 ? void 0 : _syncBlockInstance$da2.status) === 'unpublished' && (0, _platformFeatureFlags.fg)('platform_synced_block_dogfooding')) {
78
+ var _syncBlockInstance$da3;
79
+ return /*#__PURE__*/_react.default.createElement(_SyncedBlockErrorComponent.SyncedBlockErrorComponent, {
80
+ error: {
81
+ type: _editorSyncedBlockProvider.SyncBlockError.Unpublished
82
+ },
83
+ resourceId: syncBlockInstance === null || syncBlockInstance === void 0 ? void 0 : syncBlockInstance.resourceId,
84
+ sourceURL: (_syncBlockInstance$da3 = syncBlockInstance.data) === null || _syncBlockInstance$da3 === void 0 ? void 0 : _syncBlockInstance$da3.sourceURL,
85
+ fireAnalyticsEvent: fireAnalyticsEvent
86
+ });
87
+ }
76
88
  var syncBlockDoc = {
77
89
  content: syncBlockInstance.data.content,
78
90
  version: 1,
@@ -0,0 +1,10 @@
1
+
2
+ ._1rjcutpp{padding-block:var(--ds-space-150,9pt)}._16jlkb7n{flex-grow:1}
3
+ ._1bah1h6o{justify-content:center}
4
+ ._1bahesu3{justify-content:flex-end}
5
+ ._1e0c1txw{display:flex}
6
+ ._1hmsglyw{text-decoration-line:none}
7
+ ._1o9zkb7n{flex-shrink:1}
8
+ ._4bfu1r31{text-decoration-color:currentColor}
9
+ ._ajmmnqa1{text-decoration-style:solid}
10
+ ._i0dlf1ug{flex-basis:0%}
@@ -1,16 +1,36 @@
1
+ /* SyncedBlockNotFoundError.tsx generated by @compiled/babel-plugin v0.38.1 */
1
2
  "use strict";
2
3
 
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
6
  Object.defineProperty(exports, "__esModule", {
5
7
  value: true
6
8
  });
7
9
  exports.SyncedBlockNotFoundError = void 0;
8
- var _react = _interopRequireDefault(require("react"));
10
+ require("./SyncedBlockNotFoundError.compiled.css");
11
+ var _runtime = require("@compiled/react/runtime");
12
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+ var _react = _interopRequireWildcard(require("react"));
9
16
  var _reactIntlNext = require("react-intl-next");
10
- var _messages = require("@atlaskit/editor-common/messages");
17
+ var _new = require("@atlaskit/button/new");
18
+ var _messages = _interopRequireWildcard(require("@atlaskit/editor-common/messages"));
19
+ var _syncBlock = require("@atlaskit/editor-common/sync-block");
20
+ var _cross = _interopRequireDefault(require("@atlaskit/icon/core/cross"));
21
+ var _eyeOpenStrikethrough = _interopRequireDefault(require("@atlaskit/icon/core/eye-open-strikethrough"));
11
22
  var _linkBroken = _interopRequireDefault(require("@atlaskit/icon/core/link-broken"));
12
23
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
24
+ var _platformFeatureFlagsReact = require("@atlaskit/platform-feature-flags-react");
25
+ var _compiled = require("@atlaskit/primitives/compiled");
26
+ var _spinner = _interopRequireDefault(require("@atlaskit/spinner"));
13
27
  var _SyncedBlockErrorStateCard = require("./SyncedBlockErrorStateCard");
28
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
29
+ var styles = {
30
+ link: "_4bfu1r31 _1hmsglyw _ajmmnqa1",
31
+ spinner: "_1rjcutpp _1e0c1txw _1bah1h6o",
32
+ closeButton: "_16jlkb7n _1o9zkb7n _i0dlf1ug _1e0c1txw _1bahesu3"
33
+ };
14
34
  var errorMap = {
15
35
  'source-block-unsynced': {
16
36
  description: _messages.syncBlockMessages.sourceUnsyncedDescription,
@@ -19,25 +39,143 @@ var errorMap = {
19
39
  'source-block-deleted': {
20
40
  description: _messages.syncBlockMessages.sourceDeletedDescription,
21
41
  icon: _linkBroken.default
42
+ },
43
+ 'source-document-deleted': {
44
+ description: _messages.syncBlockMessages.notFoundDescription,
45
+ icon: _eyeOpenStrikethrough.default
46
+ },
47
+ generic: {
48
+ description: _messages.syncBlockMessages.genericNotFoundDescription,
49
+ icon: _linkBroken.default
22
50
  }
23
51
  };
24
- var SyncedBlockNotFoundError = exports.SyncedBlockNotFoundError = function SyncedBlockNotFoundError(_ref) {
25
- var _ref$reason = _ref.reason,
26
- reason = _ref$reason === void 0 ? 'source-block-deleted' : _ref$reason;
52
+ var useSyncBlockInfo = (0, _platformFeatureFlagsReact.conditionalHooksFactory)(function () {
53
+ return (0, _platformFeatureFlags.fg)('platform_synced_block_dogfooding');
54
+ }, function () {
55
+ var _useSyncBlockActions;
56
+ var _ref = (_useSyncBlockActions = (0, _syncBlock.useSyncBlockActions)()) !== null && _useSyncBlockActions !== void 0 ? _useSyncBlockActions : {},
57
+ deleteSyncBlock = _ref.deleteSyncBlock,
58
+ fetchSourceInfo = _ref.fetchSourceInfo;
59
+ return {
60
+ deleteSyncBlock: deleteSyncBlock,
61
+ fetchSourceInfo: fetchSourceInfo
62
+ };
63
+ }, function () {
64
+ return {
65
+ deleteSyncBlock: undefined,
66
+ fetchSourceInfo: undefined
67
+ };
68
+ });
69
+ var useErrorInfo = (0, _platformFeatureFlagsReact.conditionalHooksFactory)(function () {
70
+ return (0, _platformFeatureFlags.fg)('platform_synced_block_dogfooding');
71
+ }, function (reason, url, title) {
27
72
  var _useIntl = (0, _reactIntlNext.useIntl)(),
28
73
  formatMessage = _useIntl.formatMessage;
29
- var errorInfo = {
30
- description: _messages.syncBlockMessages.notFoundDescription
31
- };
32
- if ((0, _platformFeatureFlags.fg)('platform_synced_block_dogfooding')) {
33
- var _errorMap$reason;
34
- errorInfo = (_errorMap$reason = errorMap[reason]) !== null && _errorMap$reason !== void 0 ? _errorMap$reason : {};
74
+ if (reason === 'source-document-deleted') {
75
+ var _errorMap$sourceDocu = errorMap['source-document-deleted'],
76
+ _icon = _errorMap$sourceDocu.icon,
77
+ _description = _errorMap$sourceDocu.description;
78
+ return {
79
+ description: formatMessage(_description),
80
+ icon: _icon
81
+ };
82
+ }
83
+ if (!url || !title) {
84
+ var _errorMap$generic = errorMap['generic'],
85
+ _icon2 = _errorMap$generic.icon,
86
+ _description2 = _errorMap$generic.description;
87
+ return {
88
+ description: formatMessage(_description2),
89
+ icon: _icon2
90
+ };
35
91
  }
36
- var _errorInfo = errorInfo,
37
- description = _errorInfo.description,
38
- icon = _errorInfo.icon;
39
- return /*#__PURE__*/_react.default.createElement(_SyncedBlockErrorStateCard.SyncedBlockErrorStateCard, {
40
- description: formatMessage(description),
92
+ var _errorMap = errorMap[reason || 'generic'],
93
+ icon = _errorMap.icon,
94
+ description = _errorMap.description;
95
+ return {
96
+ description: formatMessage(description, {
97
+ title: title,
98
+ a: function a(chunk) {
99
+ return /*#__PURE__*/_react.default.createElement(_compiled.Anchor, {
100
+ href: url,
101
+ target: "_blank",
102
+ xcss: styles.link
103
+ }, chunk);
104
+ }
105
+ }),
106
+ icon: icon
107
+ };
108
+ }, function (_) {
109
+ var _useIntl2 = (0, _reactIntlNext.useIntl)(),
110
+ formatMessage = _useIntl2.formatMessage;
111
+ return {
112
+ description: formatMessage(_messages.syncBlockMessages.notFoundDescription),
113
+ icon: undefined
114
+ };
115
+ });
116
+ var SyncedBlockNotFoundError = exports.SyncedBlockNotFoundError = function SyncedBlockNotFoundError(_ref2) {
117
+ var _ref2$reason = _ref2.reason,
118
+ reason = _ref2$reason === void 0 ? 'source-block-deleted' : _ref2$reason,
119
+ sourceAri = _ref2.sourceAri;
120
+ var _useSyncBlockInfo = useSyncBlockInfo(),
121
+ deleteSyncBlock = _useSyncBlockInfo.deleteSyncBlock,
122
+ fetchSourceInfo = _useSyncBlockInfo.fetchSourceInfo;
123
+ var _useState = (0, _react.useState)(undefined),
124
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
125
+ sourceInfo = _useState2[0],
126
+ setSourceInfo = _useState2[1];
127
+ var _useIntl3 = (0, _reactIntlNext.useIntl)(),
128
+ formatMessage = _useIntl3.formatMessage;
129
+ (0, _react.useEffect)(function () {
130
+ if (!(0, _platformFeatureFlags.fg)('platform_synced_block_dogfooding') || !sourceAri ||
131
+ // Only fetch source info for these 2 cases
132
+ !['source-block-deleted', 'source-block-unsynced'].includes(reason)) {
133
+ setSourceInfo({});
134
+ return;
135
+ }
136
+ var getSourceInfo = /*#__PURE__*/function () {
137
+ var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
138
+ var sourceInfo;
139
+ return _regenerator.default.wrap(function _callee$(_context) {
140
+ while (1) switch (_context.prev = _context.next) {
141
+ case 0:
142
+ _context.next = 2;
143
+ return fetchSourceInfo === null || fetchSourceInfo === void 0 ? void 0 : fetchSourceInfo(sourceAri, true);
144
+ case 2:
145
+ sourceInfo = _context.sent;
146
+ setSourceInfo({
147
+ url: sourceInfo === null || sourceInfo === void 0 ? void 0 : sourceInfo.url,
148
+ title: sourceInfo === null || sourceInfo === void 0 ? void 0 : sourceInfo.title
149
+ });
150
+ case 4:
151
+ case "end":
152
+ return _context.stop();
153
+ }
154
+ }, _callee);
155
+ }));
156
+ return function getSourceInfo() {
157
+ return _ref3.apply(this, arguments);
158
+ };
159
+ }();
160
+ getSourceInfo();
161
+ }, [reason, sourceAri, fetchSourceInfo]);
162
+ var _useErrorInfo = useErrorInfo(reason, sourceInfo === null || sourceInfo === void 0 ? void 0 : sourceInfo.url, sourceInfo === null || sourceInfo === void 0 ? void 0 : sourceInfo.title),
163
+ description = _useErrorInfo.description,
164
+ icon = _useErrorInfo.icon;
165
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (0, _platformFeatureFlags.fg)('platform_synced_block_dogfooding') ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, sourceInfo === undefined ? /*#__PURE__*/_react.default.createElement(_compiled.Box, {
166
+ xcss: styles.spinner
167
+ }, /*#__PURE__*/_react.default.createElement(_spinner.default, null)) : /*#__PURE__*/_react.default.createElement(_SyncedBlockErrorStateCard.SyncedBlockErrorStateCard, {
168
+ description: description,
169
+ icon: icon
170
+ }, deleteSyncBlock && /*#__PURE__*/_react.default.createElement(_compiled.Box, {
171
+ xcss: styles.closeButton
172
+ }, /*#__PURE__*/_react.default.createElement(_new.IconButton, {
173
+ appearance: "subtle",
174
+ icon: _cross.default,
175
+ label: formatMessage(_messages.default.delete),
176
+ onClick: deleteSyncBlock
177
+ })))) : /*#__PURE__*/_react.default.createElement(_SyncedBlockErrorStateCard.SyncedBlockErrorStateCard, {
178
+ description: description,
41
179
  icon: icon
42
- });
180
+ }));
43
181
  };
@@ -19,6 +19,7 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
19
19
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
20
20
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
21
21
  var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref) {
22
+ var _syncBlockInstance$da2;
22
23
  var syncBlockRendererOptions = _ref.syncBlockRendererOptions,
23
24
  syncBlockFetchResult = _ref.syncBlockFetchResult,
24
25
  api = _ref.api;
@@ -84,6 +85,19 @@ var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref) {
84
85
  fireAnalyticsEvent: api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions.fireAnalyticsEvent
85
86
  });
86
87
  }
88
+
89
+ // Check for unpublished status
90
+ if (((_syncBlockInstance$da2 = syncBlockInstance.data) === null || _syncBlockInstance$da2 === void 0 ? void 0 : _syncBlockInstance$da2.status) === 'unpublished' && (0, _platformFeatureFlags.fg)('platform_synced_block_dogfooding')) {
91
+ var _syncBlockInstance$da3, _api$analytics2;
92
+ return /*#__PURE__*/_react.default.createElement(_SyncedBlockErrorComponent.SyncedBlockErrorComponent, {
93
+ error: {
94
+ type: _editorSyncedBlockProvider.SyncBlockError.Unpublished
95
+ },
96
+ resourceId: syncBlockInstance.resourceId,
97
+ sourceURL: (_syncBlockInstance$da3 = syncBlockInstance.data) === null || _syncBlockInstance$da3 === void 0 ? void 0 : _syncBlockInstance$da3.sourceURL,
98
+ fireAnalyticsEvent: api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions.fireAnalyticsEvent
99
+ });
100
+ }
87
101
  var syncBlockDoc = {
88
102
  content: syncBlockInstance.data.content,
89
103
  version: 1,
@@ -0,0 +1,3 @@
1
+ ._1hmsglyw{text-decoration-line:none}
2
+ ._4bfu1r31{text-decoration-color:currentColor}
3
+ ._ajmmnqa1{text-decoration-style:solid}
@@ -0,0 +1,37 @@
1
+ /* SyncedBlockUnpublishedError.tsx generated by @compiled/babel-plugin v0.38.1 */
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.SyncedBlockUnpublishedError = void 0;
9
+ require("./SyncedBlockUnpublishedError.compiled.css");
10
+ var _runtime = require("@compiled/react/runtime");
11
+ var _react = _interopRequireDefault(require("react"));
12
+ var _reactIntlNext = require("react-intl-next");
13
+ var _messages = require("@atlaskit/editor-common/messages");
14
+ var _eyeOpenStrikethrough = _interopRequireDefault(require("@atlaskit/icon/core/eye-open-strikethrough"));
15
+ var _compiled = require("@atlaskit/primitives/compiled");
16
+ var _SyncedBlockErrorStateCard = require("./SyncedBlockErrorStateCard");
17
+ var styles = {
18
+ link: "_4bfu1r31 _1hmsglyw _ajmmnqa1"
19
+ };
20
+ var SyncedBlockUnpublishedError = exports.SyncedBlockUnpublishedError = function SyncedBlockUnpublishedError(_ref) {
21
+ var sourceURL = _ref.sourceURL;
22
+ var _useIntl = (0, _reactIntlNext.useIntl)(),
23
+ formatMessage = _useIntl.formatMessage;
24
+ var description = formatMessage(_messages.syncBlockMessages.unpublishedError, {
25
+ link: function link(chunks) {
26
+ return sourceURL ? /*#__PURE__*/_react.default.createElement(_compiled.Text, null, /*#__PURE__*/_react.default.createElement(_compiled.Anchor, {
27
+ href: sourceURL,
28
+ target: "_blank",
29
+ xcss: styles.link
30
+ }, chunks)) : chunks;
31
+ }
32
+ });
33
+ return /*#__PURE__*/_react.default.createElement(_SyncedBlockErrorStateCard.SyncedBlockErrorStateCard, {
34
+ description: description,
35
+ icon: _eyeOpenStrikethrough.default
36
+ });
37
+ };
@@ -8,6 +8,7 @@ exports.useMemoizedSyncedBlockNodeComponent = exports.getSyncBlockNodesFromDoc =
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _analytics = require("@atlaskit/editor-common/analytics");
10
10
  var _errorBoundary = require("@atlaskit/editor-common/error-boundary");
11
+ var _syncBlock = require("@atlaskit/editor-common/sync-block");
11
12
  var _editorSyncedBlockProvider = require("@atlaskit/editor-synced-block-provider");
12
13
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
13
14
  var _SyncedBlockNodeComponentRenderer = require("./ui/SyncedBlockNodeComponentRenderer");
@@ -49,12 +50,16 @@ var useMemoizedSyncedBlockNodeComponent = exports.useMemoizedSyncedBlockNodeComp
49
50
  component: _analytics.ACTION_SUBJECT.SYNCED_BLOCK,
50
51
  dispatchAnalyticsEvent: fireAnalyticsEvent,
51
52
  fallbackComponent: null
53
+ }, /*#__PURE__*/_react.default.createElement(_syncBlock.SyncBlockActionsProvider, {
54
+ fetchSyncBlockSourceInfo: function fetchSyncBlockSourceInfo(sourceAri) {
55
+ return syncBlockStoreManager.referenceManager.fetchSyncBlockSourceInfoBySourceAri(sourceAri);
56
+ }
52
57
  }, /*#__PURE__*/_react.default.createElement(_SyncedBlockNodeComponentRenderer.SyncedBlockNodeComponentRenderer, {
53
58
  key: props.localId,
54
59
  nodeProps: props,
55
60
  syncBlockStoreManager: syncBlockStoreManager,
56
61
  rendererOptions: syncBlockRendererOptions
57
- })) : /*#__PURE__*/_react.default.createElement(_SyncedBlockNodeComponentRenderer.SyncedBlockNodeComponentRenderer, {
62
+ }))) : /*#__PURE__*/_react.default.createElement(_SyncedBlockNodeComponentRenderer.SyncedBlockNodeComponentRenderer, {
58
63
  key: props.localId,
59
64
  nodeProps: props,
60
65
  syncBlockStoreManager: syncBlockStoreManager,
@@ -7,6 +7,7 @@ import { SyncedBlockLoadError } from './SyncedBlockLoadError';
7
7
  import { SyncedBlockNotFoundError } from './SyncedBlockNotFoundError';
8
8
  import { SyncedBlockOfflineError } from './SyncedBlockOfflineError';
9
9
  import { SyncedBlockPermissionDenied } from './SyncedBlockPermissionDenied';
10
+ import { SyncedBlockUnpublishedError } from './SyncedBlockUnpublishedError';
10
11
  const getForbiddenErrorContent = (resourceId, fireAnalyticsEvent) => {
11
12
  try {
12
13
  if (!resourceId) {
@@ -33,7 +34,8 @@ export const SyncedBlockErrorComponent = ({
33
34
  isLoading,
34
35
  onRetry,
35
36
  resourceId,
36
- fireAnalyticsEvent
37
+ fireAnalyticsEvent,
38
+ sourceURL
37
39
  }) => {
38
40
  const getErrorContent = useMemo(() => {
39
41
  switch (error === null || error === void 0 ? void 0 : error.type) {
@@ -43,7 +45,12 @@ export const SyncedBlockErrorComponent = ({
43
45
  return getForbiddenErrorContent(resourceId, fireAnalyticsEvent);
44
46
  case SyncBlockError.NotFound:
45
47
  return /*#__PURE__*/React.createElement(SyncedBlockNotFoundError, {
46
- reason: error.reason
48
+ reason: error.reason,
49
+ sourceAri: error.sourceAri
50
+ });
51
+ case SyncBlockError.Unpublished:
52
+ return /*#__PURE__*/React.createElement(SyncedBlockUnpublishedError, {
53
+ sourceURL: sourceURL
47
54
  });
48
55
  case SyncBlockError.Errored:
49
56
  case SyncBlockError.RateLimited:
@@ -55,7 +62,7 @@ export const SyncedBlockErrorComponent = ({
55
62
  default:
56
63
  return /*#__PURE__*/React.createElement(SyncedBlockGenericError, null);
57
64
  }
58
- }, [error, isLoading, onRetry, resourceId, fireAnalyticsEvent]);
65
+ }, [error, isLoading, onRetry, resourceId, fireAnalyticsEvent, sourceURL]);
59
66
  return (
60
67
  /*#__PURE__*/
61
68
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
@@ -1,8 +1,6 @@
1
1
 
2
- ._zulppxbi{gap:var(--ds-space-200,1pc)}._19bvpxbi{padding-left:var(--ds-space-200,1pc)}
3
- ._1bahv2br{justify-content:start}
2
+ ._zulppxbi{gap:var(--ds-space-200,1pc)}
3
+ ._1rjc12x7{padding-block:var(--ds-space-075,6px)}._1bahv2br{justify-content:start}
4
4
  ._1e0c1txw{display:flex}
5
5
  ._4cvr1h6o{align-items:center}
6
- ._ca0qu2gc{padding-top:var(--ds-space-100,8px)}
7
- ._n3tdu2gc{padding-bottom:var(--ds-space-100,8px)}
8
- ._u5f3pxbi{padding-right:var(--ds-space-200,1pc)}
6
+ ._bozgpxbi{padding-inline-start:var(--ds-space-200,1pc)}
@@ -6,7 +6,8 @@ import WarningOutlineIcon from '@atlaskit/icon-lab/core/warning-outline';
6
6
  import { fg } from '@atlaskit/platform-feature-flags';
7
7
  import { Box, Text } from '@atlaskit/primitives/compiled';
8
8
  const styles = {
9
- wrapper: "_zulppxbi _ca0qu2gc _n3tdu2gc _19bvpxbi _u5f3pxbi _1e0c1txw _1bahv2br _4cvr1h6o"
9
+ wrapper: "_zulppxbi _1rjc12x7 _bozgpxbi _1e0c1txw _1bahv2br _4cvr1h6o",
10
+ container: "_1e0c1txw"
10
11
  };
11
12
  export const SyncedBlockErrorStateCard = ({
12
13
  children,
@@ -15,11 +16,13 @@ export const SyncedBlockErrorStateCard = ({
15
16
  }) => {
16
17
  const Icon = fg('platform_synced_block_dogfooding') ? icon !== null && icon !== void 0 ? icon : WarningOutlineIcon : WarningOutlineIcon;
17
18
  return /*#__PURE__*/React.createElement(Box, {
19
+ xcss: styles.container
20
+ }, /*#__PURE__*/React.createElement(Box, {
18
21
  xcss: styles.wrapper
19
22
  }, /*#__PURE__*/React.createElement(Icon, {
20
23
  color: "var(--ds-icon-subtle, #505258)",
21
24
  label: ""
22
25
  }), /*#__PURE__*/React.createElement(Text, {
23
26
  color: "color.text.subtle"
24
- }, description), children);
27
+ }, description), !fg('platform_synced_block_dogfooding') && children), fg('platform_synced_block_dogfooding') && children);
25
28
  };
@@ -0,0 +1,3 @@
1
+ ._18u0u2gc{margin-left:var(--ds-space-100,8px)}
2
+ ._1e0c1txw{display:flex}
3
+ ._4cvr1h6o{align-items:center}