Rev 3599 | Rev 3603 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useState } from 'react';import { Grid, Box, Typography } from '@mui/material';import { useFetch, usePagination } from '@shared/hooks';import { Spinner } from '@shared/components';import { ConversationsList, MessagesList } from '@inmail/components';const messagesResponse = {success: true,data: [{uuid: 'b18afb55-d40e-4fd9-95a6-324a7f45e57f',sender_name: 'Cesa Managment Solution',sender_image:'https://dev-services.leaderslinked.com/storage/97e43a0a-5a85-4021-8bff-167d60e2a0f2',sender_profile: '/profile/view/97e43a0a-5a85-4021-8bff-167d60e2a0f2',receiver_name: 'Santiago Olivera',receiver_image:'https://dev-services.leaderslinked.com/storage/97e43a0a-5a85-4021-8bff-167d60e2a0f2',receiver_profile: '/profile/view/e85129fa-18eb-4149-8640-fea9ae916cdc',side: 'right',message: '',type: 'image',filename:'https://dev-services.leaderslinked.com/storage/b18afb55-d40e-4fd9-95a6-324a7f45e57f',date: 'hace 1 año',url_abuse_report:'https://dev-services.leaderslinked.com/helpers/abuse-report/message/b18afb55-d40e-4fd9-95a6-324a7f45e57f'},{uuid: 'c3b3c887-9f88-4a36-a7c8-c417f5da80ff',sender_name: 'Cesa Managment Solution',sender_image:'https://dev-services.leaderslinked.com/storage/97e43a0a-5a85-4021-8bff-167d60e2a0f2',sender_profile: '/profile/view/97e43a0a-5a85-4021-8bff-167d60e2a0f2',receiver_name: 'Santiago Olivera',receiver_image:'https://dev-services.leaderslinked.com/storage/97e43a0a-5a85-4021-8bff-167d60e2a0f2',receiver_profile: '/profile/view/e85129fa-18eb-4149-8640-fea9ae916cdc',side: 'right',message: 'Buenas tardes',type: 'text',filename: '',date: 'hace 1 año',url_abuse_report:'https://dev-services.leaderslinked.com/helpers/abuse-report/message/c3b3c887-9f88-4a36-a7c8-c417f5da80ff'},{uuid: '59120c84-335f-424c-8990-db51ae7bd673',sender_name: 'Santiago Olivera',sender_image:'https://dev-services.leaderslinked.com/storage/e85129fa-18eb-4149-8640-fea9ae916cdc',sender_profile: '/profile/view/e85129fa-18eb-4149-8640-fea9ae916cdc',receiver_name: 'Cesa Managment Solution',receiver_image:'https://dev-services.leaderslinked.com/storage/97e43a0a-5a85-4021-8bff-167d60e2a0f2',receiver_profile: '/profile/view/97e43a0a-5a85-4021-8bff-167d60e2a0f2',side: 'left',message: '',type: 'image',filename:'https://dev-services.leaderslinked.com/storage/59120c84-335f-424c-8990-db51ae7bd673',date: 'hace 1 año',url_abuse_report: ''},{uuid: '71c1356d-b5dc-413a-8f8e-ed087f99b6e3',sender_name: 'Santiago Olivera',sender_image:'https://dev-services.leaderslinked.com/storage/e85129fa-18eb-4149-8640-fea9ae916cdc',sender_profile: '/profile/view/e85129fa-18eb-4149-8640-fea9ae916cdc',receiver_name: 'Cesa Managment Solution',receiver_image:'https://dev-services.leaderslinked.com/storage/97e43a0a-5a85-4021-8bff-167d60e2a0f2',receiver_profile: '/profile/view/97e43a0a-5a85-4021-8bff-167d60e2a0f2',side: 'left',message: 'buenas tardes',type: 'text',filename: '',date: 'hace 1 año',url_abuse_report: ''},{uuid: 'c484b564-3d69-42bf-b6c4-12dfa6230614',sender_name: 'Santiago Olivera',sender_image:'https://dev-services.leaderslinked.com/storage/e85129fa-18eb-4149-8640-fea9ae916cdc',sender_profile: '/profile/view/e85129fa-18eb-4149-8640-fea9ae916cdc',receiver_name: 'Cesa Managment Solution',receiver_image:'https://dev-services.leaderslinked.com/storage/97e43a0a-5a85-4021-8bff-167d60e2a0f2',receiver_profile: '/profile/view/97e43a0a-5a85-4021-8bff-167d60e2a0f2',side: 'left',message: 'Test',type: 'text',filename: '',date: 'hace 1 año',url_abuse_report: ''},{uuid: 'f29723fd-dc2a-4b06-8c8e-e0e0cfe36cd1',sender_name: 'Cesa Managment Solution',sender_image:'https://dev-services.leaderslinked.com/storage/97e43a0a-5a85-4021-8bff-167d60e2a0f2',sender_profile: '/profile/view/97e43a0a-5a85-4021-8bff-167d60e2a0f2',receiver_name: 'Santiago Olivera',receiver_image:'https://dev-services.leaderslinked.com/storage/97e43a0a-5a85-4021-8bff-167d60e2a0f2',receiver_profile: '/profile/view/e85129fa-18eb-4149-8640-fea9ae916cdc',side: 'right',message:'buenas tardes\r\n\r\nbuenas tardesbuenas tardes\r\n\r\nbuenas tardesbuenas tardes\r\n\r\nbuenas tardesbuenas tardesbuenas tardes',type: 'document',filename:'https://dev-services.leaderslinked.com/storage/f29723fd-dc2a-4b06-8c8e-e0e0cfe36cd1',date: 'hace 1 año',url_abuse_report:'https://dev-services.leaderslinked.com/helpers/abuse-report/message/f29723fd-dc2a-4b06-8c8e-e0e0cfe36cd1'},{uuid: '86453fcf-ac3b-4228-9007-9dbf100976ef',sender_name: 'Cesa Managment Solution',sender_image:'https://dev-services.leaderslinked.com/storage/97e43a0a-5a85-4021-8bff-167d60e2a0f2',sender_profile: '/profile/view/97e43a0a-5a85-4021-8bff-167d60e2a0f2',receiver_name: 'Santiago Olivera',receiver_image:'https://dev-services.leaderslinked.com/storage/97e43a0a-5a85-4021-8bff-167d60e2a0f2',receiver_profile: '/profile/view/e85129fa-18eb-4149-8640-fea9ae916cdc',side: 'right',message:'hola,hola,hola,hola,hola,hola,hola,\r\nhola,hola,hola,\r\n\r\nhola,hola,\r\nhola,hola,hola,\r\n\r\nhola,hola,hola,',type: 'image',filename:'https://dev-services.leaderslinked.com/storage/86453fcf-ac3b-4228-9007-9dbf100976ef',date: 'hace 1 año',url_abuse_report:'https://dev-services.leaderslinked.com/helpers/abuse-report/message/86453fcf-ac3b-4228-9007-9dbf100976ef'}],pagination: {pageCount: 1,itemCountPerPage: 10,first: 1,current: 1,last: 1,pagesInRange: {1: 1},firstPageInRange: 1,lastPageInRange: 1,currentItemCount: 7,totalItemCount: 7,firstItemNumber: 1,lastItemNumber: 7}};export function InmailPage() {const [selectedConversation, setSelectedConversation] = useState(null);const { data: conversations, loading } = useFetch('/email');const {items: messages,loading: loadingMessages,nextPage,hasMore} = usePagination(selectedConversation?.messages_url, {enableInfiniteScroll: true});// Para demostración, usar datos de prueba cuando no hay conversación seleccionadaconst displayMessages = selectedConversation ? messages : messagesResponse.data;const displayLoading = selectedConversation ? loadingMessages : false;if (loading || !conversations) {return <Spinner />;}return (<Grid container spacing={2} sx={{ height: 'calc(100vh - 100px)' }}><Grid item xs={12} md={3}><ConversationsListconversations={conversations}onSelectConversation={setSelectedConversation}/></Grid><Grid item xs={12} md={9}><Box sx={{ height: '100%', display: 'flex', flexDirection: 'column' }}>{selectedConversation && (<Box sx={{ p: 2, borderBottom: 1, borderColor: 'divider' }}><Typography variant='h6'>Conversación con {selectedConversation.name}</Typography></Box>)}<Box sx={{ flex: 1, overflow: 'hidden' }}><MessagesListmessages={displayMessages}onLoadMore={nextPage}loading={displayLoading}hasMore={hasMore}/></Box></Box></Grid></Grid>);}