Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 1732 | Rev 1734 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1732 Rev 1733
Línea 7... Línea 7...
7
export default props => {
7
export default props => {
8
    const defaultPages = { current: 1, last: 1 }
8
    const defaultPages = { current: 1, last: 1 }
9
    const [conversations, setConversations] = useState([])
9
    const [conversations, setConversations] = useState([])
10
    const [showConversations, setShowConversations] = useState(false)
10
    const [showConversations, setShowConversations] = useState(false)
11
    const [selectedConversation, setSelectedConversation] = useState(null)
11
    const [selectedConversation, setSelectedConversation] = useState(null)
12
    const [loading, setLoading] = useState(false)
-
 
13
    const [page, setPage] = useState(defaultPages)
12
    const [page, setPage] = useState(defaultPages)
14
    const [messages, setMessages] = useState([])
13
    const [messages, setMessages] = useState([])
15
    const [isGettingMessages, setIsGettingMessages] = useState(false)
14
    const [isGettingMessages, setIsGettingMessages] = useState(false)
16
    const [visible, setVisible] = useState(false)
15
    const [visible, setVisible] = useState(false)
17
    const [searchActive, setSearchActive] = useState(false)
16
    const [searchActive, setSearchActive] = useState(false)
Línea 27... Línea 26...
27
        } catch (error) {
26
        } catch (error) {
28
            console.log('>>: error > ', error)
27
            console.log('>>: error > ', error)
29
        }
28
        }
30
    }
29
    }
Línea 31... Línea -...
31
 
-
 
32
    useEffect(() => {
-
 
33
        const interval = setInterval(() => {
-
 
34
            load()
-
 
35
        }, 3000)
-
 
36
 
-
 
37
        return () => {
-
 
38
            clearInterval(interval)
-
 
39
        };
-
 
40
    }, []);
-
 
41
 
30
 
42
    const getMessages = async (conversation = selectedConversation, _page = defaultPages.current, justPaginate = false) => {
31
    const getMessages = async (conversation = selectedConversation, _page = defaultPages.current, justPaginate = false) => {
43
        try {
32
        try {
44
            const res = await axios.get(conversation.messages_link + '?page=' + _page)
-
 
45
 
33
            const res = await axios.get(conversation.messages_link + '?page=' + _page)
-
 
34
            if (res.data.pagination?.last !== page.last) {
-
 
35
                setPage({
46
            if (res.data.pagination?.last !== page.last) {
36
                    ...page,
-
 
37
                    last: res.data.pagination.last
47
                setPage({ ...page, last: res.data.pagination.last })
38
                })
48
            }
-
 
49
 
39
            }
50
            if (justPaginate) {
40
            if (justPaginate) {
51
                setMessages([...messages, ...res.data.data])
41
                setMessages([...messages, ...res.data.data])
52
                setLoading(false)
42
            } else {
53
                return
43
                setMessages(res.data.data)
54
            }
-
 
55
 
-
 
56
 
-
 
57
            setMessages(res.data.data)
44
            }
58
            setLoading(false)
45
            setIsGettingMessages(false)
59
        }
46
        }
60
        catch (error) {
47
        catch (error) {
61
            console.log('>>: error > ', error)
48
            console.log('>>: error > ', error)
62
        }
49
        }
Línea 63... Línea 50...
63
    }
50
    }
64
 
51
 
65
    const handleChangeConversation = async conversation => {
52
    const handleChangeConversation = async conversation => {
66
        setPage(defaultPages)
53
        setPage(defaultPages)
-
 
54
        setMessages([])
67
        setMessages([])
55
        setSelectedConversation(conversation)
Línea 68... Línea 56...
68
        setSelectedConversation(conversation)
56
        getMessages(conversation, defaultPages.current)
69
    }
57
    }
70
 
58
 
Línea 85... Línea 73...
85
            }
73
            }
86
        }
74
        }
87
    }
75
    }
Línea 88... Línea 76...
88
 
76
 
89
    const getMoreMessages = () => {
77
    const getMoreMessages = () => {
90
        if (!loading) {
78
        if (!isGettingMessages) {
91
            setIsGettingMessages(true)
79
            setIsGettingMessages(true)
92
        }
80
        }
93
        if (page.last > page.current) {
81
        if (page.last > page.current) {
94
            setPage({ ...page, current: page.current += 1 })
82
            setPage({ ...page, current: page.current += 1 })
Línea 98... Línea 86...
98
 
86
 
99
    const onClose = () => {
87
    const onClose = () => {
100
        setVisible(false)
88
        setVisible(false)
Línea 101... Línea 89...
101
    }
89
    }
102
 
-
 
103
    const handleChange = async e => {
-
 
104
        const value = e.target.value
90
 
105
        setSearch(value)
91
    const searchUsers = async e => {
106
        try {
92
        try {
107
            const res = await axios.get('/helpers/search-people?search=' + value)
93
            const res = await axios.get('/helpers/search-people?search=' + value)
108
            if (res.data.success) {
94
            if (res.data.success) {
Línea 112... Línea 98...
112
            console.log('>>: error > ', error)
98
            console.log('>>: error > ', error)
113
        }
99
        }
114
    }
100
    }
Línea 115... Línea 101...
115
 
101
 
116
    const handleInmailPerson = uuid => {
-
 
117
        console.log('>>: uuid > ', uuid)
102
    const handleInmailPerson = uuid => {
118
        onClose()
103
        onClose()
119
        window.location.href = '/inmail/' + uuid
104
        window.location.href = '/inmail/' + uuid
120
        setTimeout(() => {
105
        setTimeout(() => {
121
            window.location.reload()
106
            window.location.reload()
Línea 124... Línea 109...
124
 
109
 
125
    const handleShowConversation = (arg) => {
110
    const handleShowConversation = (arg) => {
126
        setShowConversations(arg)
111
        setShowConversations(arg)
Línea -... Línea 112...
-
 
112
    }
-
 
113
 
-
 
114
    useEffect(() => {
-
 
115
        const interval = setInterval(() => {
-
 
116
            load()
-
 
117
        }, 3000)
-
 
118
 
-
 
119
        return () => {
-
 
120
            clearInterval(interval)
-
 
121
        };
-
 
122
    }, []);
-
 
123
 
-
 
124
    useEffect(() => {
-
 
125
        searchUsers()
127
    }
126
    }, [search]);
128
 
127
 
129
    return (
128
    return (
130
        <>
129
        <>
131
            <Modal
130
            <Modal
Línea 141... Línea 140...
141
                                type="email"
140
                                type="email"
142
                                className="form-control"
141
                                className="form-control"
143
                                id="search-people"
142
                                id="search-people"
144
                                aria-describedby="Buscador de personas"
143
                                aria-describedby="Buscador de personas"
145
                                placeholder="Escribe el nombre de la persona"
144
                                placeholder="Escribe el nombre de la persona"
146
                                onChange={handleChange}
145
                                onChange={(e) => setSearch(e.target.value)}
147
                            />
146
                            />
148
                        </div>
147
                        </div>
149
                        <div
-
 
150
                            className='container'
148
                        <div className='container'>
151
                        >
-
 
152
                            {
149
                            {
153
                                inmailPersons.map(element => {
150
                                inmailPersons.map(element => {
154
                                    return (
151
                                    return (
155
                                        <div
152
                                        <div
156
                                            className='row'
153
                                            className='row'
157
                                            key={element.value}
154
                                            key={element.value}
158
                                        >
155
                                        >
159
                                            <div
-
 
160
                                                className='col-8'
156
                                            <div className='col-8'>
161
                                            >
-
 
162
                                                <p> {element.text} </p>
157
                                                <p> {element.text} </p>
163
                                            </div>
158
                                            </div>
164
                                            <div
-
 
165
                                                className='col-4'
159
                                            <div className='col-4'>
166
                                            >
-
 
167
                                                <button
160
                                                <button
168
                                                    className='btn btn-primary'
161
                                                    className='btn btn-primary'
169
                                                    onClick={() => handleInmailPerson(element.value)}
162
                                                    onClick={() => handleInmailPerson(element.value)}
170
                                                >
163
                                                >
171
                                                    <i className='fa fa-check' />
164
                                                    <i className='fa fa-check' />
Línea 182... Línea 175...
182
                    </div>
175
                    </div>
183
                </div>
176
                </div>
184
            </Modal>
177
            </Modal>
185
            <section className="messages-page">
178
            <section className="messages-page">
186
                <div className="container msgs-container">
179
                <div className="container msgs-container">
187
                    <div
-
 
188
                        className='w-100'
180
                    <div className='w-100'>
189
                    >
-
 
190
                        <h1>Sala de Intercambio Profesional</h1>
181
                        <h1>Sala de Intercambio Profesional</h1>
191
                    </div>
182
                    </div>
192
                    <div className="messages-sec">
183
                    <div className="messages-sec">
193
                        <div className="row">
184
                        <div className="row">
194
                            <div className="col-lg-4 col-md-12 inmail_conversations-list">
185
                            <div className="col-lg-4 col-md-12 inmail_conversations-list">
195
                                <div className="msgs-list">
186
                                <div className="msgs-list">
196
                                    <div
-
 
197
                                        className="msg-title"
187
                                    <div className="msg-title">
198
                                    >
-
 
199
                                        <h3>Personas</h3>
188
                                        <h3>Personas</h3>
200
 
-
 
201
                                        <div className="msgs_icons-container">
189
                                        <div className="msgs_icons-container">
202
                                            {
190
                                            {
203
                                                !showConversations
191
                                                !showConversations
204
                                                &&
192
                                                &&
205
                                                <i
193
                                                <i