UNPKG

@atlaskit/renderer

Version:
106 lines (104 loc) 6.48 kB
"use strict"; var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.AnnotationsWrapperInner = exports.AnnotationsWrapper = exports.AnnotationsPositionContext = void 0; var _react = _interopRequireWildcard(require("react")); var _adfSchema = require("@atlaskit/adf-schema"); var _view = require("./view"); var _wrapper = require("./wrapper"); var _context = require("./context"); var _useLoadAnnotations = require("./hooks/use-load-annotations"); var _useEvents = require("./hooks/use-events"); var _analyticsNext = require("@atlaskit/analytics-next"); var _AnnotationRangeContext = require("./contexts/AnnotationRangeContext"); var _AnnotationHoverContext = require("./contexts/AnnotationHoverContext"); var _AnnotationManagerContext = require("./contexts/AnnotationManagerContext"); 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); } var LoadAnnotations = /*#__PURE__*/_react.default.memo(function (_ref) { var adfDocument = _ref.adfDocument, isNestedRender = _ref.isNestedRender, onLoadComplete = _ref.onLoadComplete; (0, _useLoadAnnotations.useLoadAnnotations)({ adfDocument: adfDocument, isNestedRender: isNestedRender, onLoadComplete: onLoadComplete }); return null; }); // This is used by renderers when setting the data-start-pos attribute on commentable nodes // By default it is 1 (the possible starting position of any document). // The bodied extension component then sets a new value for this context based on its on position // in the document. var AnnotationsPositionContext = exports.AnnotationsPositionContext = /*#__PURE__*/_react.default.createContext({ startPos: 1 }); var AnnotationsWrapperInner = exports.AnnotationsWrapperInner = function AnnotationsWrapperInner(props) { var _providers$inlineComm, _providers$inlineComm2; var children = props.children, rendererRef = props.rendererRef, adfDocument = props.adfDocument, isNestedRender = props.isNestedRender, onLoadComplete = props.onLoadComplete; var providers = (0, _react.useContext)(_context.ProvidersContext); var updateSubscriber = providers && providers.inlineComment && providers.inlineComment.updateSubscriber; var inlineCommentAnnotationsState = (0, _useEvents.useAnnotationStateByTypeEvent)({ type: _adfSchema.AnnotationTypes.INLINE_COMMENT, updateSubscriber: updateSubscriber || null }); var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(), createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent; return /*#__PURE__*/_react.default.createElement(_context.InlineCommentsStateContext.Provider, { value: inlineCommentAnnotationsState }, /*#__PURE__*/_react.default.createElement(_AnnotationRangeContext.AnnotationRangeProvider, { allowCommentsOnMedia: (_providers$inlineComm = providers === null || providers === void 0 || (_providers$inlineComm2 = providers.inlineComment) === null || _providers$inlineComm2 === void 0 ? void 0 : _providers$inlineComm2.allowCommentsOnMedia) !== null && _providers$inlineComm !== void 0 ? _providers$inlineComm : false, isNestedRender: isNestedRender }, /*#__PURE__*/_react.default.createElement(_AnnotationHoverContext.AnnotationHoverContext, null, /*#__PURE__*/_react.default.createElement(_wrapper.AnnotationsContextWrapper, { createAnalyticsEvent: createAnalyticsEvent, rendererRef: rendererRef, isNestedRender: isNestedRender }, /*#__PURE__*/_react.default.createElement(LoadAnnotations, { adfDocument: adfDocument, isNestedRender: isNestedRender, onLoadComplete: onLoadComplete }), /*#__PURE__*/_react.default.createElement(_view.AnnotationView, { isNestedRender: isNestedRender, createAnalyticsEvent: createAnalyticsEvent }), children)))); }; var AnnotationsWrapper = exports.AnnotationsWrapper = function AnnotationsWrapper(props) { var children = props.children, annotationProvider = props.annotationProvider, rendererRef = props.rendererRef, adfDocument = props.adfDocument, isNestedRender = props.isNestedRender, onLoadComplete = props.onLoadComplete; if (!isNestedRender && annotationProvider !== null && annotationProvider !== void 0 && annotationProvider.annotationManager) { var _annotationProvider$i, _annotationProvider$i2; // We need to ensure there is a single instance of the annotation manager for the whole document // and that it is the same instance for all annotations. // This is because the annotation manager is responsible for managing the state of ALL annotations. // This includes annotations inside extensions. return /*#__PURE__*/_react.default.createElement(_context.ProvidersContext.Provider, { value: annotationProvider }, /*#__PURE__*/_react.default.createElement(_AnnotationManagerContext.AnnotationManagerProvider, { annotationManager: annotationProvider.annotationManager, updateSubscriber: (_annotationProvider$i = annotationProvider === null || annotationProvider === void 0 || (_annotationProvider$i2 = annotationProvider.inlineComment) === null || _annotationProvider$i2 === void 0 ? void 0 : _annotationProvider$i2.updateSubscriber) !== null && _annotationProvider$i !== void 0 ? _annotationProvider$i : undefined }, /*#__PURE__*/_react.default.createElement(AnnotationsWrapperInner, { rendererRef: rendererRef, adfDocument: adfDocument, isNestedRender: isNestedRender, onLoadComplete: onLoadComplete }, children))); } else { return /*#__PURE__*/_react.default.createElement(_context.ProvidersContext.Provider, { value: annotationProvider }, /*#__PURE__*/_react.default.createElement(AnnotationsWrapperInner, { rendererRef: rendererRef, adfDocument: adfDocument, isNestedRender: isNestedRender, onLoadComplete: onLoadComplete }, children)); } };