Rev 16001 | Rev 16004 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useRef, useEffect, useState } from "react";import Message from "./Messages";import styles from "../chat.module.scss";const MessagesList = ({ messages, onIntersection, isLastPage, scrollRef }) => {const [loading, setLoading] = useState(false);const loadMoreEl = useRef();const handleIntersection = (target) => {setLoading(true);onIntersection(target);};useEffect(() => {const observer = new IntersectionObserver(handleIntersection);if (loadMoreEl.current) {observer.observe(loadMoreEl.current);}return () => {observer.disconnect();};}, []);useEffect(() => {setLoading(false);}, [messages]);return (<div className={styles.messagesContainer} ref={scrollRef}><div className={styles.messageWrapper}>{!isLastPage && !loading && <p ref={loadMoreEl}>Cargando...</p>}{messages.map((message) => (<Message message={message} key={message.id} />))}</div></div>);};export default MessagesList;