Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3597 | Rev 3599 | 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';
3581 stevensc 5
 
3580 stevensc 6
import { getMessages } from '@inmail/services';
3577 stevensc 7
 
3580 stevensc 8
import { Spinner } from '@shared/components';
9
import { ConversationsList } from '@inmail/components/conversations';
10
 
3577 stevensc 11
export function InmailPage() {
3580 stevensc 12
  const [selectedConversation, setSelectedConversation] = useState(null);
13
 
3597 stevensc 14
  const { data: conversations, loading } = useFetch('/email');
3580 stevensc 15
  const { data: messages, loading: loadingMessages, execute: fetchMessages } = useApi(getMessages);
3577 stevensc 16
 
3580 stevensc 17
  useEffect(() => {
18
    if (selectedConversation) {
3598 stevensc 19
      fetchMessages(selectedConversation.messages_url);
3580 stevensc 20
    }
21
  }, [selectedConversation]);
22
 
3578 stevensc 23
  if (loading || !conversations) {
3577 stevensc 24
    return <Spinner />;
25
  }
26
 
27
  return (
28
    <Grid container spacing={2}>
29
      <Grid item xs={12} md={3}>
3580 stevensc 30
        <ConversationsList
31
          conversations={conversations}
32
          onSelectConversation={setSelectedConversation}
3577 stevensc 33
        />
34
      </Grid>
35
      <Grid item xs={12} md={9}>
3581 stevensc 36
        {loadingMessages && <Spinner />}
37
        {messages?.map((message) => (
38
          <Typography key={message.uuid}>{JSON.stringify(message)}</Typography>
39
        ))}
3577 stevensc 40
      </Grid>
41
    </Grid>
42
  );
43
}