| 821 |
stevensc |
1 |
import React, { useState } from 'react'
|
| 1 |
www |
2 |
|
| 2539 |
stevensc |
3 |
export default ({ conversations = [], click, selectedConversation, showConversation, handleShowConversation }) => {
|
| 821 |
stevensc |
4 |
|
|
|
5 |
const [conversationSearch, setConversationSearch] = useState('');
|
|
|
6 |
const filtredConversations = conversations.filter((conversation) => conversation.name.includes(conversationSearch))
|
| 2539 |
stevensc |
7 |
|
| 841 |
stevensc |
8 |
const handleConversation = (element) => {
|
| 845 |
stevensc |
9 |
handleShowConversation(true);
|
| 842 |
stevensc |
10 |
click(element)
|
| 841 |
stevensc |
11 |
}
|
| 2539 |
stevensc |
12 |
|
|
|
13 |
const getLastMessage = () => {
|
|
|
14 |
|
| 2542 |
stevensc |
15 |
const nullTimeOptions = filtredConversations.filter(option => !option.last_message)
|
|
|
16 |
const numberTimeOptions = filtredConversations.filter(option => option.last_message.split(' ').length > 1)
|
| 2539 |
stevensc |
17 |
|
| 2542 |
stevensc |
18 |
const nowTimeOptions = filtredConversations.filter(option => option.last_message === 'Ahora')
|
| 2539 |
stevensc |
19 |
|
| 2542 |
stevensc |
20 |
const secondsTimeOptions = numberTimeOptions.filter(option => option.last_message.split(' ')[1].includes('segundo')).sort((a, b) => a.last_message.split(' ')[0] - b.last_message.split(' ')[0])
|
|
|
21 |
const minutesTimeOptions = numberTimeOptions.filter(option => option.last_message.split(' ')[1].includes('minuto')).sort((a, b) => a.last_message.split(' ')[0] - b.last_message.split(' ')[0])
|
|
|
22 |
const dayTimeOptions = numberTimeOptions.filter(option => option.last_message.split(' ')[1].includes('dia')).sort((a, b) => a.last_message.split(' ')[0] - b.last_message.split(' ')[0])
|
|
|
23 |
const weekTimeOptions = numberTimeOptions.filter(option => option.last_message.split(' ')[1].includes('semana')).sort((a, b) => a.last_message.split(' ')[0] - b.last_message.split(' ')[0])
|
|
|
24 |
const monthTimeOptions = numberTimeOptions.filter(option => option.last_message.split(' ')[1].includes('mes')).sort((a, b) => a.last_message.split(' ')[0] - b.last_message.split(' ')[0])
|
|
|
25 |
const yearTimeOptions = numberTimeOptions.filter(option => option.last_message.split(' ')[1].includes('año')).sort((a, b) => a.last_message.split(' ')[0] - b.last_message.split(' ')[0])
|
| 2539 |
stevensc |
26 |
|
|
|
27 |
return [
|
|
|
28 |
...nowTimeOptions,
|
| 2542 |
stevensc |
29 |
...secondsTimeOptions,
|
|
|
30 |
...minutesTimeOptions,
|
|
|
31 |
...dayTimeOptions,
|
|
|
32 |
...weekTimeOptions,
|
|
|
33 |
...monthTimeOptions,
|
|
|
34 |
...yearTimeOptions,
|
| 2539 |
stevensc |
35 |
...nullTimeOptions
|
|
|
36 |
]
|
|
|
37 |
}
|
|
|
38 |
|
| 821 |
stevensc |
39 |
return (
|
| 2539 |
stevensc |
40 |
<div className="">
|
| 1870 |
steven |
41 |
{/* messages-list */}
|
|
|
42 |
{/* <div className={`messages_conversation-search ${!searchActive && 'hide'}`}>
|
| 822 |
stevensc |
43 |
<input
|
|
|
44 |
type="search"
|
|
|
45 |
className='form-control'
|
| 831 |
stevensc |
46 |
placeholder='Buscar conversación'
|
| 822 |
stevensc |
47 |
onChange={(e) => setConversationSearch(e.target.value)}
|
|
|
48 |
/>
|
| 1870 |
steven |
49 |
</div> */}
|
| 837 |
stevensc |
50 |
<ul className={`${showConversation && 'msgs-hide'}`}>
|
| 1 |
www |
51 |
{
|
| 825 |
stevensc |
52 |
(conversations)
|
| 821 |
stevensc |
53 |
?
|
| 2539 |
stevensc |
54 |
getLastMessage().map((element, i) => {
|
| 821 |
stevensc |
55 |
return (
|
| 1 |
www |
56 |
<li
|
|
|
57 |
id={i}
|
| 167 |
steven |
58 |
className={(selectedConversation === element ? "active" : '') + 'd-flex align-items-center'}
|
|
|
59 |
style={{
|
|
|
60 |
padding: '.7rem'
|
|
|
61 |
}}
|
| 835 |
stevensc |
62 |
onClick={() => {
|
| 841 |
stevensc |
63 |
handleConversation(element);
|
| 835 |
stevensc |
64 |
}}
|
| 1 |
www |
65 |
>
|
| 1871 |
steven |
66 |
<div className="usr-msg-details d-flex justify-content-start align-items-center">
|
| 1 |
www |
67 |
<div className="usr-ms-img">
|
|
|
68 |
<img src={element.image} alt={element.name} />
|
|
|
69 |
</div>
|
|
|
70 |
<div className="usr-mg-info">
|
|
|
71 |
<h3>{element.name}</h3>
|
| 1873 |
steven |
72 |
{
|
|
|
73 |
!!element.count_unread && parseInt(element.count_unread) > 0 && (
|
| 1874 |
steven |
74 |
<p className="text-gray"> {element.count_unread} mensajes nuevos | <span> {element.last_message} </span></p>
|
| 1873 |
steven |
75 |
)
|
|
|
76 |
}
|
| 1 |
www |
77 |
</div>
|
| 1872 |
steven |
78 |
{/* {
|
| 821 |
stevensc |
79 |
!!element.count_unread && parseInt(element.count_unread) > 0 && (
|
| 1 |
www |
80 |
<span className="msg-notifc">
|
|
|
81 |
{element.count_unread}
|
|
|
82 |
</span>
|
|
|
83 |
)
|
| 1872 |
steven |
84 |
} */}
|
| 1 |
www |
85 |
</div>
|
|
|
86 |
</li>
|
|
|
87 |
)
|
|
|
88 |
})
|
| 821 |
stevensc |
89 |
:
|
|
|
90 |
<li className="active">
|
|
|
91 |
<div className="usr-msg-details">
|
|
|
92 |
<div className="usr-mg-info">
|
|
|
93 |
<h3>Sin conversaciones</h3>
|
|
|
94 |
</div>
|
| 1 |
www |
95 |
</div>
|
| 821 |
stevensc |
96 |
</li>
|
| 1 |
www |
97 |
|
|
|
98 |
}
|
|
|
99 |
</ul>
|
|
|
100 |
</div>
|
|
|
101 |
)
|
|
|
102 |
}
|