Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 16004 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

import React, { useRef, useEffect } from "react";
import Message from "./Messages";

import styles from "../chat.module.scss";

const MessagesList = ({
  messages,
  onIntersection,
  isLastPage,
  scrollRef,
  isLoading,
}) => {
  const loadMoreEl = useRef();

  useEffect(() => {
    const observer = new IntersectionObserver(onIntersection);

    if (loadMoreEl.current) {
      observer.observe(loadMoreEl.current);
    }

    return () => {
      observer.disconnect();
    };
  }, [messages]);

  return (
    <div className={styles.messagesContainer} ref={scrollRef}>
      <div className={styles.messageWrapper}>
        {!isLastPage && !isLoading && <p ref={loadMoreEl}>Cargando...</p>}
        {messages.map((message) => (
          <Message message={message} key={message.id} />
        ))}
      </div>
    </div>
  );
};

export default MessagesList;