UNPKG

@atlaskit/editor-plugin-card

Version:

Card plugin for @atlaskit/editor-core

33 lines (32 loc) 1.45 kB
import { pluginKey } from '../plugin-key'; // ============================================================================ // // ============================== PLUGIN STATE ================================ // // ============================================================================ // // Used for interactions with the Card Plugin's state. // ============================================================================ // export const getPluginState = editorState => pluginKey.getState(editorState); export const getPluginStateWithUpdatedPos = (pluginState, tr) => { var _pluginState$resolved; return { ...pluginState, requests: pluginState.requests.map(request => ({ ...request, pos: tr.mapping.map(request.pos) })), cards: pluginState.cards.map(card => ({ ...card, pos: tr.mapping.map(card.pos) })), resolvedInlineSmartLinks: (_pluginState$resolved = pluginState.resolvedInlineSmartLinks) === null || _pluginState$resolved === void 0 ? void 0 : _pluginState$resolved.map(card => ({ ...card, pos: tr.mapping.map(card.pos) })) }; }; export const getNewRequests = (oldState, currentState) => { if (oldState) { return currentState.requests.filter(req => !oldState.requests.find(oldReq => isSameRequest(oldReq, req))); } return currentState.requests; }; const isSameRequest = (requestA, requestB) => requestA.url === requestB.url && requestA.pos === requestB.pos;