Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 5244 | Rev 5247 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 5244 Rev 5246
Línea 4... Línea 4...
4
import MessageBox from './MessageBox'
4
import MessageBox from './MessageBox'
5
import MessageTemplate from './MessageTemplate'
5
import MessageTemplate from './MessageTemplate'
6
import SpeakerNotesOffRoundedIcon from '@mui/icons-material/SpeakerNotesOffRounded'
6
import SpeakerNotesOffRoundedIcon from '@mui/icons-material/SpeakerNotesOffRounded'
7
import QuestionAnswerRoundedIcon from '@mui/icons-material/QuestionAnswerRounded'
7
import QuestionAnswerRoundedIcon from '@mui/icons-material/QuestionAnswerRounded'
8
import { useDispatch } from 'react-redux'
8
import { useDispatch } from 'react-redux'
9
import { fetchMessages, getMessagesDifferences, cancelFetch } from '../../services/chat'
9
import { fetchMessages, getMessagesDifferences } from '../../services/chat'
10
import { addNotification } from '../../redux/notification/notification.actions'
10
import { addNotification } from '../../redux/notification/notification.actions'
11
import { axios, scrollToBottom } from '../../utils'
11
import { axios, scrollToBottom } from '../../utils'
12
import { ArrowLeft } from '@mui/icons-material'
12
import { ArrowLeft } from '@mui/icons-material'
-
 
13
import { Spinner } from 'react-bootstrap'
Línea 13... Línea 14...
13
 
14
 
Línea 14... Línea 15...
14
const DEFAULT_PAGES = { current: 1, last: 1 }
15
const DEFAULT_PAGES = { current: 1, last: 1 }
15
 
16
 
Línea 81... Línea 82...
81
    setPages((prevPages) => ({ ...prevPages, current: prevPages.current + 1 }))
82
    setPages((prevPages) => ({ ...prevPages, current: prevPages.current + 1 }))
82
  }
83
  }
Línea 83... Línea 84...
83
 
84
 
84
  useEffect(() => {
85
  useEffect(() => {
85
    let timer
-
 
86
    if (!loading && selectedConversation) {
86
    let timer
87
      timer = setTimeout(() => getMessages(selectedConversation.messages_link), 2000)
-
 
88
    }
87
    if (!loading && selectedConversation) timer = setTimeout(() => getMessages(selectedConversation.messages_link), 2000)
89
    return () => {
88
    return () => {
90
      clearTimeout(timer)
89
      clearTimeout(timer)
91
    }
90
    }
Línea 92... Línea 91...
92
  }, [loading, selectedConversation])
91
  }, [loading, selectedConversation])
93
 
92
 
94
  useEffect(() => {
93
  useEffect(() => {
Línea 95... Línea 94...
95
    if (selectedConversation && pages.current < pages.last) getMessages(selectedConversation?.messages_link)
94
    if (selectedConversation) getMessages(selectedConversation?.messages_link)
96
  }, [pages.current])
95
  }, [pages.current])
97
 
96
 
98
  useEffect(() => {
-
 
99
    const observer = new IntersectionObserver(([entry]) => {
97
  useEffect(() => {
-
 
98
    const observer = new IntersectionObserver(([entry]) => {
100
      if (entry.isIntersecting) {
99
      if (entry.isIntersecting) {
101
        cancelFetch()
100
        loadMore()
Línea 102... Línea 101...
102
        loadMore()
101
        lastMessage.current.scrollTop += 100
103
      }
102
      }
Línea 127... Línea 126...
127
              message={element}
126
              message={element}
128
              date={element.date}
127
              date={element.date}
129
            />)
128
            />)
130
          : <EmptySection message={LABELS.NO_MESSAGE_CONVERSATION} Icon={<SpeakerNotesOffRoundedIcon/>} />
129
          : <EmptySection message={LABELS.NO_MESSAGE_CONVERSATION} Icon={<SpeakerNotesOffRoundedIcon/>} />
131
        }
130
        }
-
 
131
        {loading && <Spinner />}
132
        {(!loading && pages.current < pages.last) && <hr ref={lastMessage} style={{ visibility: 'hidden' }} />}
132
        {pages.current < pages.last && <hr ref={lastMessage} style={{ visibility: 'hidden' }} />}
133
      </div>
133
      </div>
134
      <MessageBox onSend={handleSend} sendUrl={selectedConversation.send_link}/>
134
      <MessageBox onSend={handleSend} sendUrl={selectedConversation.send_link}/>
135
    </div>
135
    </div>
136
  )
136
  )
137
}
137
}