Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 2543 | Rev 2545 | 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
 
15
 
2544 stevensc 16
        let nullTimeOptions = []
17
        let nowTimeOptions = []
18
        let secondsTimeOptions = [].sort((a, b) => a.last_message.split(' ')[0] - b.last_message.split(' ')[0])
19
        let minutesTimeOptions = [].sort((a, b) => a.last_message.split(' ')[0] - b.last_message.split(' ')[0])
20
        let dayTimeOptions = [].sort((a, b) => a.last_message.split(' ')[0] - b.last_message.split(' ')[0])
21
        let weekTimeOptions = [].sort((a, b) => a.last_message.split(' ')[0] - b.last_message.split(' ')[0])
22
        let monthTimeOptions = [].sort((a, b) => a.last_message.split(' ')[0] - b.last_message.split(' ')[0])
23
        let yearTimeOptions = [].sort((a, b) => a.last_message.split(' ')[0] - b.last_message.split(' ')[0])
2539 stevensc 24
 
2544 stevensc 25
        filtredConversations.map(option => {
26
            if (option.count_unread) {
27
                if (option.last_message === 'Ahora') {
28
                    return nowTimeOptions.push(option)
29
                }
30
                if (option.last_message.split(' ')[1].includes('segundo')) {
31
                    return secondsTimeOptions.push(option)
32
                }
33
                if (option.last_message.split(' ')[1].includes('minuto')) {
34
                    return minutesTimeOptions.push(option)
35
                }
36
                if (option.last_message.split(' ')[1].includes('día')) {
37
                    return dayTimeOptions.push(option)
38
                }
39
                if (option.last_message.split(' ')[1].includes('semana')) {
40
                    return weekTimeOptions.push(option)
41
                }
42
                if (option.last_message.split(' ')[1].includes('mes')) {
43
                    return monthTimeOptions.push(option)
44
                }
45
                if (option.last_message.split(' ')[1].includes('año')) {
46
                    return yearTimeOptions.push(option)
47
                }
48
            }
2539 stevensc 49
 
2544 stevensc 50
            return nullTimeOptions.push(option)
51
        })
52
 
53
 
2539 stevensc 54
        return [
55
            ...nowTimeOptions,
2542 stevensc 56
            ...secondsTimeOptions,
57
            ...minutesTimeOptions,
58
            ...dayTimeOptions,
59
            ...weekTimeOptions,
60
            ...monthTimeOptions,
61
            ...yearTimeOptions,
2539 stevensc 62
            ...nullTimeOptions
63
        ]
64
    }
65
 
821 stevensc 66
    return (
2539 stevensc 67
        <div className="">
1870 steven 68
            {/*  messages-list */}
69
            {/* <div className={`messages_conversation-search ${!searchActive && 'hide'}`}>
822 stevensc 70
                <input
71
                    type="search"
72
                    className='form-control'
831 stevensc 73
                    placeholder='Buscar conversación'
822 stevensc 74
                    onChange={(e) => setConversationSearch(e.target.value)}
75
                />
1870 steven 76
            </div> */}
837 stevensc 77
            <ul className={`${showConversation && 'msgs-hide'}`}>
1 www 78
                {
825 stevensc 79
                    (conversations)
821 stevensc 80
                        ?
2539 stevensc 81
                        getLastMessage().map((element, i) => {
821 stevensc 82
                            return (
1 www 83
                                <li
84
                                    id={i}
167 steven 85
                                    className={(selectedConversation === element ? "active" : '') + 'd-flex align-items-center'}
86
                                    style={{
87
                                        padding: '.7rem'
88
                                    }}
835 stevensc 89
                                    onClick={() => {
841 stevensc 90
                                        handleConversation(element);
835 stevensc 91
                                    }}
1 www 92
                                >
1871 steven 93
                                    <div className="usr-msg-details d-flex justify-content-start align-items-center">
1 www 94
                                        <div className="usr-ms-img">
95
                                            <img src={element.image} alt={element.name} />
96
                                        </div>
97
                                        <div className="usr-mg-info">
98
                                            <h3>{element.name}</h3>
1873 steven 99
                                            {
100
                                                !!element.count_unread && parseInt(element.count_unread) > 0 && (
1874 steven 101
                                                    <p className="text-gray"> {element.count_unread} mensajes nuevos | <span> {element.last_message} </span></p>
1873 steven 102
                                                )
103
                                            }
1 www 104
                                        </div>
1872 steven 105
                                        {/* {
821 stevensc 106
                                            !!element.count_unread && parseInt(element.count_unread) > 0 && (
1 www 107
                                                <span className="msg-notifc">
108
                                                    {element.count_unread}
109
                                                </span>
110
                                            )
1872 steven 111
                                        } */}
1 www 112
                                    </div>
113
                                </li>
114
                            )
115
                        })
821 stevensc 116
                        :
117
                        <li className="active">
118
                            <div className="usr-msg-details">
119
                                <div className="usr-mg-info">
120
                                    <h3>Sin conversaciones</h3>
121
                                </div>
1 www 122
                            </div>
821 stevensc 123
                        </li>
1 www 124
 
125
                }
126
            </ul>
127
        </div>
128
    )
129
}