Línea 1... |
Línea 1... |
1 |
/* eslint-disable react/prop-types */
|
1 |
/* eslint-disable react/prop-types */
|
2 |
import React, { Children } from "react";
|
- |
|
3 |
import { useState, useRef, useEffect } from "react";
|
2 |
import React, { useState, useRef, useEffect } from "react";
|
4 |
import styled from "styled-components";
|
- |
|
5 |
import { axios } from "../../../utils";
|
3 |
import { axios } from "../../../utils";
|
- |
|
4 |
import styled from "styled-components";
|
6 |
import Emojione from "./emojione/Emojione";
|
5 |
import Emojione from "./emojione/Emojione";
|
7 |
import SendFileModal from "./send-file-modal/SendFileModal";
|
6 |
import SendFileModal from "./send-file-modal/SendFileModal";
|
8 |
import ConfirmModal from "../../../shared/confirm-modal/ConfirmModal";
|
7 |
import ConfirmModal from "../../../shared/confirm-modal/ConfirmModal";
|
9 |
import MessageTemplate from "./messageTemplate/MessageTemplate";
|
8 |
import MessageTemplate from "./messageTemplate/MessageTemplate";
|
10 |
import { Button, Modal } from "react-bootstrap";
|
9 |
import { Modal } from "react-bootstrap";
|
11 |
import Spinner from "../../../shared/loading-spinner/Spinner";
|
- |
|
12 |
import { useForm } from "react-hook-form";
|
10 |
import { useForm } from "react-hook-form";
|
13 |
import FormErrorFeedback from "../../../shared/form-error-feedback/FormErrorFeedback";
|
11 |
import FormErrorFeedback from "../../../shared/form-error-feedback/FormErrorFeedback";
|
14 |
import 'react-datetime/css/react-datetime.css'
|
12 |
import 'react-datetime/css/react-datetime.css'
|
15 |
import Datetime from "react-datetime";
|
13 |
import Datetime from "react-datetime";
|
16 |
import { async } from "postcss-js";
|
- |
|
17 |
import { addNotification } from "../../../redux/notification/notification.actions";
|
14 |
import { addNotification } from "../../../redux/notification/notification.actions";
|
- |
|
15 |
import Spinner from "../../../shared/loading-spinner/Spinner";
|
18 |
import { useDispatch } from "react-redux";
|
16 |
import { useDispatch } from "react-redux";
|
- |
|
17 |
import SearchIcon from '@mui/icons-material/Search'
|
Línea 19... |
Línea 18... |
19 |
|
18 |
|
20 |
const StyledChatHead = styled.div`
|
19 |
const StyledChatHead = styled.div`
|
21 |
.notify {
|
20 |
.notify {
|
22 |
animation: notify 2s infinite;
|
21 |
animation: notify 2s infinite;
|
Línea 111... |
Línea 110... |
111 |
const [confirmModalShow, setConfirmModalShow] = useState(false);
|
110 |
const [confirmModalShow, setConfirmModalShow] = useState(false);
|
112 |
const [showEmojiTab, setShowEmojiTab] = useState(false);
|
111 |
const [showEmojiTab, setShowEmojiTab] = useState(false);
|
113 |
const [shareFileModalShow, setShareFileModalShow] = useState(false);
|
112 |
const [shareFileModalShow, setShareFileModalShow] = useState(false);
|
114 |
const [showConferenceModal, setShowConferenceModal] = useState(false);
|
113 |
const [showConferenceModal, setShowConferenceModal] = useState(false);
|
115 |
const [loading, setLoading] = useState(false);
|
114 |
const [loading, setLoading] = useState(false);
|
- |
|
115 |
const [search, setSearch] = useState('');
|
- |
|
116 |
|
- |
|
117 |
const filtredGroupList = groupContactsList.filter((conversation) => conversation.name.includes(search))
|
Línea 116... |
Línea 118... |
116 |
|
118 |
|
117 |
// refs
|
119 |
// refs
|
118 |
const conversationListEl = useRef(null);
|
120 |
const conversationListEl = useRef(null);
|
119 |
const loader = useRef(null);
|
121 |
const loader = useRef(null);
|
Línea 578... |
Línea 580... |
578 |
</React.Fragment>
|
580 |
</React.Fragment>
|
579 |
);
|
581 |
);
|
Línea 580... |
Línea 582... |
580 |
|
582 |
|
581 |
const groupContactsListTab = (
|
583 |
const groupContactsListTab = (
|
582 |
<React.Fragment>
|
- |
|
583 |
<span
|
- |
|
584 |
className="optionBack"
|
584 |
<React.Fragment>
|
585 |
onClick={() => handleChangeTab(optionTabs.default)}
|
- |
|
586 |
>
|
585 |
<span className="optionBack" onClick={() => handleChangeTab(optionTabs.default)}>
|
587 |
<i className="fa icon-arrow-left"></i>
|
586 |
<i className="fa icon-arrow-left" />
|
- |
|
587 |
</span>
|
- |
|
588 |
<div className='contact__search show'>
|
- |
|
589 |
<SearchIcon />
|
- |
|
590 |
<input
|
- |
|
591 |
type='text'
|
- |
|
592 |
placeholder='Buscar'
|
- |
|
593 |
onChange={(e) => setSearch(e.target.value)}
|
- |
|
594 |
/>
|
588 |
</span>
|
595 |
</div>
|
589 |
<div className="addPersonToGroupTab">
|
596 |
<div className="addPersonToGroupTab">
|
590 |
{groupContactsList.length ? (
|
597 |
{filtredGroupList.length ? (
|
591 |
groupContactsList.map(
|
598 |
filtredGroupList.map(
|
592 |
({ image, name, url_remove_from_group, id }) => (
|
599 |
({ image, name, url_remove_from_group, id }) => (
|
593 |
<div className="addPersonToGroupTab__person" key={id}>
|
600 |
<div className="addPersonToGroupTab__person" key={id}>
|
594 |
<div style={{ display: "flex", alignItems: "center" }}>
|
601 |
<div style={{ display: "flex", alignItems: "center" }}>
|
595 |
<img
|
602 |
<img
|