Newer
Older
import React, {
useContext,
useState,
useEffect,
useMemo,
Fragment
} from "react";
import styled from "styled-components";
import { WaxContext } from "wax-prosemirror-core/src/ioc-react";
import { DocumentHelpers } from "wax-prosemirror-utilities";
const { view: { main }, activeView } = useContext(WaxContext);
const [comments, setComments] = useState([]);
useEffect(
() => {
() => (
<CommentsBoxList
comments={comments[area] || []}
area={area}
view={main}
/>
),
);
return <Fragment>{CommentComponent}</Fragment>;
const nodes = DocumentHelpers.findChildrenByMark(
view.state.doc,
view.state.schema.marks.comment,
true
);
const allComments = nodes.map(node => {
return node.node.marks.filter(comment => {
return comment.type.name === "comment";
});
});
const groupedComments = {};
allComments.forEach(comment => {
if (!groupedComments[comment[0].attrs.group]) {
groupedComments[comment[0].attrs.group] = [comment[0]];
} else {
groupedComments[comment[0].attrs.group].push(comment[0]);
}
});
return groupedComments;