Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev 5202 Rev 5203
Línea 12... Línea 12...
12
const Inmail = () => {
12
const Inmail = () => {
13
  const [messages, setMessages] = useState([])
13
  const [messages, setMessages] = useState([])
14
  const [pages, setPages] = useState(DEFAULT_PAGES)
14
  const [pages, setPages] = useState(DEFAULT_PAGES)
15
  const [selectedConversation, setSelectedConversation] = useState(null)
15
  const [selectedConversation, setSelectedConversation] = useState(null)
16
  const [loading, setLoading] = useState(false)
16
  const [loading, setLoading] = useState(false)
17
  const [gettingMessages, setGettingMessages] = useState(false)
-
 
-
 
17
 
18
  const dispatch = useDispatch()
18
  const dispatch = useDispatch()
-
 
19
  const controller = new AbortController()
Línea 19... Línea 20...
19
 
20
 
20
  const getMessages = async (url = '', page = DEFAULT_PAGES.current) => {
21
  const getMessages = async (url = '', page = DEFAULT_PAGES.current) => {
21
    try {
22
    try {
22
      setLoading(true)
23
      setLoading(true)
Línea 23... Línea 24...
23
      const { data: response } = await axios.get(`${url}?page=${page}`)
24
      const { data: response } = await axios.get(`${url}?page=${page}`, { signal: controller.signal })
24
 
25
 
Línea 25... Línea 26...
25
      if (!response.success) {
26
      if (!response.success) {
Línea 36... Línea 37...
36
        setMessages((prevMessages) => ([...prevMessages, ...newMessages]))
37
        setMessages((prevMessages) => ([...prevMessages, ...newMessages]))
37
      }
38
      }
Línea 38... Línea 39...
38
 
39
 
39
      setPages((prevPages) => ({ ...prevPages, current: response.pagination.current, last: response.pagination.last }))
40
      setPages((prevPages) => ({ ...prevPages, current: response.pagination.current, last: response.pagination.last }))
-
 
41
    } catch (error) {
-
 
42
      if (axios.isCancel(error)) {
-
 
43
        console.log('Request canceled', error.message)
40
    } catch (error) {
44
      } else {
41
      const errorMessage = new Error(error)
45
        const errorMessage = new Error(error)
-
 
46
        dispatch(addNotification({ style: 'danger', msg: errorMessage.message }))
42
      dispatch(addNotification({ style: 'danger', msg: errorMessage.message }))
47
      }
43
    } finally {
48
    } finally {
44
      setLoading(false)
49
      setLoading(false)
45
    }
50
    }
Línea 62... Línea 67...
62
  const changeConversation = (conversation) => {
67
  const changeConversation = (conversation) => {
63
    setSelectedConversation(conversation)
68
    setSelectedConversation(conversation)
64
  }
69
  }
Línea 65... Línea 70...
65
 
70
 
66
  const getMoreMessages = async () => {
-
 
67
    if (!gettingMessages) {
-
 
68
      setGettingMessages(true)
-
 
69
 
71
  const getMoreMessages = async () => {
70
      if (pages.current + 1 > pages.last) {
72
    if (pages.current + 1 > pages.last) {
71
        return null
-
 
72
      }
-
 
73
 
-
 
74
      await getMessages(selectedConversation.messages_link, pages.current + 1)
-
 
75
      setGettingMessages(false)
73
      return null
-
 
74
    }
-
 
75
    if (loading) {
-
 
76
      await controller.abort()
-
 
77
    }
-
 
78
 
76
    }
79
    getMessages(selectedConversation.messages_link, pages.current + 1)
Línea 77... Línea 80...
77
  }
80
  }
78
 
81
 
79
  useEffect(() => {
82
  useEffect(() => {