UNPKG

@atlaskit/editor-plugin-local-id

Version:

LocalId plugin for @atlaskit/editor-core

47 lines 1.05 kB
export function findNodeByLocalId(tr, localId) { let result; tr.doc.descendants((node, pos) => { if (result) { return false; } if (node.attrs.localId === localId) { result = { node, pos }; } return result === undefined; }); return result; } export const replaceNode = api => ({ localId, value }) => { var _api$core$actions$exe; const nodeWithPos = getNode(api)({ localId }); if (!nodeWithPos) { return false; } const { pos, node } = nodeWithPos; return (_api$core$actions$exe = api === null || api === void 0 ? void 0 : api.core.actions.execute(({ tr }) => tr.replaceWith(pos, pos + node.nodeSize, value).scrollIntoView())) !== null && _api$core$actions$exe !== void 0 ? _api$core$actions$exe : false; }; export const getNode = api => ({ localId }) => { let result; api === null || api === void 0 ? void 0 : api.core.actions.execute(({ tr }) => { result = findNodeByLocalId(tr, localId); return null; }); return result; };