import { connect } from "react-redux"
import { Message } from "../Message/Message"
import { MessagesAreaWrapper, SimpleBarWrapper } from "./MessagesArea.style"
import 'simplebar/dist/simplebar.min.css';
import InfiniteScroll from 'react-infinite-scroll-component';
import { useEffect, useRef, useState } from "react";
import { actionGetMessageForChat } from "../../actions/actionGetMessageForChat";
// import { ClassNames } from "@emotion/react";
// const Test = ({messagesByChat}) => {
// useEffect(() => {
// console.log('i am from body')
// return () => {
// console.log('i was unMount')
// }
// }, [])
// return (
//
//
// )
// }
const MessagesArea = ({chats, chatId, getMessages}) => {
// console.log(chats[chatId].messages)
const messagesByChat = Object.values(chats[chatId]?.messages || []);
const ref = useRef();
let timer
function infinityScroll () {
// console.log('количество скроллов')
clearTimeout(timer);
timer = setTimeout(async() => {
// console.log('количество таймеров')
const offset = 600;
const scrollElem = ref.current?.contentWrapperEl;
if(scrollElem.scrollHeight - (scrollElem.clientHeight - scrollElem.scrollTop) < offset){
let data = await getMessages(chatId);
if (data.length < 20) ref.current?.contentWrapperEl.removeEventListener("scroll", infinityScroll);
// console.log('вызов')
}
},30)
}
useEffect(() => {
ref.current?.contentWrapperEl.addEventListener("scroll", infinityScroll);
// Remove listener (like componentWillUnmount)
// console.log('i am working from useEffect');
return () => {
ref.current.contentWrapperEl.scrollTop = 0;
ref.current?.contentWrapperEl.removeEventListener("scroll", infinityScroll);
console.log("unMount from parent")
};
}, [chatId]);
return (
{messagesByChat.map((item) => )}
)
}
export default connect(state=>({chats: state.chats || {}}), {getMessages : actionGetMessageForChat})(MessagesArea)