UNPKG

@atlaskit/editor-core

Version:

A package contains Atlassian editor core functionality

91 lines 4.35 kB
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator"; import _regeneratorRuntime from "@babel/runtime/regenerator"; import { useEffect } from 'react'; /** * This hook is used to replace the old approach of using the `providerFactory`. * * Because plugins can't update their initial configuration, this hook listens to changes * and calls a command to push the update to the plugins shared state. * * In the future ideally consumers implement this behaviour themselves. */ export var useProviders = function useProviders(_ref) { var editorApi = _ref.editorApi, contextIdentifierProvider = _ref.contextIdentifierProvider, mediaProvider = _ref.mediaProvider, mentionProvider = _ref.mentionProvider, cardProvider = _ref.cardProvider, emojiProvider = _ref.emojiProvider, autoformattingProvider = _ref.autoformattingProvider, taskDecisionProvider = _ref.taskDecisionProvider; useEffect(function () { function setProvider() { return _setProvider.apply(this, arguments); } function _setProvider() { _setProvider = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() { var _editorApi$core, _editorApi$contextIde; var provider; return _regeneratorRuntime.wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: if (contextIdentifierProvider) { _context.next = 2; break; } return _context.abrupt("return"); case 2: _context.next = 4; return contextIdentifierProvider; case 4: provider = _context.sent; editorApi === null || editorApi === void 0 || (_editorApi$core = editorApi.core) === null || _editorApi$core === void 0 || _editorApi$core.actions.execute(editorApi === null || editorApi === void 0 || (_editorApi$contextIde = editorApi.contextIdentifier) === null || _editorApi$contextIde === void 0 ? void 0 : _editorApi$contextIde.commands.setProvider({ contextIdentifierProvider: provider })); case 6: case "end": return _context.stop(); } }, _callee); })); return _setProvider.apply(this, arguments); } setProvider(); }, [contextIdentifierProvider, editorApi]); useEffect(function () { if (mediaProvider) { var _editorApi$media; editorApi === null || editorApi === void 0 || (_editorApi$media = editorApi.media) === null || _editorApi$media === void 0 || _editorApi$media.actions.setProvider(mediaProvider); } }, [mediaProvider, editorApi]); useEffect(function () { if (mentionProvider) { var _editorApi$mention; editorApi === null || editorApi === void 0 || (_editorApi$mention = editorApi.mention) === null || _editorApi$mention === void 0 || _editorApi$mention.actions.setProvider(mentionProvider); } }, [mentionProvider, editorApi]); useEffect(function () { if (cardProvider) { var _editorApi$card; editorApi === null || editorApi === void 0 || (_editorApi$card = editorApi.card) === null || _editorApi$card === void 0 || _editorApi$card.actions.setProvider(cardProvider); } }, [cardProvider, editorApi]); useEffect(function () { if (emojiProvider) { var _editorApi$emoji; editorApi === null || editorApi === void 0 || (_editorApi$emoji = editorApi.emoji) === null || _editorApi$emoji === void 0 || _editorApi$emoji.actions.setProvider(emojiProvider); } }, [emojiProvider, editorApi]); useEffect(function () { if (autoformattingProvider) { var _editorApi$customAuto; editorApi === null || editorApi === void 0 || (_editorApi$customAuto = editorApi.customAutoformat) === null || _editorApi$customAuto === void 0 || _editorApi$customAuto.actions.setProvider(autoformattingProvider); } }, [autoformattingProvider, editorApi]); useEffect(function () { if (taskDecisionProvider) { var _editorApi$taskDecisi; editorApi === null || editorApi === void 0 || (_editorApi$taskDecisi = editorApi.taskDecision) === null || _editorApi$taskDecisi === void 0 || _editorApi$taskDecisi.actions.setProvider(taskDecisionProvider); } }, [taskDecisionProvider, editorApi]); };