Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3578 | Rev 3581 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3580 stevensc 1
import React, { useEffect, useState } from 'react';
3577 stevensc 2
import { Grid, Typography } from '@mui/material';
3
 
3580 stevensc 4
import { useApi, useFetch } from '@shared/hooks';
5
import { getMessages } from '@inmail/services';
3577 stevensc 6
 
3580 stevensc 7
import { Spinner } from '@shared/components';
8
import { ConversationsList } from '@inmail/components/conversations';
9
 
3577 stevensc 10
export function InmailPage() {
3580 stevensc 11
  const [selectedConversation, setSelectedConversation] = useState(null);
12
 
3577 stevensc 13
  const { data: conversations, loading } = useFetch('/inmail');
3580 stevensc 14
  const { data: messages, loading: loadingMessages, execute: fetchMessages } = useApi(getMessages);
3577 stevensc 15
 
3580 stevensc 16
  useEffect(() => {
17
    if (selectedConversation) {
18
      fetchMessages(selectedConversation.messages_link);
19
    }
20
  }, [selectedConversation]);
21
 
3578 stevensc 22
  if (loading || !conversations) {
3577 stevensc 23
    return <Spinner />;
24
  }
25
 
26
  return (
27
    <Grid container spacing={2}>
28
      <Grid item xs={12} md={3}>
3580 stevensc 29
        <ConversationsList
30
          conversations={conversations}
31
          onSelectConversation={setSelectedConversation}
3577 stevensc 32
        />
33
      </Grid>
34
      <Grid item xs={12} md={9}>
3580 stevensc 35
        {loadingMessages ? (
36
          <Spinner />
37
        ) : (
38
          <>
39
            {messages.map((message) => (
40
              <Typography key={message.uuid}>{JSON.stringify(message)}</Typography>
41
            ))}
42
          </>
43
        )}
3577 stevensc 44
      </Grid>
45
    </Grid>
46
  );
47
}