/* eslint-disable */ import { minBy, maxBy, last } from 'lodash'; import { Plugin, PluginKey } from 'prosemirror-state'; import { Decoration, DecorationSet } from 'prosemirror-view'; import { DocumentHelpers } from 'wax-prosemirror-core'; const commentPlugin = new PluginKey('commentPlugin'); const getComment = (state, context) => { const { options: { comments }, } = context; if (!comments?.length) return; console.log('sds', comments); return { from: comments[0].from, to: comments[0].to, attrs: comments[0].data, id: comments[0].id, // contained: commentOnSelection.contained, }; }; c; export default (key, context) => { return new Plugin({ key: commentPlugin, state: { init: (_, state) => { return { comment: getComment(state, context) }; }, apply(tr, prev, _, newState) { const comment = getComment(newState, context); let createDecoration; if (comment) { createDecoration = DecorationSet.create(newState.doc, [ Decoration.inline(comment.from, comment.to, { class: 'active-comment', }), ]); } return { comment, createDecoration, }; }, }, props: { decorations: state => { const commentPluginState = state && commentPlugin.getState(state); return commentPluginState.createDecoration; }, }, }); };