Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev Autor Línea Nro. Línea
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
}