Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3597 | Rev 3599 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

import React, { useEffect, useState } from 'react';
import { Grid, Typography } from '@mui/material';

import { useApi, useFetch } from '@shared/hooks';

import { getMessages } from '@inmail/services';

import { Spinner } from '@shared/components';
import { ConversationsList } from '@inmail/components/conversations';

export function InmailPage() {
  const [selectedConversation, setSelectedConversation] = useState(null);

  const { data: conversations, loading } = useFetch('/email');
  const { data: messages, loading: loadingMessages, execute: fetchMessages } = useApi(getMessages);

  useEffect(() => {
    if (selectedConversation) {
      fetchMessages(selectedConversation.messages_url);
    }
  }, [selectedConversation]);

  if (loading || !conversations) {
    return <Spinner />;
  }

  return (
    <Grid container spacing={2}>
      <Grid item xs={12} md={3}>
        <ConversationsList
          conversations={conversations}
          onSelectConversation={setSelectedConversation}
        />
      </Grid>
      <Grid item xs={12} md={9}>
        {loadingMessages && <Spinner />}
        {messages?.map((message) => (
          <Typography key={message.uuid}>{JSON.stringify(message)}</Typography>
        ))}
      </Grid>
    </Grid>
  );
}