UNPKG

@atlaskit/editor-common

Version:

A package that contains common classes and components for editor and renderer

59 lines 2.06 kB
import _defineProperty from "@babel/runtime/helpers/defineProperty"; /* eslint-disable @repo/internal/react/no-class-components */ import React, { PureComponent } from 'react'; import { fg } from '@atlaskit/platform-feature-flags'; import { ProviderFactory, WithProviders } from '../../provider-factory'; import { MentionWithProviders, MentionWithProvidersOld } from './mention-with-providers'; export default class Mention extends PureComponent { constructor(props) { super(props); _defineProperty(this, "renderWithProvider", providers => { const { accessLevel, eventHandlers, id, text, localId } = this.props; const { mentionProvider, profilecardProvider } = providers; if (fg('platform_editor_react18_mention_with_provider_fix')) { return /*#__PURE__*/React.createElement(MentionWithProviders, { id: id, text: text, accessLevel: accessLevel, localId: localId, eventHandlers: eventHandlers, mentionProvider: mentionProvider, profilecardProvider: profilecardProvider }); } return /*#__PURE__*/React.createElement(MentionWithProvidersOld, { id: id, text: text, accessLevel: accessLevel, localId: localId, eventHandlers: eventHandlers, mentionProvider: mentionProvider, profilecardProvider: profilecardProvider }); }); this.providerFactory = props.providers || new ProviderFactory(); } componentWillUnmount() { if (!this.props.providers) { // new ProviderFactory is created if no `providers` has been set // in this case when component is unmounted it's safe to destroy this providerFactory this.providerFactory.destroy(); } } render() { return /*#__PURE__*/React.createElement(WithProviders, { providers: ['mentionProvider', 'profilecardProvider'], providerFactory: this.providerFactory, renderNode: this.renderWithProvider }); } }