Skip to content
Snippets Groups Projects
BoxList.js 1.35 KiB
Newer Older
chris's avatar
chris committed
/* eslint react/prop-types: 0 */
chris's avatar
chris committed
import React from 'react';
chris's avatar
chris committed
import ConnectedComment from './ConnectedComment';
import ConnectedTrackChange from './ConnectedTrackChange';
chris's avatar
chris committed
export default ({
  commentsTracks,
  view,
  position,
  recalculateTops,
  users,
  activeComment,
}) => {
chris's avatar
chris committed
  if (!position) return null;
chris's avatar
chris committed
  return (
chris's avatar
chris committed
    <>
chris's avatar
chris committed
      {commentsTracks.map((commentTrack, index) => {
chris's avatar
chris committed
        let id = '';

        if (commentTrack?.node?.attrs.id) {
          id = commentTrack.node.attrs.id;
        } else if (commentTrack?.attrs?.id) {
          id = commentTrack.attrs.id;
        } else {
          id = commentTrack.id;
        }
chris's avatar
chris committed

        const top = position[index] ? position[index][id] : 0;
        if (commentTrack.data?.type === 'comment') {
chris's avatar
chris committed
          return (
chris's avatar
chris committed
            <ConnectedComment
chris's avatar
chris committed
              activeComment={activeComment}
chris's avatar
chris committed
              comment={commentTrack}
chris's avatar
chris committed
              commentId={id}
chris's avatar
chris committed
              recalculateTops={recalculateTops}
chris's avatar
chris committed
        return (
chris's avatar
chris committed
          <ConnectedTrackChange
chris's avatar
chris committed
            key={id}
            recalculateTops={recalculateTops}
chris's avatar
chris committed
            top={top}
            trackChange={commentTrack}
chris's avatar
chris committed
            trackChangeId={id}
            view={view}
chris's avatar
chris committed
          />
        );
chris's avatar
chris committed
      })}
chris's avatar
chris committed
    </>
chris's avatar
chris committed
  );
};