@atlaskit/renderer 98.1.0 → 101.0.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 (42) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/cjs/react/marks/code.js +0 -4
  3. package/dist/cjs/react/nodes/codeBlock/codeBlock.js +0 -4
  4. package/dist/cjs/react/nodes/codeBlock/windowedCodeBlock.js +0 -4
  5. package/dist/cjs/react/nodes/date.js +26 -2
  6. package/dist/cjs/react/nodes/embedCard.js +3 -1
  7. package/dist/cjs/react/nodes/taskItem.js +22 -10
  8. package/dist/cjs/ui/MediaCard.js +1 -1
  9. package/dist/cjs/ui/Renderer/index.js +4 -4
  10. package/dist/cjs/ui/TaskItemsFormatContext/TaskItemsFormatContext.js +42 -0
  11. package/dist/cjs/ui/TaskItemsFormatContext/index.js +25 -0
  12. package/dist/cjs/version.json +1 -1
  13. package/dist/es2019/react/marks/code.js +0 -3
  14. package/dist/es2019/react/nodes/codeBlock/codeBlock.js +0 -3
  15. package/dist/es2019/react/nodes/codeBlock/windowedCodeBlock.js +0 -3
  16. package/dist/es2019/react/nodes/date.js +18 -1
  17. package/dist/es2019/react/nodes/embedCard.js +3 -2
  18. package/dist/es2019/react/nodes/taskItem.js +7 -3
  19. package/dist/es2019/ui/MediaCard.js +1 -1
  20. package/dist/es2019/ui/Renderer/index.js +4 -3
  21. package/dist/es2019/ui/TaskItemsFormatContext/TaskItemsFormatContext.js +24 -0
  22. package/dist/es2019/ui/TaskItemsFormatContext/index.js +1 -0
  23. package/dist/es2019/version.json +1 -1
  24. package/dist/esm/react/marks/code.js +0 -3
  25. package/dist/esm/react/nodes/codeBlock/codeBlock.js +0 -3
  26. package/dist/esm/react/nodes/codeBlock/windowedCodeBlock.js +0 -3
  27. package/dist/esm/react/nodes/date.js +22 -1
  28. package/dist/esm/react/nodes/embedCard.js +3 -2
  29. package/dist/esm/react/nodes/taskItem.js +20 -10
  30. package/dist/esm/ui/MediaCard.js +1 -1
  31. package/dist/esm/ui/Renderer/index.js +4 -3
  32. package/dist/esm/ui/TaskItemsFormatContext/TaskItemsFormatContext.js +22 -0
  33. package/dist/esm/ui/TaskItemsFormatContext/index.js +1 -0
  34. package/dist/esm/version.json +1 -1
  35. package/dist/types/react/nodes/date.d.ts +3 -2
  36. package/dist/types/react/nodes/index.d.ts +1 -1
  37. package/dist/types/renderer-context.d.ts +0 -1
  38. package/dist/types/ui/TaskItemsFormatContext/TaskItemsFormatContext.d.ts +15 -0
  39. package/dist/types/ui/TaskItemsFormatContext/index.d.ts +2 -0
  40. package/dist/types/ui/renderer-props.d.ts +0 -2
  41. package/docs/0-intro.tsx +69 -2
  42. package/package.json +11 -10
package/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # @atlaskit/renderer
2
2
 
3
+ ## 101.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - [`83730e9b1fa`](https://bitbucket.org/atlassian/atlassian-frontend/commits/83730e9b1fa) - replace @atlaskit/smart-card peer dependency by @atlaskit/link-provider
8
+ - [`080e2269f18`](https://bitbucket.org/atlassian/atlassian-frontend/commits/080e2269f18) - ED-14838: Completely remove allowDynamicTextSizing prop references and deprecation warnings from editor and renderer
9
+
10
+ ### Patch Changes
11
+
12
+ - [`721bc4d7794`](https://bitbucket.org/atlassian/atlassian-frontend/commits/721bc4d7794) - ED-14377 To remove the imports of version.json which is deprecated
13
+ - [`a293488d55d`](https://bitbucket.org/atlassian/atlassian-frontend/commits/a293488d55d) - [ux] ED-13304 fixes inconsistent date in action item formatting between edit/render mode when checked/unchecked
14
+ - [`16fa5a45e7a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/16fa5a45e7a) - [EDM-3364] Remove @atlaskit/smart-card peer dependency which was accidentally put back during a conflict resolution. It should no longer be in the peer dependencies of editor-core or renderer packages as it has been replaced by @atlaskit/link-provider
15
+ - [`cad3842e2d3`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cad3842e2d3) - fix media viewer navigation issue when files have different collection Ids
16
+ - [`b10472a1e57`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b10472a1e57) - ED-14471 remove codeBidiWarnings feature flag
17
+ - Updated dependencies
18
+
19
+ ## 100.0.0
20
+
21
+ ### Patch Changes
22
+
23
+ - Updated dependencies
24
+
25
+ ## 99.0.0
26
+
27
+ ### Patch Changes
28
+
29
+ - Updated dependencies
30
+
3
31
  ## 98.1.0
4
32
 
5
33
  ### Minor Changes
@@ -18,8 +18,6 @@ var _inline = _interopRequireDefault(require("@atlaskit/code/inline"));
18
18
 
19
19
  var _messages = require("@atlaskit/editor-common/messages");
20
20
 
21
- var _useFeatureFlags = require("../../use-feature-flags");
22
-
23
21
  var isCodeMark = function isCodeMark(mark) {
24
22
  return mark && mark.type && mark.type.name === 'code';
25
23
  };
@@ -27,11 +25,9 @@ var isCodeMark = function isCodeMark(mark) {
27
25
  exports.isCodeMark = isCodeMark;
28
26
 
29
27
  function CodeWithIntl(props) {
30
- var featureFlags = (0, _useFeatureFlags.useFeatureFlags)();
31
28
  var codeBidiWarningLabel = props.intl.formatMessage(_messages.codeBidiWarningMessages.label);
32
29
  return /*#__PURE__*/_react.default.createElement(_inline.default, (0, _extends2.default)({
33
30
  className: "code",
34
- codeBidiWarnings: featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.codeBidiWarnings,
35
31
  codeBidiWarningLabel: codeBidiWarningLabel,
36
32
  codeBidiWarningTooltipEnabled: props.codeBidiWarningTooltipEnabled
37
33
  }, props.dataAttributes), props.children);
@@ -17,8 +17,6 @@ var _code = require("@atlaskit/code");
17
17
 
18
18
  var _messages = require("@atlaskit/editor-common/messages");
19
19
 
20
- var _useFeatureFlags = require("../../../use-feature-flags");
21
-
22
20
  var _codeBlockContainer = _interopRequireDefault(require("./components/codeBlockContainer"));
23
21
 
24
22
  /** @jsx jsx */
@@ -28,7 +26,6 @@ function CodeBlock(props) {
28
26
  _props$allowCopyToCli = props.allowCopyToClipboard,
29
27
  allowCopyToClipboard = _props$allowCopyToCli === void 0 ? false : _props$allowCopyToCli,
30
28
  codeBidiWarningTooltipEnabled = props.codeBidiWarningTooltipEnabled;
31
- var featureFlags = (0, _useFeatureFlags.useFeatureFlags)();
32
29
  var codeBidiWarningLabel = props.intl.formatMessage(_messages.codeBidiWarningMessages.label);
33
30
  var className = [_styles.CodeBlockSharedCssClassName.CODEBLOCK_CONTAINER, props.className].join(' ');
34
31
  return (0, _react.jsx)(_codeBlockContainer.default, {
@@ -38,7 +35,6 @@ function CodeBlock(props) {
38
35
  }, (0, _react.jsx)(_code.CodeBlock, {
39
36
  language: language,
40
37
  text: text,
41
- codeBidiWarnings: featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.codeBidiWarnings,
42
38
  codeBidiWarningLabel: codeBidiWarningLabel,
43
39
  codeBidiWarningTooltipEnabled: codeBidiWarningTooltipEnabled
44
40
  }));
@@ -19,8 +19,6 @@ var _react2 = require("@emotion/react");
19
19
 
20
20
  var _styles = require("@atlaskit/editor-common/styles");
21
21
 
22
- var _useFeatureFlags = require("../../../use-feature-flags");
23
-
24
22
  var _useInViewport2 = require("../../hooks/use-in-viewport");
25
23
 
26
24
  var _useBidiWarnings2 = require("../../hooks/use-bidi-warnings");
@@ -66,7 +64,6 @@ var WindowedCodeBlock = function WindowedCodeBlock(_ref2) {
66
64
  allowCopyToClipboard = _ref2.allowCopyToClipboard,
67
65
  codeBidiWarningTooltipEnabled = _ref2.codeBidiWarningTooltipEnabled,
68
66
  rootClassName = _ref2.className;
69
- var featureFlags = (0, _useFeatureFlags.useFeatureFlags)();
70
67
 
71
68
  var _useBidiWarnings = (0, _useBidiWarnings2.useBidiWarnings)({
72
69
  enableWarningTooltip: codeBidiWarningTooltipEnabled
@@ -93,7 +90,6 @@ var WindowedCodeBlock = function WindowedCodeBlock(_ref2) {
93
90
  }, (0, _react2.jsx)(LazyAkCodeBlock, {
94
91
  language: language,
95
92
  text: text,
96
- codeBidiWarnings: featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.codeBidiWarnings,
97
93
  codeBidiWarningLabel: warningLabel,
98
94
  codeBidiWarningTooltipEnabled: codeBidiWarningTooltipEnabled
99
95
  })))) : memoizedLightWeightCodeBlock;
@@ -7,7 +7,11 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.default = void 0;
10
+ exports.default = exports.DateComponent = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
15
 
12
16
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
17
 
@@ -27,6 +31,8 @@ var _utils = require("@atlaskit/editor-common/utils");
27
31
 
28
32
  var _reactIntlNext = require("react-intl-next");
29
33
 
34
+ var _TaskItemsFormatContext = require("../../ui/TaskItemsFormatContext");
35
+
30
36
  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); }
31
37
 
32
38
  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; }
@@ -65,6 +71,24 @@ var Date = /*#__PURE__*/function (_PureComponent) {
65
71
  return Date;
66
72
  }(_react.PureComponent);
67
73
 
68
- var _default = (0, _reactIntlNext.injectIntl)(Date);
74
+ var DateComponent = (0, _reactIntlNext.injectIntl)(Date);
75
+ exports.DateComponent = DateComponent;
76
+
77
+ function DateWithFormatContext(props) {
78
+ var _useTaskItemsFormatCo = (0, _TaskItemsFormatContext.useTaskItemsFormatContext)(),
79
+ _useTaskItemsFormatCo2 = (0, _slicedToArray2.default)(_useTaskItemsFormatCo, 1),
80
+ isChecked = _useTaskItemsFormatCo2[0];
81
+
82
+ var parentIsIncompleteTask = props.parentIsIncompleteTask;
83
+
84
+ if (typeof isChecked !== 'undefined') {
85
+ parentIsIncompleteTask = !isChecked;
86
+ }
87
+
88
+ return /*#__PURE__*/_react.default.createElement(DateComponent, (0, _extends2.default)({}, props, {
89
+ parentIsIncompleteTask: parentIsIncompleteTask
90
+ }));
91
+ }
69
92
 
93
+ var _default = DateWithFormatContext;
70
94
  exports.default = _default;
@@ -19,6 +19,8 @@ var _react2 = require("react");
19
19
 
20
20
  var _smartCard = require("@atlaskit/smart-card");
21
21
 
22
+ var _linkProvider = require("@atlaskit/link-provider");
23
+
22
24
  var _ui = require("@atlaskit/editor-common/ui");
23
25
 
24
26
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
@@ -100,7 +102,7 @@ function EmbedCard(props) {
100
102
  hasPreview = _useState6[0],
101
103
  setPreviewAvailableState = _useState6[1];
102
104
 
103
- var cardContext = (0, _react2.useContext)(_smartCard.Context);
105
+ var cardContext = (0, _react2.useContext)(_linkProvider.SmartCardContext);
104
106
 
105
107
  var onResolve = function onResolve(_ref) {
106
108
  var resolvedAspectRatio = _ref.aspectRatio;
@@ -9,6 +9,8 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.default = void 0;
11
11
 
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
12
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
15
 
14
16
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -31,6 +33,8 @@ var _taskItemWithProviders = _interopRequireDefault(require("./task-item-with-pr
31
33
 
32
34
  var _analyticsNamespacedContext = require("@atlaskit/analytics-namespaced-context");
33
35
 
36
+ var _TaskItemsFormatContext = require("../../ui/TaskItemsFormatContext");
37
+
34
38
  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); }
35
39
 
36
40
  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; }
@@ -69,16 +73,24 @@ var TaskItem = /*#__PURE__*/function (_PureComponent) {
69
73
  data: {
70
74
  userContext: 'document'
71
75
  }
72
- }, /*#__PURE__*/_react.default.createElement(_taskItemWithProviders.default, {
73
- objectAri: objectAri,
74
- taskId: localId,
75
- isDone: state === 'DONE',
76
- isRenderer: true,
77
- disabled: disabled,
78
- taskDecisionProvider: taskDecisionProvider,
79
- contextIdentifierProvider: contextIdentifierProvider,
80
- dataAttributes: dataAttributes
81
- }, children));
76
+ }, /*#__PURE__*/_react.default.createElement(_TaskItemsFormatContext.TaskItemsFormatProvider, null, /*#__PURE__*/_react.default.createElement(_TaskItemsFormatContext.TaskItemsFormatConsumer, null, function (_ref) {
77
+ var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
78
+ dispatch = _ref2[1];
79
+
80
+ return /*#__PURE__*/_react.default.createElement(_taskItemWithProviders.default, {
81
+ objectAri: objectAri,
82
+ taskId: localId,
83
+ isDone: state === 'DONE',
84
+ isRenderer: true,
85
+ disabled: disabled,
86
+ taskDecisionProvider: taskDecisionProvider,
87
+ contextIdentifierProvider: contextIdentifierProvider,
88
+ dataAttributes: dataAttributes,
89
+ onChange: function onChange(_, isChecked) {
90
+ dispatch(isChecked);
91
+ }
92
+ }, children);
93
+ })));
82
94
  });
83
95
  _this.providerFactory = props.providers || new _providerFactory.ProviderFactory();
84
96
  return _this;
@@ -217,7 +217,7 @@ var MediaCardInternal = /*#__PURE__*/function (_Component) {
217
217
 
218
218
  if (rendererContext && rendererContext.adDoc && !nodeIsInCache) {
219
219
  getListOfIdentifiersFromDoc(rendererContext.adDoc).forEach(function (identifier) {
220
- if (identifier.mediaItemType === 'file') {
220
+ if (identifier.mediaItemType === 'file' && identifier.id === id) {
221
221
  mediaIdentifierMap.set(identifier.id, _objectSpread(_objectSpread({}, identifier), {}, {
222
222
  collectionName: collectionName
223
223
  }));
@@ -63,8 +63,6 @@ var _analyticsContext = _interopRequireDefault(require("../../analytics/analytic
63
63
 
64
64
  var _SmartCardStorage = require("../SmartCardStorage");
65
65
 
66
- var _version = require("../../version.json");
67
-
68
66
  var _breakoutSsr = require("./breakout-ssr");
69
67
 
70
68
  var _RendererActionsContext = require("../RendererActionsContext");
@@ -103,6 +101,8 @@ var NORMAL_SEVERITY_THRESHOLD = 2000;
103
101
  exports.NORMAL_SEVERITY_THRESHOLD = NORMAL_SEVERITY_THRESHOLD;
104
102
  var DEGRADED_SEVERITY_THRESHOLD = 3000;
105
103
  exports.DEGRADED_SEVERITY_THRESHOLD = DEGRADED_SEVERITY_THRESHOLD;
104
+ var packageName = "@atlaskit/renderer";
105
+ var packageVersion = "101.0.0";
106
106
 
107
107
  var Renderer = /*#__PURE__*/function (_PureComponent) {
108
108
  (0, _inherits2.default)(Renderer, _PureComponent);
@@ -446,8 +446,8 @@ var RendererWithAnalytics = /*#__PURE__*/_react.default.memo(function (props) {
446
446
  return (0, _react2.jsx)(_analyticsNamespacedContext.FabricEditorAnalyticsContext, {
447
447
  data: {
448
448
  appearance: (0, _utils.getAnalyticsAppearance)(props.appearance),
449
- packageName: _version.name,
450
- packageVersion: _version.version,
449
+ packageName: packageName,
450
+ packageVersion: packageVersion,
451
451
  componentName: 'renderer',
452
452
  editorSessionId: (0, _v.default)()
453
453
  }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.TaskItemsFormatConsumer = TaskItemsFormatConsumer;
9
+ exports.TaskItemsFormatContext = void 0;
10
+ exports.TaskItemsFormatProvider = TaskItemsFormatProvider;
11
+ exports.useTaskItemsFormatContext = useTaskItemsFormatContext;
12
+
13
+ var _react = _interopRequireDefault(require("react"));
14
+
15
+ var defaultValue = [undefined, function () {}];
16
+
17
+ var TaskItemsFormatContext = /*#__PURE__*/_react.default.createContext(defaultValue);
18
+
19
+ exports.TaskItemsFormatContext = TaskItemsFormatContext;
20
+
21
+ var reducer = function reducer(_state, action) {
22
+ return action;
23
+ };
24
+
25
+ function TaskItemsFormatProvider(_ref) {
26
+ var children = _ref.children;
27
+
28
+ var value = _react.default.useReducer(reducer, undefined);
29
+
30
+ return /*#__PURE__*/_react.default.createElement(TaskItemsFormatContext.Provider, {
31
+ value: value
32
+ }, children);
33
+ }
34
+
35
+ function useTaskItemsFormatContext() {
36
+ return _react.default.useContext(TaskItemsFormatContext);
37
+ }
38
+
39
+ function TaskItemsFormatConsumer(_ref2) {
40
+ var children = _ref2.children;
41
+ return /*#__PURE__*/_react.default.createElement(TaskItemsFormatContext.Consumer, null, children);
42
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "TaskItemsFormatConsumer", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _TaskItemsFormatContext.TaskItemsFormatConsumer;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "TaskItemsFormatProvider", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _TaskItemsFormatContext.TaskItemsFormatProvider;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "useTaskItemsFormatContext", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _TaskItemsFormatContext.useTaskItemsFormatContext;
22
+ }
23
+ });
24
+
25
+ var _TaskItemsFormatContext = require("./TaskItemsFormatContext");
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/renderer",
3
- "version": "98.1.0",
3
+ "version": "101.0.0",
4
4
  "sideEffects": false
5
5
  }
@@ -3,16 +3,13 @@ import React from 'react';
3
3
  import { injectIntl } from 'react-intl-next';
4
4
  import AkCode from '@atlaskit/code/inline';
5
5
  import { codeBidiWarningMessages } from '@atlaskit/editor-common/messages';
6
- import { useFeatureFlags } from '../../use-feature-flags';
7
6
  export const isCodeMark = mark => {
8
7
  return mark && mark.type && mark.type.name === 'code';
9
8
  };
10
9
  export function CodeWithIntl(props) {
11
- const featureFlags = useFeatureFlags();
12
10
  const codeBidiWarningLabel = props.intl.formatMessage(codeBidiWarningMessages.label);
13
11
  return /*#__PURE__*/React.createElement(AkCode, _extends({
14
12
  className: "code",
15
- codeBidiWarnings: featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.codeBidiWarnings,
16
13
  codeBidiWarningLabel: codeBidiWarningLabel,
17
14
  codeBidiWarningTooltipEnabled: props.codeBidiWarningTooltipEnabled
18
15
  }, props.dataAttributes), props.children);
@@ -4,7 +4,6 @@ import { injectIntl } from 'react-intl-next';
4
4
  import { CodeBlockSharedCssClassName } from '@atlaskit/editor-common/styles';
5
5
  import { CodeBlock as AkCodeBlock } from '@atlaskit/code';
6
6
  import { codeBidiWarningMessages } from '@atlaskit/editor-common/messages';
7
- import { useFeatureFlags } from '../../../use-feature-flags';
8
7
  import CodeBlockContainer from './components/codeBlockContainer';
9
8
 
10
9
  function CodeBlock(props) {
@@ -14,7 +13,6 @@ function CodeBlock(props) {
14
13
  allowCopyToClipboard = false,
15
14
  codeBidiWarningTooltipEnabled
16
15
  } = props;
17
- const featureFlags = useFeatureFlags();
18
16
  const codeBidiWarningLabel = props.intl.formatMessage(codeBidiWarningMessages.label);
19
17
  const className = [CodeBlockSharedCssClassName.CODEBLOCK_CONTAINER, props.className].join(' ');
20
18
  return jsx(CodeBlockContainer, {
@@ -24,7 +22,6 @@ function CodeBlock(props) {
24
22
  }, jsx(AkCodeBlock, {
25
23
  language: language,
26
24
  text: text,
27
- codeBidiWarnings: featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.codeBidiWarnings,
28
25
  codeBidiWarningLabel: codeBidiWarningLabel,
29
26
  codeBidiWarningTooltipEnabled: codeBidiWarningTooltipEnabled
30
27
  }));
@@ -3,7 +3,6 @@ import { Fragment, memo } from 'react';
3
3
  import { lazy, Suspense } from 'react';
4
4
  import { jsx } from '@emotion/react';
5
5
  import { CodeBlockSharedCssClassName } from '@atlaskit/editor-common/styles';
6
- import { useFeatureFlags } from '../../../use-feature-flags';
7
6
  import { useInViewport } from '../../hooks/use-in-viewport';
8
7
  import { useBidiWarnings } from '../../hooks/use-bidi-warnings';
9
8
  import LightWeightCodeBlock from './components/lightWeightCodeBlock';
@@ -23,7 +22,6 @@ const WindowedCodeBlock = ({
23
22
  codeBidiWarningTooltipEnabled,
24
23
  className: rootClassName
25
24
  }) => {
26
- const featureFlags = useFeatureFlags();
27
25
  const {
28
26
  warningLabel
29
27
  } = useBidiWarnings({
@@ -49,7 +47,6 @@ const WindowedCodeBlock = ({
49
47
  }, jsx(LazyAkCodeBlock, {
50
48
  language: language,
51
49
  text: text,
52
- codeBidiWarnings: featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.codeBidiWarnings,
53
50
  codeBidiWarningLabel: warningLabel,
54
51
  codeBidiWarningTooltipEnabled: codeBidiWarningTooltipEnabled
55
52
  })))) : memoizedLightWeightCodeBlock;
@@ -1,8 +1,10 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
1
2
  import React from 'react';
2
3
  import { PureComponent } from 'react';
3
4
  import { DateSharedCssClassName } from '@atlaskit/editor-common/styles';
4
5
  import { isPastDate, timestampToString, timestampToTaskContext } from '@atlaskit/editor-common/utils';
5
6
  import { injectIntl } from 'react-intl-next';
7
+ import { useTaskItemsFormatContext } from '../../ui/TaskItemsFormatContext';
6
8
 
7
9
  class Date extends PureComponent {
8
10
  render() {
@@ -23,4 +25,19 @@ class Date extends PureComponent {
23
25
 
24
26
  }
25
27
 
26
- export default injectIntl(Date);
28
+ export const DateComponent = injectIntl(Date);
29
+
30
+ function DateWithFormatContext(props) {
31
+ const [isChecked] = useTaskItemsFormatContext();
32
+ let parentIsIncompleteTask = props.parentIsIncompleteTask;
33
+
34
+ if (typeof isChecked !== 'undefined') {
35
+ parentIsIncompleteTask = !isChecked;
36
+ }
37
+
38
+ return /*#__PURE__*/React.createElement(DateComponent, _extends({}, props, {
39
+ parentIsIncompleteTask: parentIsIncompleteTask
40
+ }));
41
+ }
42
+
43
+ export default DateWithFormatContext;
@@ -3,7 +3,8 @@ import _extends from "@babel/runtime/helpers/extends";
3
3
  /** @jsx jsx */
4
4
  import { css, jsx } from '@emotion/react';
5
5
  import { useMemo, useContext, useState, useRef } from 'react';
6
- import { Card, Context as CardContext, EmbedResizeMessageListener } from '@atlaskit/smart-card';
6
+ import { Card, EmbedResizeMessageListener } from '@atlaskit/smart-card';
7
+ import { SmartCardContext } from '@atlaskit/link-provider';
7
8
  import { WidthConsumer, UnsupportedBlock, MediaSingle as UIMediaSingle } from '@atlaskit/editor-common/ui';
8
9
  import { akEditorDefaultLayoutWidth, akEditorFullWidthLayoutWidth, DEFAULT_EMBED_CARD_HEIGHT, DEFAULT_EMBED_CARD_WIDTH } from '@atlaskit/editor-shared-styles';
9
10
  import { getPlatform } from '../../utils';
@@ -78,7 +79,7 @@ export default function EmbedCard(props) {
78
79
 
79
80
  const padding = rendererAppearance === 'full-page' ? FullPagePadding * 2 : 0;
80
81
  const [hasPreview, setPreviewAvailableState] = useState(true);
81
- const cardContext = useContext(CardContext);
82
+ const cardContext = useContext(SmartCardContext);
82
83
 
83
84
  const onResolve = ({
84
85
  aspectRatio: resolvedAspectRatio
@@ -4,6 +4,7 @@ import { PureComponent } from 'react';
4
4
  import { ProviderFactory, WithProviders } from '@atlaskit/editor-common/provider-factory';
5
5
  import TaskItemWithProviders from './task-item-with-providers';
6
6
  import { FabricElementsAnalyticsContext } from '@atlaskit/analytics-namespaced-context';
7
+ import { TaskItemsFormatProvider, TaskItemsFormatConsumer } from '../../ui/TaskItemsFormatContext';
7
8
  export default class TaskItem extends PureComponent {
8
9
  constructor(props) {
9
10
  super(props);
@@ -31,7 +32,7 @@ export default class TaskItem extends PureComponent {
31
32
  data: {
32
33
  userContext: 'document'
33
34
  }
34
- }, /*#__PURE__*/React.createElement(TaskItemWithProviders, {
35
+ }, /*#__PURE__*/React.createElement(TaskItemsFormatProvider, null, /*#__PURE__*/React.createElement(TaskItemsFormatConsumer, null, ([, dispatch]) => /*#__PURE__*/React.createElement(TaskItemWithProviders, {
35
36
  objectAri: objectAri,
36
37
  taskId: localId,
37
38
  isDone: state === 'DONE',
@@ -39,8 +40,11 @@ export default class TaskItem extends PureComponent {
39
40
  disabled: disabled,
40
41
  taskDecisionProvider: taskDecisionProvider,
41
42
  contextIdentifierProvider: contextIdentifierProvider,
42
- dataAttributes: dataAttributes
43
- }, children));
43
+ dataAttributes: dataAttributes,
44
+ onChange: (_, isChecked) => {
45
+ dispatch(isChecked);
46
+ }
47
+ }, children))));
44
48
  });
45
49
 
46
50
  this.providerFactory = props.providers || new ProviderFactory();
@@ -115,7 +115,7 @@ export class MediaCardInternal extends Component {
115
115
 
116
116
  if (rendererContext && rendererContext.adDoc && !nodeIsInCache) {
117
117
  getListOfIdentifiersFromDoc(rendererContext.adDoc).forEach(identifier => {
118
- if (identifier.mediaItemType === 'file') {
118
+ if (identifier.mediaItemType === 'file' && identifier.id === id) {
119
119
  mediaIdentifierMap.set(identifier.id, { ...identifier,
120
120
  collectionName
121
121
  });
@@ -22,7 +22,6 @@ import { ACTION, ACTION_SUBJECT, EVENT_TYPE } from '../../analytics/enums';
22
22
  import { PLATFORM, MODE } from '../../analytics/events';
23
23
  import AnalyticsContext from '../../analytics/analyticsContext';
24
24
  import { Provider as SmartCardStorageProvider } from '../SmartCardStorage';
25
- import { name, version } from '../../version.json';
26
25
  import { BreakoutSSRInlineScript } from './breakout-ssr';
27
26
  import { RendererActionsContext, RendererContext as ActionsContext } from '../RendererActionsContext';
28
27
  import { ActiveHeaderIdProvider } from '../active-header-id-provider';
@@ -36,6 +35,8 @@ import { ErrorBoundary } from './ErrorBoundary';
36
35
  import { RenderTracking } from '../../react/utils/performance/RenderTracking';
37
36
  export const NORMAL_SEVERITY_THRESHOLD = 2000;
38
37
  export const DEGRADED_SEVERITY_THRESHOLD = 3000;
38
+ const packageName = "@atlaskit/renderer";
39
+ const packageVersion = "101.0.0";
39
40
  export class Renderer extends PureComponent {
40
41
  constructor(props) {
41
42
  super(props);
@@ -364,8 +365,8 @@ export class Renderer extends PureComponent {
364
365
  const RendererWithAnalytics = /*#__PURE__*/React.memo(props => jsx(FabricEditorAnalyticsContext, {
365
366
  data: {
366
367
  appearance: getAnalyticsAppearance(props.appearance),
367
- packageName: name,
368
- packageVersion: version,
368
+ packageName,
369
+ packageVersion,
369
370
  componentName: 'renderer',
370
371
  editorSessionId: uuid()
371
372
  }
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ const defaultValue = [undefined, () => {}];
3
+ export const TaskItemsFormatContext = /*#__PURE__*/React.createContext(defaultValue);
4
+
5
+ const reducer = (_state, action) => {
6
+ return action;
7
+ };
8
+
9
+ export function TaskItemsFormatProvider({
10
+ children
11
+ }) {
12
+ const value = React.useReducer(reducer, undefined);
13
+ return /*#__PURE__*/React.createElement(TaskItemsFormatContext.Provider, {
14
+ value: value
15
+ }, children);
16
+ }
17
+ export function useTaskItemsFormatContext() {
18
+ return React.useContext(TaskItemsFormatContext);
19
+ }
20
+ export function TaskItemsFormatConsumer({
21
+ children
22
+ }) {
23
+ return /*#__PURE__*/React.createElement(TaskItemsFormatContext.Consumer, null, children);
24
+ }
@@ -0,0 +1 @@
1
+ export { TaskItemsFormatProvider, TaskItemsFormatConsumer, useTaskItemsFormatContext } from './TaskItemsFormatContext';
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/renderer",
3
- "version": "98.1.0",
3
+ "version": "101.0.0",
4
4
  "sideEffects": false
5
5
  }
@@ -3,16 +3,13 @@ import React from 'react';
3
3
  import { injectIntl } from 'react-intl-next';
4
4
  import AkCode from '@atlaskit/code/inline';
5
5
  import { codeBidiWarningMessages } from '@atlaskit/editor-common/messages';
6
- import { useFeatureFlags } from '../../use-feature-flags';
7
6
  export var isCodeMark = function isCodeMark(mark) {
8
7
  return mark && mark.type && mark.type.name === 'code';
9
8
  };
10
9
  export function CodeWithIntl(props) {
11
- var featureFlags = useFeatureFlags();
12
10
  var codeBidiWarningLabel = props.intl.formatMessage(codeBidiWarningMessages.label);
13
11
  return /*#__PURE__*/React.createElement(AkCode, _extends({
14
12
  className: "code",
15
- codeBidiWarnings: featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.codeBidiWarnings,
16
13
  codeBidiWarningLabel: codeBidiWarningLabel,
17
14
  codeBidiWarningTooltipEnabled: props.codeBidiWarningTooltipEnabled
18
15
  }, props.dataAttributes), props.children);
@@ -4,7 +4,6 @@ import { injectIntl } from 'react-intl-next';
4
4
  import { CodeBlockSharedCssClassName } from '@atlaskit/editor-common/styles';
5
5
  import { CodeBlock as AkCodeBlock } from '@atlaskit/code';
6
6
  import { codeBidiWarningMessages } from '@atlaskit/editor-common/messages';
7
- import { useFeatureFlags } from '../../../use-feature-flags';
8
7
  import CodeBlockContainer from './components/codeBlockContainer';
9
8
 
10
9
  function CodeBlock(props) {
@@ -13,7 +12,6 @@ function CodeBlock(props) {
13
12
  _props$allowCopyToCli = props.allowCopyToClipboard,
14
13
  allowCopyToClipboard = _props$allowCopyToCli === void 0 ? false : _props$allowCopyToCli,
15
14
  codeBidiWarningTooltipEnabled = props.codeBidiWarningTooltipEnabled;
16
- var featureFlags = useFeatureFlags();
17
15
  var codeBidiWarningLabel = props.intl.formatMessage(codeBidiWarningMessages.label);
18
16
  var className = [CodeBlockSharedCssClassName.CODEBLOCK_CONTAINER, props.className].join(' ');
19
17
  return jsx(CodeBlockContainer, {
@@ -23,7 +21,6 @@ function CodeBlock(props) {
23
21
  }, jsx(AkCodeBlock, {
24
22
  language: language,
25
23
  text: text,
26
- codeBidiWarnings: featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.codeBidiWarnings,
27
24
  codeBidiWarningLabel: codeBidiWarningLabel,
28
25
  codeBidiWarningTooltipEnabled: codeBidiWarningTooltipEnabled
29
26
  }));
@@ -6,7 +6,6 @@ import { Fragment, memo } from 'react';
6
6
  import { lazy, Suspense } from 'react';
7
7
  import { jsx } from '@emotion/react';
8
8
  import { CodeBlockSharedCssClassName } from '@atlaskit/editor-common/styles';
9
- import { useFeatureFlags } from '../../../use-feature-flags';
10
9
  import { useInViewport } from '../../hooks/use-in-viewport';
11
10
  import { useBidiWarnings } from '../../hooks/use-bidi-warnings';
12
11
  import LightWeightCodeBlock from './components/lightWeightCodeBlock';
@@ -44,7 +43,6 @@ var WindowedCodeBlock = function WindowedCodeBlock(_ref2) {
44
43
  allowCopyToClipboard = _ref2.allowCopyToClipboard,
45
44
  codeBidiWarningTooltipEnabled = _ref2.codeBidiWarningTooltipEnabled,
46
45
  rootClassName = _ref2.className;
47
- var featureFlags = useFeatureFlags();
48
46
 
49
47
  var _useBidiWarnings = useBidiWarnings({
50
48
  enableWarningTooltip: codeBidiWarningTooltipEnabled
@@ -71,7 +69,6 @@ var WindowedCodeBlock = function WindowedCodeBlock(_ref2) {
71
69
  }, jsx(LazyAkCodeBlock, {
72
70
  language: language,
73
71
  text: text,
74
- codeBidiWarnings: featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.codeBidiWarnings,
75
72
  codeBidiWarningLabel: warningLabel,
76
73
  codeBidiWarningTooltipEnabled: codeBidiWarningTooltipEnabled
77
74
  })))) : memoizedLightWeightCodeBlock;
@@ -1,3 +1,5 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
1
3
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
4
  import _createClass from "@babel/runtime/helpers/createClass";
3
5
  import _inherits from "@babel/runtime/helpers/inherits";
@@ -13,6 +15,7 @@ import { PureComponent } from 'react';
13
15
  import { DateSharedCssClassName } from '@atlaskit/editor-common/styles';
14
16
  import { isPastDate, timestampToString, timestampToTaskContext } from '@atlaskit/editor-common/utils';
15
17
  import { injectIntl } from 'react-intl-next';
18
+ import { useTaskItemsFormatContext } from '../../ui/TaskItemsFormatContext';
16
19
 
17
20
  var Date = /*#__PURE__*/function (_PureComponent) {
18
21
  _inherits(Date, _PureComponent);
@@ -46,4 +49,22 @@ var Date = /*#__PURE__*/function (_PureComponent) {
46
49
  return Date;
47
50
  }(PureComponent);
48
51
 
49
- export default injectIntl(Date);
52
+ export var DateComponent = injectIntl(Date);
53
+
54
+ function DateWithFormatContext(props) {
55
+ var _useTaskItemsFormatCo = useTaskItemsFormatContext(),
56
+ _useTaskItemsFormatCo2 = _slicedToArray(_useTaskItemsFormatCo, 1),
57
+ isChecked = _useTaskItemsFormatCo2[0];
58
+
59
+ var parentIsIncompleteTask = props.parentIsIncompleteTask;
60
+
61
+ if (typeof isChecked !== 'undefined') {
62
+ parentIsIncompleteTask = !isChecked;
63
+ }
64
+
65
+ return /*#__PURE__*/React.createElement(DateComponent, _extends({}, props, {
66
+ parentIsIncompleteTask: parentIsIncompleteTask
67
+ }));
68
+ }
69
+
70
+ export default DateWithFormatContext;
@@ -7,7 +7,8 @@ var _templateObject, _templateObject2;
7
7
  /** @jsx jsx */
8
8
  import { css, jsx } from '@emotion/react';
9
9
  import { useMemo, useContext, useState, useRef } from 'react';
10
- import { Card, Context as CardContext, EmbedResizeMessageListener } from '@atlaskit/smart-card';
10
+ import { Card, EmbedResizeMessageListener } from '@atlaskit/smart-card';
11
+ import { SmartCardContext } from '@atlaskit/link-provider';
11
12
  import { WidthConsumer, UnsupportedBlock, MediaSingle as UIMediaSingle } from '@atlaskit/editor-common/ui';
12
13
  import { akEditorDefaultLayoutWidth, akEditorFullWidthLayoutWidth, DEFAULT_EMBED_CARD_HEIGHT, DEFAULT_EMBED_CARD_WIDTH } from '@atlaskit/editor-shared-styles';
13
14
  import { getPlatform } from '../../utils';
@@ -80,7 +81,7 @@ export default function EmbedCard(props) {
80
81
  hasPreview = _useState6[0],
81
82
  setPreviewAvailableState = _useState6[1];
82
83
 
83
- var cardContext = useContext(CardContext);
84
+ var cardContext = useContext(SmartCardContext);
84
85
 
85
86
  var onResolve = function onResolve(_ref) {
86
87
  var resolvedAspectRatio = _ref.aspectRatio;
@@ -1,3 +1,4 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
1
2
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
3
  import _createClass from "@babel/runtime/helpers/createClass";
3
4
  import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
@@ -15,6 +16,7 @@ import { PureComponent } from 'react';
15
16
  import { ProviderFactory, WithProviders } from '@atlaskit/editor-common/provider-factory';
16
17
  import TaskItemWithProviders from './task-item-with-providers';
17
18
  import { FabricElementsAnalyticsContext } from '@atlaskit/analytics-namespaced-context';
19
+ import { TaskItemsFormatProvider, TaskItemsFormatConsumer } from '../../ui/TaskItemsFormatContext';
18
20
 
19
21
  var TaskItem = /*#__PURE__*/function (_PureComponent) {
20
22
  _inherits(TaskItem, _PureComponent);
@@ -48,16 +50,24 @@ var TaskItem = /*#__PURE__*/function (_PureComponent) {
48
50
  data: {
49
51
  userContext: 'document'
50
52
  }
51
- }, /*#__PURE__*/React.createElement(TaskItemWithProviders, {
52
- objectAri: objectAri,
53
- taskId: localId,
54
- isDone: state === 'DONE',
55
- isRenderer: true,
56
- disabled: disabled,
57
- taskDecisionProvider: taskDecisionProvider,
58
- contextIdentifierProvider: contextIdentifierProvider,
59
- dataAttributes: dataAttributes
60
- }, children));
53
+ }, /*#__PURE__*/React.createElement(TaskItemsFormatProvider, null, /*#__PURE__*/React.createElement(TaskItemsFormatConsumer, null, function (_ref) {
54
+ var _ref2 = _slicedToArray(_ref, 2),
55
+ dispatch = _ref2[1];
56
+
57
+ return /*#__PURE__*/React.createElement(TaskItemWithProviders, {
58
+ objectAri: objectAri,
59
+ taskId: localId,
60
+ isDone: state === 'DONE',
61
+ isRenderer: true,
62
+ disabled: disabled,
63
+ taskDecisionProvider: taskDecisionProvider,
64
+ contextIdentifierProvider: contextIdentifierProvider,
65
+ dataAttributes: dataAttributes,
66
+ onChange: function onChange(_, isChecked) {
67
+ dispatch(isChecked);
68
+ }
69
+ }, children);
70
+ })));
61
71
  });
62
72
 
63
73
  _this.providerFactory = props.providers || new ProviderFactory();
@@ -191,7 +191,7 @@ export var MediaCardInternal = /*#__PURE__*/function (_Component) {
191
191
 
192
192
  if (rendererContext && rendererContext.adDoc && !nodeIsInCache) {
193
193
  getListOfIdentifiersFromDoc(rendererContext.adDoc).forEach(function (identifier) {
194
- if (identifier.mediaItemType === 'file') {
194
+ if (identifier.mediaItemType === 'file' && identifier.id === id) {
195
195
  mediaIdentifierMap.set(identifier.id, _objectSpread(_objectSpread({}, identifier), {}, {
196
196
  collectionName: collectionName
197
197
  }));
@@ -36,7 +36,6 @@ import { ACTION, ACTION_SUBJECT, EVENT_TYPE } from '../../analytics/enums';
36
36
  import { PLATFORM, MODE } from '../../analytics/events';
37
37
  import AnalyticsContext from '../../analytics/analyticsContext';
38
38
  import { Provider as SmartCardStorageProvider } from '../SmartCardStorage';
39
- import { name, version } from '../../version.json';
40
39
  import { BreakoutSSRInlineScript } from './breakout-ssr';
41
40
  import { RendererActionsContext, RendererContext as ActionsContext } from '../RendererActionsContext';
42
41
  import { ActiveHeaderIdProvider } from '../active-header-id-provider';
@@ -50,6 +49,8 @@ import { ErrorBoundary } from './ErrorBoundary';
50
49
  import { RenderTracking } from '../../react/utils/performance/RenderTracking';
51
50
  export var NORMAL_SEVERITY_THRESHOLD = 2000;
52
51
  export var DEGRADED_SEVERITY_THRESHOLD = 3000;
52
+ var packageName = "@atlaskit/renderer";
53
+ var packageVersion = "101.0.0";
53
54
  export var Renderer = /*#__PURE__*/function (_PureComponent) {
54
55
  _inherits(Renderer, _PureComponent);
55
56
 
@@ -396,8 +397,8 @@ var RendererWithAnalytics = /*#__PURE__*/React.memo(function (props) {
396
397
  return jsx(FabricEditorAnalyticsContext, {
397
398
  data: {
398
399
  appearance: getAnalyticsAppearance(props.appearance),
399
- packageName: name,
400
- packageVersion: version,
400
+ packageName: packageName,
401
+ packageVersion: packageVersion,
401
402
  componentName: 'renderer',
402
403
  editorSessionId: uuid()
403
404
  }
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ var defaultValue = [undefined, function () {}];
3
+ export var TaskItemsFormatContext = /*#__PURE__*/React.createContext(defaultValue);
4
+
5
+ var reducer = function reducer(_state, action) {
6
+ return action;
7
+ };
8
+
9
+ export function TaskItemsFormatProvider(_ref) {
10
+ var children = _ref.children;
11
+ var value = React.useReducer(reducer, undefined);
12
+ return /*#__PURE__*/React.createElement(TaskItemsFormatContext.Provider, {
13
+ value: value
14
+ }, children);
15
+ }
16
+ export function useTaskItemsFormatContext() {
17
+ return React.useContext(TaskItemsFormatContext);
18
+ }
19
+ export function TaskItemsFormatConsumer(_ref2) {
20
+ var children = _ref2.children;
21
+ return /*#__PURE__*/React.createElement(TaskItemsFormatContext.Consumer, null, children);
22
+ }
@@ -0,0 +1 @@
1
+ export { TaskItemsFormatProvider, TaskItemsFormatConsumer, useTaskItemsFormatContext } from './TaskItemsFormatContext';
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/renderer",
3
- "version": "98.1.0",
3
+ "version": "101.0.0",
4
4
  "sideEffects": false
5
5
  }
@@ -4,7 +4,8 @@ export interface Props {
4
4
  timestamp: string;
5
5
  parentIsIncompleteTask?: boolean;
6
6
  }
7
- declare const _default: React.FC<import("react-intl-next").WithIntlProps<Props & WrappedComponentProps<"intl">>> & {
7
+ export declare const DateComponent: React.FC<import("react-intl-next").WithIntlProps<Props & WrappedComponentProps<"intl">>> & {
8
8
  WrappedComponent: React.ComponentType<Props & WrappedComponentProps<"intl">>;
9
9
  };
10
- export default _default;
10
+ declare function DateWithFormatContext(props: Props): JSX.Element;
11
+ export default DateWithFormatContext;
@@ -28,7 +28,7 @@ declare const TaskList: React.ComponentType<import("./taskList").Props> & Loadab
28
28
  declare const TaskItem: React.ComponentType<import("../types").NodeProps<import("./taskItem").Props>> & Loadable.LoadableComponent;
29
29
  declare const DecisionList: React.ComponentType<import("./decisionList").Props> & Loadable.LoadableComponent;
30
30
  declare const DecisionItem: React.ComponentType<import("../types").NodeMeta> & Loadable.LoadableComponent;
31
- declare const Date: React.ComponentType<import("react-intl-next").WithIntlProps<import("./date").Props & import("react-intl-next").WrappedComponentProps<"intl">>> & Loadable.LoadableComponent;
31
+ declare const Date: React.ComponentType<import("./date").Props> & Loadable.LoadableComponent;
32
32
  declare const Status: React.ComponentType<import("./status").Props> & Loadable.LoadableComponent;
33
33
  declare const Emoji: React.ComponentType<import("./emoji").EmojiProps> & Loadable.LoadableComponent;
34
34
  declare const Panel: React.ComponentType<import("./panel").Props> & Loadable.LoadableComponent;
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
2
  export declare type FeatureFlags = {
3
- codeBidiWarnings?: boolean;
4
3
  showHoverPreview?: boolean;
5
4
  };
6
5
  export declare type RendererContextProps = {
@@ -0,0 +1,15 @@
1
+ import React, { ReactNode } from 'react';
2
+ export declare type TaskItemsDone = boolean | undefined;
3
+ export declare type TaskItemsStateContext = [
4
+ TaskItemsDone,
5
+ React.Dispatch<TaskItemsFormatReducerAction>
6
+ ];
7
+ export declare const TaskItemsFormatContext: React.Context<TaskItemsStateContext>;
8
+ export declare type TaskItemsFormatReducerAction = boolean | undefined;
9
+ export declare function TaskItemsFormatProvider({ children }: {
10
+ children: ReactNode;
11
+ }): JSX.Element;
12
+ export declare function useTaskItemsFormatContext(): TaskItemsStateContext;
13
+ export declare function TaskItemsFormatConsumer({ children, }: {
14
+ children: ([isChecked, dispatch]: TaskItemsStateContext) => ReactNode;
15
+ }): JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { TaskItemsFormatProvider, TaskItemsFormatConsumer, useTaskItemsFormatContext, } from './TaskItemsFormatContext';
2
+ export type { TaskItemsDone, TaskItemsFormatReducerAction, } from './TaskItemsFormatContext';
@@ -39,8 +39,6 @@ export interface RendererProps {
39
39
  adfStage?: ADFStage;
40
40
  disableHeadingIDs?: boolean;
41
41
  disableActions?: boolean;
42
- /** @deprecated [ED-14507] allowDynamicTextSizing is no longer in use */
43
- allowDynamicTextSizing?: boolean;
44
42
  allowHeadingAnchorLinks?: HeadingAnchorLinksProps;
45
43
  allowPlaceholderText?: boolean;
46
44
  maxHeight?: number;
package/docs/0-intro.tsx CHANGED
@@ -31,6 +31,73 @@ ${(
31
31
  />
32
32
  )}
33
33
 
34
+ ## Best practices to prevent performance issues
35
+
36
+ ### Avoid unnecessary props changes
37
+
38
+ As any React component, if props change then it will likely result in a re-render.
39
+
40
+ Unnecessary props changes will trigger component reconciliation and potential re-renders. This has caused render performance degradation for Editor and Renderer components in the past.
41
+
42
+ Some common examples of props causing re-renders:
43
+
44
+ ${code`
45
+
46
+ // ❌ function returns new object each time
47
+ getEventHandlers = () => ({
48
+ ...defaultHandlers,
49
+ newHander: () => { ... }
50
+ });
51
+
52
+ // ❌ creates new function each time
53
+ onRenderComplete = () => {
54
+ // ...
55
+ }
56
+
57
+ return (
58
+ <ReactRenderer
59
+ // ❌ passes new object each time
60
+ media={{
61
+ allowLinking: true,
62
+ }}
63
+ // ❌ called function returns new object each time
64
+ eventHandlers={this.getEventHandlers()}
65
+ // ❌ passes new function each time
66
+ onComplete={onRenderComplete}
67
+ // ❌ creates a new function each time
68
+ onError={() => { ... }}
69
+ //...
70
+ />);
71
+ `}
72
+
73
+ Most of these can be generally avoided by following these best practices:
74
+ - extracting static objects to module level constants
75
+ - avoid passing brand new objects and anonymous functions as props upon every render
76
+ - memoising props via helpers like [useMemo()](https://reactjs.org/docs/hooks-reference.html#usememo)
77
+ - use [useCallback()](https://reactjs.org/docs/hooks-reference.html#usecallback) for callbacks where applicable
78
+
79
+ ### Other best practices for React
80
+
81
+ Consider using [windowing techniques](https://reactjs.org/docs/optimizing-performance.html#virtualize-long-lists) if possible when rendering many Renderers (eg. viewing comments).
82
+
83
+ For Renderer it is important to avoid [redundant reconciliation](https://reactjs.org/docs/optimizing-performance.html#avoid-reconciliation) as it can involve rendering many nested React components, depending on the document structure.
84
+
85
+ Check out the React docs for more examples of [optimizations](https://reactjs.org/docs/hooks-faq.html#performance-optimizations).
86
+
87
+ ### Avoid duplicated dependencies
88
+
89
+ Ensure you have only have *one* version of Renderer sub-dependencies (adf-schema, editor-common, prosemirror-model, etc) in your output bundles.
90
+
91
+ This has caused bugs and crashes on production in the past.
92
+
93
+ The issue can be avoided by running de-duplication on the lock file or using resolutions for yarn/overrides for npm on the package.json.
94
+
95
+ ### Use correct peer dependencies
96
+
97
+ Make sure to use correct peer dependencies versions!
98
+
99
+ For example, using newer versions of React or react-dom can cause unexpected issues with Renderer.
100
+
34
101
  ## Using transformers with the renderer
35
102
  You will need to use a transformer to convert your own storage format into the ADF before you pass it to the renderer.
36
103
  We have provided helper utility to simplify this process:
@@ -64,9 +131,9 @@ ReactDOM.render(<ReactRenderer document={DOCUMENT} truncated={true} maxHeight={7
64
131
 
65
132
  ${(
66
133
  <Example
67
- Component={require('../examples/15-truncated.tsx').default}
134
+ Component={require('../examples/15-truncated').default}
68
135
  title="Truncated"
69
- source={require('!!raw-loader!../examples/15-truncated.tsx')}
136
+ source={require('!!raw-loader!../examples/15-truncated')}
70
137
  />
71
138
  )}
72
139
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/renderer",
3
- "version": "98.1.0",
3
+ "version": "101.0.0",
4
4
  "description": "Renderer component",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -24,23 +24,24 @@
24
24
  }
25
25
  },
26
26
  "dependencies": {
27
- "@atlaskit/adf-schema": "^23.2.0",
27
+ "@atlaskit/adf-schema": "^23.3.0",
28
28
  "@atlaskit/adf-utils": "^17.1.0",
29
29
  "@atlaskit/analytics-listeners": "^8.3.0",
30
30
  "@atlaskit/analytics-namespaced-context": "^6.5.0",
31
31
  "@atlaskit/analytics-next": "^8.2.0",
32
32
  "@atlaskit/button": "^16.3.0",
33
33
  "@atlaskit/code": "^14.3.0",
34
- "@atlaskit/editor-common": "^69.0.0",
34
+ "@atlaskit/editor-common": "^69.1.0",
35
35
  "@atlaskit/editor-json-transformer": "^8.7.0",
36
36
  "@atlaskit/editor-shared-styles": "^2.1.0",
37
37
  "@atlaskit/icon": "^21.10.0",
38
- "@atlaskit/media-card": "^74.0.0",
38
+ "@atlaskit/media-card": "^74.1.0",
39
39
  "@atlaskit/media-client": "^17.1.0",
40
- "@atlaskit/media-common": "^2.15.0",
40
+ "@atlaskit/media-common": "^2.16.0",
41
41
  "@atlaskit/media-filmstrip": "^45.0.0",
42
42
  "@atlaskit/media-ui": "^22.1.0",
43
43
  "@atlaskit/media-viewer": "^47.0.0",
44
+ "@atlaskit/smart-card": "^21.0.0",
44
45
  "@atlaskit/status": "^1.1.0",
45
46
  "@atlaskit/task-decision": "^17.4.0",
46
47
  "@atlaskit/theme": "^12.1.0",
@@ -58,8 +59,8 @@
58
59
  "uuid": "^3.1.0"
59
60
  },
60
61
  "peerDependencies": {
62
+ "@atlaskit/link-provider": "^1.0.0",
61
63
  "@atlaskit/media-core": "^33.0.1",
62
- "@atlaskit/smart-card": "^20.0.3",
63
64
  "react": "^16.8.0",
64
65
  "react-dom": "^16.8.0",
65
66
  "styled-components": "^3.2.6"
@@ -69,20 +70,20 @@
69
70
  "@atlaskit/avatar": "^21.0.0",
70
71
  "@atlaskit/css-reset": "^6.3.0",
71
72
  "@atlaskit/docs": "*",
72
- "@atlaskit/editor-core": "^169.1.0",
73
+ "@atlaskit/editor-core": "^172.0.0",
73
74
  "@atlaskit/editor-test-helpers": "^17.1.0",
75
+ "@atlaskit/link-provider": "^1.0.0",
74
76
  "@atlaskit/logo": "^13.8.0",
75
77
  "@atlaskit/media-core": "^33.0.0",
76
78
  "@atlaskit/media-integration-test-helpers": "^2.6.0",
77
79
  "@atlaskit/media-test-helpers": "^30.0.0",
78
80
  "@atlaskit/mention": "^21.0.0",
79
81
  "@atlaskit/navigation-next": "^9.0.0",
80
- "@atlaskit/profilecard": "^16.10.0",
82
+ "@atlaskit/profilecard": "^16.11.0",
81
83
  "@atlaskit/radio": "^5.3.0",
82
84
  "@atlaskit/range": "^6.0.0",
83
- "@atlaskit/smart-card": "^20.0.0",
84
85
  "@atlaskit/ssr": "*",
85
- "@atlaskit/util-data-test": "^17.4.0",
86
+ "@atlaskit/util-data-test": "^17.5.0",
86
87
  "@atlaskit/visual-regression": "*",
87
88
  "@atlaskit/webdriver-runner": "*",
88
89
  "@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",