Proyectos de Subversion LeadersLinked - SPA

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3610 stevensc 1
import React, { useEffect } from 'react'
2
import { Box } from '@mui/material'
3
import { Inbox } from '@mui/icons-material'
4
 
5
import { useNearScreen } from '@hooks'
6
 
7
import Message from './Message'
8
import Spinner from '@components/UI/Spinner'
9
import EmptySection from '@components/UI/EmptySection'
10
 
11
export default function MessagesList({
12
  messages = [],
13
  onPagination,
14
  onReport,
15
  scrollRef,
16
  loading
17
}) {
18
  const [isIntercepting, ref] = useNearScreen({
19
    once: false,
20
    rootMargin: '0px'
21
  })
22
 
23
  useEffect(() => {
24
    if (isIntercepting) {
25
      onPagination()
26
    }
27
  }, [isIntercepting])
28
 
29
  if (!messages.length) {
30
    return (
31
      <EmptySection
32
        Icon={<Inbox />}
33
        message='No hay mensajes en esta conversación'
34
        align='center'
35
      />
36
    )
37
  }
38
 
39
  return (
40
    <Box
41
      sx={{
42
        gap: ({ spacing }) => spacing(0.5),
43
        display: 'flex',
44
        flexDirection: 'column-reverse',
45
        height: '-webkit-fill-available',
46
        padding: ({ spacing }) => spacing(0.5, 0),
47
        overflow: 'auto'
48
      }}
49
      ref={scrollRef}
50
    >
51
      {messages.map((message) => (
52
        <Message
53
          key={message.id}
54
          message={message}
55
          reportUrl={message.url_abuse_report}
56
          onReport={onReport}
57
        />
58
      ))}
59
      <div ref={ref}>{loading && <Spinner />}</div>
60
    </Box>
61
  )
62
}