Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev 3120 Rev 3122
Línea 69... Línea 69...
69
 
69
 
70
function propsAreEqual(prevProp, nextProp) {
70
function propsAreEqual(prevProp, nextProp) {
71
  return prevProp.not_seen_messages === nextProp.not_seen_messages
71
  return prevProp.not_seen_messages === nextProp.not_seen_messages
Línea 72... Línea 72...
72
}
72
}
Línea 73... Línea 73...
73
 
73
 
74
const PersonalChat = ({ entity, index, onClose, onMinimize, onRead, not_seen_messages, loading }) => {
74
const PersonalChat = ({ entity, index, onClose, onMinimize, onRead, not_seen_messages }) => {
75
 
75
 
76
  // entity destructuring
76
  // entity destructuring
77
  const {
77
  const {
78
    id,
78
    id,
79
    image,
79
    image,
80
    name,
-
 
81
    online,
80
    name,
82
    type,
81
    online,
83
    url_close,
82
    type,
84
    url_get_all_messages,
83
    url_get_all_messages,
85
    url_send,
84
    url_send,
Línea 105... Línea 104...
105
  const [availableContactsToAdd, setAvailableContactsToAdd] = useState([]);
104
  const [availableContactsToAdd, setAvailableContactsToAdd] = useState([]);
106
  const [groupContactsList, setGroupContactsList] = useState([]);
105
  const [groupContactsList, setGroupContactsList] = useState([]);
107
  const [confirmModalShow, setConfirmModalShow] = useState(false);
106
  const [confirmModalShow, setConfirmModalShow] = useState(false);
108
  const [showEmojiTab, setShowEmojiTab] = useState(false);
107
  const [showEmojiTab, setShowEmojiTab] = useState(false);
109
  const [shareFileModalShow, setShareFileModalShow] = useState(false);
108
  const [shareFileModalShow, setShareFileModalShow] = useState(false);
-
 
109
  const [loading, setLoading] = useState(false);
Línea 110... Línea 110...
110
 
110
 
111
  // refs
111
  // refs
112
  const conversationListEl = useRef(null);
112
  const conversationListEl = useRef(null);
113
  const loader = useRef(null);
113
  const loader = useRef(null);
Línea 120... Línea 120...
120
    add_person_to_group: "add_person_to_group",
120
    add_person_to_group: "add_person_to_group",
121
    group_contacts_list: "group_contacts_list",
121
    group_contacts_list: "group_contacts_list",
122
    default: "default",
122
    default: "default",
123
  };
123
  };
Línea 124... Línea -...
124
 
-
 
125
  // timeIntervals
-
 
126
  let getMessageInterval;
-
 
127
 
124
 
128
  const handleActive = () => {
125
  const handleActive = () => {
129
    onRead(index);
126
    onRead(entity);
130
    onMinimize(index);
127
    onMinimize(index);
Línea 131... Línea -...
131
  };
-
 
132
 
-
 
133
  // const handleGetMessages = async () => {
-
 
134
  //   await axios.get(url_get_all_messages).then((response) => {
-
 
135
  //     const resData = response.data;
-
 
136
  //     if (resData.success) {
-
 
137
  //       const updatedMessages = resData.data.items.slice();
-
 
138
  //       let newNewMessages = [];
-
 
139
  //       updatedMessages.map((updatedNewMessage) => {
-
 
140
  //         const existInNewMessages = newMessages.findIndex(
-
 
141
  //           (newMessage) => newMessage.id === updatedNewMessage.id
-
 
142
  //         );
-
 
143
  //         if (existInNewMessages === -1) {
-
 
144
  //           newNewMessages = [updatedNewMessage, ...newNewMessages];
-
 
145
  //           setPages(resData.data.pages);
-
 
146
  //         }
-
 
147
  //       });
-
 
148
  //       if (newNewMessages.length > 0) {
-
 
149
  //         setNewMessages((prevState) => [...prevState, ...newNewMessages]);
-
 
150
  //       }
-
 
151
 
-
 
152
  //       // setMessages([...resData.data.items, ...oldMessages]);
-
 
153
  //     }
-
 
154
  //   });
-
 
155
  //   onRead(index);
-
 
156
  // };
128
  };
-
 
129
 
157
 
130
  const handleGetMessages = async () => {
158
  const handleGetMessages = async () => {
131
    setLoading(true)
159
    const response = await axios.get(url_get_all_messages);
132
    const response = await axios.get(url_get_all_messages);
160
    const resData = response.data;
133
    const resData = response.data;
161
    if (!resData.success) {
134
    if (!resData.success) {
Línea 169... Línea 142...
169
      return acum;
142
      return acum;
170
    }, []);
143
    }, []);
Línea 171... Línea 144...
171
 
144
 
172
    if (newMessages.length > 0) {
145
    if (newMessages.length > 0) {
-
 
146
      setMessages([...messages, ...newMessages]);
173
      setMessages([...messages, ...newMessages]);
147
      setLoading(false)
174
      setPages(resData.data.pages);
148
      setPages(resData.data.pages);
175
      scrollToBottom();
149
      scrollToBottom();
176
    } else {
150
    } else {
-
 
151
      setMessages([...updatedMessages]);
177
      setMessages([...updatedMessages]);
152
      setLoading(false)
178
    }
153
    }
Línea 179... Línea 154...
179
  };
154
  };
180
 
155
 
Línea 190... Línea 165...
190
          }
165
          }
191
        }
166
        }
192
      });
167
      });
193
  };
168
  };
Línea 194... Línea 169...
194
 
169
 
195
  const handleCloseChat = () => {
-
 
196
    onClose(id, url_close);
-
 
197
  };
-
 
198
 
-
 
199
  useEffect(() => {
-
 
200
    if (document.activeElement === textAreaEl.current && not_seen_messages) {
-
 
201
      onRead(index)
-
 
202
    }
-
 
Línea 203... Línea 170...
203
  }, [messages])
170
  const handleCloseChat = () => onClose(entity)
204
 
171
 
205
  const handleChatBoxKeyDown = async (e) => {
172
  const handleChatBoxKeyDown = async (e) => {
206
    if (e.key === "Enter") {
173
    if (e.key === "Enter") {
Línea 246... Línea 213...
246
      }
213
      }
247
    });
214
    });
248
  };
215
  };
Línea 249... Línea 216...
249
 
216
 
-
 
217
  const handleConfirmModalAction = async () => {
250
  const handleConfirmModalAction = async () => {
218
    try {
-
 
219
      const { data } = axios.post(modalActionUrl.current)
251
    await axios.post(modalActionUrl.current).then((response) => {
220
      if (!data.success) console.log('Error in confirm modal action')
252
      const resData = response.data;
221
      return onClose(entity);
253
      if (resData.success) {
222
    } catch (error) {
254
      }
223
      console.log(error)
255
    });
-
 
256
    await onClose(id, url_close);
224
    }
Línea 257... Línea 225...
257
  };
225
  };
258
 
226
 
259
  const handleObserver = (entities) => {
227
  const handleObserver = (entities) => {
Línea 331... Línea 299...
331
    };
299
    };
332
  }, [currentPage]);
300
  }, [currentPage]);
Línea 333... Línea 301...
333
 
301
 
334
  // getMessagesInterval
302
  // getMessagesInterval
335
  useEffect(() => {
-
 
336
    let timer;
303
  useEffect(() => {
337
    if (window.location.pathname === '/group/my-groups') {
304
    if (window.location.pathname === '/group/my-groups') {
338
      const items = document.getElementsByClassName('sc-jSgupP')
305
      const items = document.getElementsByClassName('sc-jSgupP')
339
      if (items && items.length > 0)
306
      if (items && items.length > 0)
340
        items[0].style.display = 'none';
307
        items[0].style.display = 'none';
341
    }
308
    }
342
    if (!minimized && !loading) {
-
 
Línea -... Línea 309...
-
 
309
  }, [minimized]);
343
      timer = () => setTimeout(() => handleGetMessages(), 2000);
310
 
-
 
311
  useEffect(() => {
-
 
312
    let timer;
344
 
313
    if (!minimized && !loading) {
345
      timer()
314
      timer = setTimeout(() => handleGetMessages(), 1000);
346
    }
315
    }
347
    return () => {
316
    return () => {
348
      clearTimeout(timer)
317
      clearTimeout(timer);
349
    }
318
    };
350
  }, [minimized, loading]);
319
  }, [minimized, loading]);
351
  
320
 
352
  const handleConfirmModalShow = () => {
321
  const handleConfirmModalShow = () => {
Línea 353... Línea 322...
353
    setConfirmModalShow(!confirmModalShow);
322
    setConfirmModalShow(!confirmModalShow);
Línea 764... Línea 733...
764
                          style={{ resize: "none", height: "20px" }}
733
                          style={{ resize: "none", height: "20px" }}
765
                          placeholder="Escribe un mensaje"
734
                          placeholder="Escribe un mensaje"
766
                          onKeyDown={handleChatBoxKeyDown}
735
                          onKeyDown={handleChatBoxKeyDown}
767
                          ref={textAreaEl}
736
                          ref={textAreaEl}
768
                          onBlur={() => responseMessage && setResponseMessage(null)}
737
                          onBlur={() => responseMessage && setResponseMessage(null)}
769
                          onFocus={() => onRead(index)}
738
                          onFocus={() => not_seen_messages && onRead(entity)}
770
                        ></textarea>
739
                        />
771
                        <input
740
                        <input
772
                          id="to_uname"
741
                          id="to_uname"
773
                          name="to_uname"
742
                          name="to_uname"
774
                          value="'+chatboxtitle+'"
743
                          value="'+chatboxtitle+'"
775
                          type="hidden"
744
                          type="hidden"
Línea 955... Línea 924...
955
                          name="chattxt"
924
                          name="chattxt"
956
                          style={{ resize: "none", height: "20px" }}
925
                          style={{ resize: "none", height: "20px" }}
957
                          placeholder="Escribe un mensaje"
926
                          placeholder="Escribe un mensaje"
958
                          onKeyDown={handleChatBoxKeyDown}
927
                          onKeyDown={handleChatBoxKeyDown}
959
                          ref={textAreaEl}
928
                          ref={textAreaEl}
960
                          onFocus={() => onRead(index)}
929
                          onFocus={() => not_seen_messages && onRead(entity)}
961
                          onBlur={() => responseMessage && setResponseMessage(null)}
930
                          onBlur={() => responseMessage && setResponseMessage(null)}
962
                        ></textarea>
931
                        ></textarea>
963
                        <input
932
                        <input
964
                          id="to_uname"
933
                          id="to_uname"
965
                          name="to_uname"
934
                          name="to_uname"