|
@@ -28,7 +28,7 @@ import { timeStampFilter,prodAwsS3,refreshAppTime } from "../../../../helpers";
|
|
const debounce = require('lodash.debounce');
|
|
const debounce = require('lodash.debounce');
|
|
|
|
|
|
const useStyles = makeStyles({
|
|
const useStyles = makeStyles({
|
|
- container: {
|
|
|
|
|
|
+ container: {
|
|
height: '93vh',
|
|
height: '93vh',
|
|
width: "100%",
|
|
width: "100%",
|
|
display: "flex",
|
|
display: "flex",
|
|
@@ -69,12 +69,19 @@ const useStyles = makeStyles({
|
|
justifyContent: 'center',
|
|
justifyContent: 'center',
|
|
paddingTop: 30,
|
|
paddingTop: 30,
|
|
},
|
|
},
|
|
- messagesBody: {
|
|
|
|
|
|
+ messagesBody: {
|
|
width: "60%",
|
|
width: "60%",
|
|
- },
|
|
|
|
|
|
+ },
|
|
});
|
|
});
|
|
|
|
|
|
-const ChatBar = () => {
|
|
|
|
|
|
+interface IChatBar {
|
|
|
|
+ selectedArr: string[] | [],
|
|
|
|
+ setSelectedArr: React.Dispatch<React.SetStateAction<string[] | []>>,
|
|
|
|
+ isSomeSelected: boolean,
|
|
|
|
+ setIsSomeSelected: React.Dispatch<React.SetStateAction<boolean>>,
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+const ChatBar = ({selectedArr,setSelectedArr,isSomeSelected,setIsSomeSelected}:IChatBar) => {
|
|
const classes = useStyles();
|
|
const classes = useStyles();
|
|
const dispatch = useDispatch()
|
|
const dispatch = useDispatch()
|
|
const messages = useSelector(getMessagesMemo)
|
|
const messages = useSelector(getMessagesMemo)
|
|
@@ -84,7 +91,14 @@ const ChatBar = () => {
|
|
const [isArrow, setIsArrow] = useState<boolean>(false)
|
|
const [isArrow, setIsArrow] = useState<boolean>(false)
|
|
const [isNew, setIsNew] = useState<{new:number,mute:boolean}>({new:0,mute:false})
|
|
const [isNew, setIsNew] = useState<{new:number,mute:boolean}>({new:0,mute:false})
|
|
const divRef = useRef<any | null>(null)
|
|
const divRef = useRef<any | null>(null)
|
|
- let time:any
|
|
|
|
|
|
+ let time: any
|
|
|
|
+ const isSelected = (_id: string) => selectedArr.some((el: string) => el === _id)
|
|
|
|
+ const handleSelected = (_id: string) => {
|
|
|
|
+ !isSomeSelected&&setIsSomeSelected(true)
|
|
|
|
+ if (selectedArr.some((el: string) => el === _id))
|
|
|
|
+ setSelectedArr(selectedArr.filter((el:string) => el !== _id))
|
|
|
|
+ else setSelectedArr([...selectedArr,_id])
|
|
|
|
+ }
|
|
const handleScrollTo = () => {
|
|
const handleScrollTo = () => {
|
|
divRef.current&&divRef.current.scrollTo({
|
|
divRef.current&&divRef.current.scrollTo({
|
|
top: divRef.current.scrollHeight,
|
|
top: divRef.current.scrollHeight,
|
|
@@ -127,7 +141,7 @@ const ChatBar = () => {
|
|
const { scrollHeight, clientHeight } = divRef.current
|
|
const { scrollHeight, clientHeight } = divRef.current
|
|
if(total !== seen&&scrollHeight === clientHeight) seenChat(companionId)
|
|
if(total !== seen&&scrollHeight === clientHeight) seenChat(companionId)
|
|
}
|
|
}
|
|
- }, [total,seen,companionId]);
|
|
|
|
|
|
+ }, [total, seen, companionId]);
|
|
|
|
|
|
return (
|
|
return (
|
|
<div className={classes.container} >
|
|
<div className={classes.container} >
|
|
@@ -157,6 +171,9 @@ const ChatBar = () => {
|
|
caption={caption}
|
|
caption={caption}
|
|
emoji={emoji}
|
|
emoji={emoji}
|
|
emojiCompanion={emojiCompanion}
|
|
emojiCompanion={emojiCompanion}
|
|
|
|
+ isSomeSelected={isSomeSelected}
|
|
|
|
+ isSelected={isSelected}
|
|
|
|
+ handleSelected={handleSelected}
|
|
_id={_id}
|
|
_id={_id}
|
|
/></div>)
|
|
/></div>)
|
|
if (type === 'image') return (<div key={createdAt}>
|
|
if (type === 'image') return (<div key={createdAt}>
|
|
@@ -169,6 +186,9 @@ const ChatBar = () => {
|
|
caption={caption}
|
|
caption={caption}
|
|
emoji={emoji}
|
|
emoji={emoji}
|
|
emojiCompanion={emojiCompanion}
|
|
emojiCompanion={emojiCompanion}
|
|
|
|
+ isSomeSelected={isSomeSelected}
|
|
|
|
+ isSelected={isSelected}
|
|
|
|
+ handleSelected={handleSelected}
|
|
_id={_id}
|
|
_id={_id}
|
|
/></div>)
|
|
/></div>)
|
|
if (type === 'audio') return (<div key={createdAt}>
|
|
if (type === 'audio') return (<div key={createdAt}>
|
|
@@ -180,6 +200,9 @@ const ChatBar = () => {
|
|
caption={caption}
|
|
caption={caption}
|
|
emoji={emoji}
|
|
emoji={emoji}
|
|
emojiCompanion={emojiCompanion}
|
|
emojiCompanion={emojiCompanion}
|
|
|
|
+ isSomeSelected={isSomeSelected}
|
|
|
|
+ isSelected={isSelected}
|
|
|
|
+ handleSelected={handleSelected}
|
|
_id={_id}
|
|
_id={_id}
|
|
/></div>)
|
|
/></div>)
|
|
if (type === 'video') return (<div key={createdAt}>
|
|
if (type === 'video') return (<div key={createdAt}>
|
|
@@ -191,6 +214,9 @@ const ChatBar = () => {
|
|
caption={caption}
|
|
caption={caption}
|
|
emoji={emoji}
|
|
emoji={emoji}
|
|
emojiCompanion={emojiCompanion}
|
|
emojiCompanion={emojiCompanion}
|
|
|
|
+ isSomeSelected={isSomeSelected}
|
|
|
|
+ isSelected={isSelected}
|
|
|
|
+ handleSelected={handleSelected}
|
|
_id={_id}
|
|
_id={_id}
|
|
/></div>)
|
|
/></div>)
|
|
if (type) return (<div key={createdAt}>
|
|
if (type) return (<div key={createdAt}>
|
|
@@ -202,6 +228,9 @@ const ChatBar = () => {
|
|
caption={caption}
|
|
caption={caption}
|
|
emoji={emoji}
|
|
emoji={emoji}
|
|
emojiCompanion={emojiCompanion}
|
|
emojiCompanion={emojiCompanion}
|
|
|
|
+ isSomeSelected={isSomeSelected}
|
|
|
|
+ isSelected={isSelected}
|
|
|
|
+ handleSelected={handleSelected}
|
|
_id={_id}
|
|
_id={_id}
|
|
/></div>)
|
|
/></div>)
|
|
} else {
|
|
} else {
|
|
@@ -215,6 +244,9 @@ const ChatBar = () => {
|
|
caption={caption}
|
|
caption={caption}
|
|
emoji={emoji}
|
|
emoji={emoji}
|
|
emojiCompanion={emojiCompanion}
|
|
emojiCompanion={emojiCompanion}
|
|
|
|
+ isSomeSelected={isSomeSelected}
|
|
|
|
+ isSelected={isSelected}
|
|
|
|
+ handleSelected={handleSelected}
|
|
_id={_id}
|
|
_id={_id}
|
|
/></div>)
|
|
/></div>)
|
|
if (type === 'image') return (<div key={createdAt}>
|
|
if (type === 'image') return (<div key={createdAt}>
|
|
@@ -227,6 +259,9 @@ const ChatBar = () => {
|
|
caption={caption}
|
|
caption={caption}
|
|
emoji={emoji}
|
|
emoji={emoji}
|
|
emojiCompanion={emojiCompanion}
|
|
emojiCompanion={emojiCompanion}
|
|
|
|
+ isSomeSelected={isSomeSelected}
|
|
|
|
+ isSelected={isSelected}
|
|
|
|
+ handleSelected={handleSelected}
|
|
_id={_id}
|
|
_id={_id}
|
|
/></div>)
|
|
/></div>)
|
|
if (type === 'audio') return (<div key={createdAt}>
|
|
if (type === 'audio') return (<div key={createdAt}>
|
|
@@ -238,6 +273,9 @@ const ChatBar = () => {
|
|
caption={caption}
|
|
caption={caption}
|
|
emoji={emoji}
|
|
emoji={emoji}
|
|
emojiCompanion={emojiCompanion}
|
|
emojiCompanion={emojiCompanion}
|
|
|
|
+ isSomeSelected={isSomeSelected}
|
|
|
|
+ isSelected={isSelected}
|
|
|
|
+ handleSelected={handleSelected}
|
|
_id={_id}
|
|
_id={_id}
|
|
/></div>)
|
|
/></div>)
|
|
if (type === 'video') return (<div key={createdAt}>
|
|
if (type === 'video') return (<div key={createdAt}>
|
|
@@ -249,6 +287,9 @@ const ChatBar = () => {
|
|
caption={caption}
|
|
caption={caption}
|
|
emoji={emoji}
|
|
emoji={emoji}
|
|
emojiCompanion={emojiCompanion}
|
|
emojiCompanion={emojiCompanion}
|
|
|
|
+ isSomeSelected={isSomeSelected}
|
|
|
|
+ isSelected={isSelected}
|
|
|
|
+ handleSelected={handleSelected}
|
|
_id={_id}
|
|
_id={_id}
|
|
/></div>)
|
|
/></div>)
|
|
if (type) return (<div key={createdAt}>
|
|
if (type) return (<div key={createdAt}>
|
|
@@ -260,6 +301,9 @@ const ChatBar = () => {
|
|
caption={caption}
|
|
caption={caption}
|
|
emoji={emoji}
|
|
emoji={emoji}
|
|
emojiCompanion={emojiCompanion}
|
|
emojiCompanion={emojiCompanion}
|
|
|
|
+ isSomeSelected={isSomeSelected}
|
|
|
|
+ isSelected={isSelected}
|
|
|
|
+ handleSelected={handleSelected}
|
|
_id={_id}
|
|
_id={_id}
|
|
/></div>)
|
|
/></div>)
|
|
}
|
|
}
|