|
@@ -105,6 +105,7 @@ const ChatBar = ({chatDivRef,selectedArr,setSelectedArr,isSomeSelected,setIsSome
|
|
const [isForward, setIsForward] = useState<TMessage | undefined>(undefined)
|
|
const [isForward, setIsForward] = useState<TMessage | undefined>(undefined)
|
|
const [modalForward, setModalForward] = useState<boolean>(false)
|
|
const [modalForward, setModalForward] = useState<boolean>(false)
|
|
let time: any
|
|
let time: any
|
|
|
|
+ let tongue: any
|
|
const isSelected = (_id: string) => selectedArr.some((el: string) => el === _id)
|
|
const isSelected = (_id: string) => selectedArr.some((el: string) => el === _id)
|
|
const handleSelected = (_id: string) => {
|
|
const handleSelected = (_id: string) => {
|
|
!isSomeSelected&&setIsSomeSelected(true)
|
|
!isSomeSelected&&setIsSomeSelected(true)
|
|
@@ -123,8 +124,14 @@ const ChatBar = ({chatDivRef,selectedArr,setSelectedArr,isSomeSelected,setIsSome
|
|
isReply&&setIsReply(undefined)
|
|
isReply&&setIsReply(undefined)
|
|
setIsForward(renderArr.find((el) => el._id === _id))
|
|
setIsForward(renderArr.find((el) => el._id === _id))
|
|
setModalForward(true)
|
|
setModalForward(true)
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ const setTongueAndTime = (_id: string) => {
|
|
|
|
+ openPinned && dispatch(actionOpenPinned(false))
|
|
|
|
+ isReply&&setIsReply(undefined)
|
|
|
|
+ setIsForward(renderArr.find((el) => el._id === _id))
|
|
|
|
+ setModalForward(true)
|
|
|
|
+ }
|
|
const handleScrollTo = useCallback(() => {
|
|
const handleScrollTo = useCallback(() => {
|
|
chatDivRef.current&&chatDivRef.current.scrollTo({
|
|
chatDivRef.current&&chatDivRef.current.scrollTo({
|
|
top: chatDivRef.current.scrollHeight,
|
|
top: chatDivRef.current.scrollHeight,
|
|
@@ -205,23 +212,52 @@ const ChatBar = ({chatDivRef,selectedArr,setSelectedArr,isSomeSelected,setIsSome
|
|
<div id={companionId} ref={chatDivRef} onScroll={debouncedHandleScroll}
|
|
<div id={companionId} ref={chatDivRef} onScroll={debouncedHandleScroll}
|
|
className={messagesMemo.length > 0 ? classes.messagesScroll : classes.messagesEmpty}>
|
|
className={messagesMemo.length > 0 ? classes.messagesScroll : classes.messagesEmpty}>
|
|
<div className={classes.messagesBody}>
|
|
<div className={classes.messagesBody}>
|
|
- {messagesMemo.length > 0 ? renderArr.map(({ replyMessage,message, name, lastName, color,pinned,
|
|
|
|
- createdAt,number, type,fullType,replyName,replyLastName,replyCaption,caption,emoji,emojiCompanion,_id,oldId,forwardName,forwardLastName,companionIdForwardToAndFrom}) => {
|
|
|
|
|
|
+ {messagesMemo.length > 0 ? renderArr.map(({ replyMessage,message, name, lastName,avatarUrl,color,pinned,
|
|
|
|
+ createdAt, number, type, fullType, replyName, replyLastName, replyCaption, caption, emoji, emojiCompanion,
|
|
|
|
+ _id, oldId, forwardName, forwardLastName, companionIdForwardToAndFrom},i) => {
|
|
|
|
+ const watched = true
|
|
let isTime
|
|
let isTime
|
|
|
|
+ let isTongue = false
|
|
|
|
+ const nextTongue = renderArr[i + 1]
|
|
if (!time) {
|
|
if (!time) {
|
|
isTime = true
|
|
isTime = true
|
|
time = createdAt
|
|
time = createdAt
|
|
} else if (timeStampFilter(time) !== timeStampFilter(createdAt)) {
|
|
} else if (timeStampFilter(time) !== timeStampFilter(createdAt)) {
|
|
time = createdAt
|
|
time = createdAt
|
|
isTime = true
|
|
isTime = true
|
|
|
|
+ }
|
|
|
|
+ if (!tongue&&nextTongue&&nextTongue.number === number) {
|
|
|
|
+ isTongue = false
|
|
|
|
+ tongue = number
|
|
|
|
+ } else if (!tongue&&nextTongue&&nextTongue.number !== number) {
|
|
|
|
+ isTongue = true
|
|
|
|
+ tongue = null
|
|
|
|
+ } else if (tongue&&nextTongue&&tongue === number&&nextTongue.number === number) {
|
|
|
|
+ isTongue = false
|
|
|
|
+ tongue = number
|
|
|
|
+ } else if (tongue&&nextTongue&&tongue === number&&nextTongue.number !== number) {
|
|
|
|
+ isTongue = true
|
|
|
|
+ tongue = null
|
|
|
|
+ } else if (tongue&&!nextTongue&&tongue === number) {
|
|
|
|
+ isTongue = true
|
|
|
|
+ tongue = null
|
|
|
|
+ } else if (tongue&&!nextTongue&&tongue !== number) {
|
|
|
|
+ isTongue = false
|
|
|
|
+ tongue = number
|
|
|
|
+ }
|
|
|
|
+ if (nextTongue && timeStampFilter(nextTongue.createdAt) !== timeStampFilter(createdAt)) {
|
|
|
|
+ isTongue = true
|
|
}
|
|
}
|
|
const url = `${prodAwsS3}/${message}`
|
|
const url = `${prodAwsS3}/${message}`
|
|
const urlReply = `${prodAwsS3}/${replyMessage}`
|
|
const urlReply = `${prodAwsS3}/${replyMessage}`
|
|
if (number !== userNumber) {
|
|
if (number !== userNumber) {
|
|
if (type === 'text' && !oldId && !companionIdForwardToAndFrom) return (<div key={createdAt} id={_id} style={{borderRadius: 7}}>
|
|
if (type === 'text' && !oldId && !companionIdForwardToAndFrom) return (<div key={createdAt} id={_id} style={{borderRadius: 7}}>
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
- <MessageLeftText
|
|
|
|
|
|
+ <MessageLeftText
|
|
message={message}
|
|
message={message}
|
|
|
|
+ tongue={isTongue}
|
|
|
|
+ avatarUrl={avatarUrl}
|
|
|
|
+ color={color}
|
|
createdAt={createdAt}
|
|
createdAt={createdAt}
|
|
name={name}
|
|
name={name}
|
|
lastName={lastName}
|
|
lastName={lastName}
|
|
@@ -241,6 +277,9 @@ const ChatBar = ({chatDivRef,selectedArr,setSelectedArr,isSomeSelected,setIsSome
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
<MessageLeftReply
|
|
<MessageLeftReply
|
|
url={urlReply}
|
|
url={urlReply}
|
|
|
|
+ tongue={isTongue}
|
|
|
|
+ avatarUrl={avatarUrl}
|
|
|
|
+ color={color}
|
|
replyMessage={replyMessage}
|
|
replyMessage={replyMessage}
|
|
message={message}
|
|
message={message}
|
|
createdAt={createdAt}
|
|
createdAt={createdAt}
|
|
@@ -268,6 +307,9 @@ const ChatBar = ({chatDivRef,selectedArr,setSelectedArr,isSomeSelected,setIsSome
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
<MessageLeftForward
|
|
<MessageLeftForward
|
|
url={url}
|
|
url={url}
|
|
|
|
+ tongue={isTongue}
|
|
|
|
+ avatarUrl={avatarUrl}
|
|
|
|
+ color={color}
|
|
name={name}
|
|
name={name}
|
|
lastName={lastName}
|
|
lastName={lastName}
|
|
forwardName={forwardName}
|
|
forwardName={forwardName}
|
|
@@ -292,8 +334,10 @@ const ChatBar = ({chatDivRef,selectedArr,setSelectedArr,isSomeSelected,setIsSome
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
<MessageLeftImage
|
|
<MessageLeftImage
|
|
url={url}
|
|
url={url}
|
|
- createdAt={createdAt}
|
|
|
|
|
|
+ tongue={isTongue}
|
|
|
|
+ avatarUrl={avatarUrl}
|
|
color={color}
|
|
color={color}
|
|
|
|
+ createdAt={createdAt}
|
|
fullType={fullType}
|
|
fullType={fullType}
|
|
caption={caption}
|
|
caption={caption}
|
|
emoji={emoji}
|
|
emoji={emoji}
|
|
@@ -313,6 +357,9 @@ const ChatBar = ({chatDivRef,selectedArr,setSelectedArr,isSomeSelected,setIsSome
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
<MessageLeftAudio
|
|
<MessageLeftAudio
|
|
url={url}
|
|
url={url}
|
|
|
|
+ tongue={isTongue}
|
|
|
|
+ avatarUrl={avatarUrl}
|
|
|
|
+ color={color}
|
|
name={name}
|
|
name={name}
|
|
lastName={lastName}
|
|
lastName={lastName}
|
|
createdAt={createdAt}
|
|
createdAt={createdAt}
|
|
@@ -333,8 +380,11 @@ const ChatBar = ({chatDivRef,selectedArr,setSelectedArr,isSomeSelected,setIsSome
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
<MessageLeftVideo
|
|
<MessageLeftVideo
|
|
url={url}
|
|
url={url}
|
|
|
|
+ tongue={isTongue}
|
|
|
|
+ avatarUrl={avatarUrl}
|
|
|
|
+ color={color}
|
|
name={name}
|
|
name={name}
|
|
- lastName={lastName}
|
|
|
|
|
|
+ lastName={lastName}
|
|
createdAt={createdAt}
|
|
createdAt={createdAt}
|
|
fullType={fullType}
|
|
fullType={fullType}
|
|
caption={caption}
|
|
caption={caption}
|
|
@@ -353,6 +403,9 @@ const ChatBar = ({chatDivRef,selectedArr,setSelectedArr,isSomeSelected,setIsSome
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
<MessageLeftFile
|
|
<MessageLeftFile
|
|
url={url}
|
|
url={url}
|
|
|
|
+ tongue={isTongue}
|
|
|
|
+ avatarUrl={avatarUrl}
|
|
|
|
+ color={color}
|
|
name={name}
|
|
name={name}
|
|
lastName={lastName}
|
|
lastName={lastName}
|
|
createdAt={createdAt}
|
|
createdAt={createdAt}
|
|
@@ -374,6 +427,10 @@ const ChatBar = ({chatDivRef,selectedArr,setSelectedArr,isSomeSelected,setIsSome
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
<MessageRightText
|
|
<MessageRightText
|
|
message={message}
|
|
message={message}
|
|
|
|
+ tongue={isTongue}
|
|
|
|
+ watched={watched}
|
|
|
|
+ avatarUrl={avatarUrl}
|
|
|
|
+ color={color}
|
|
createdAt={createdAt}
|
|
createdAt={createdAt}
|
|
name={name}
|
|
name={name}
|
|
lastName={lastName}
|
|
lastName={lastName}
|
|
@@ -393,6 +450,10 @@ const ChatBar = ({chatDivRef,selectedArr,setSelectedArr,isSomeSelected,setIsSome
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
<MessageRightReply
|
|
<MessageRightReply
|
|
url={urlReply}
|
|
url={urlReply}
|
|
|
|
+ tongue={isTongue}
|
|
|
|
+ watched={watched}
|
|
|
|
+ avatarUrl={avatarUrl}
|
|
|
|
+ color={color}
|
|
replyMessage={replyMessage}
|
|
replyMessage={replyMessage}
|
|
message={message}
|
|
message={message}
|
|
createdAt={createdAt}
|
|
createdAt={createdAt}
|
|
@@ -420,6 +481,10 @@ const ChatBar = ({chatDivRef,selectedArr,setSelectedArr,isSomeSelected,setIsSome
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
<MessageRightForward
|
|
<MessageRightForward
|
|
url={url}
|
|
url={url}
|
|
|
|
+ tongue={isTongue}
|
|
|
|
+ watched={watched}
|
|
|
|
+ avatarUrl={avatarUrl}
|
|
|
|
+ color={color}
|
|
name={name}
|
|
name={name}
|
|
lastName={lastName}
|
|
lastName={lastName}
|
|
forwardName={forwardName}
|
|
forwardName={forwardName}
|
|
@@ -444,8 +509,11 @@ const ChatBar = ({chatDivRef,selectedArr,setSelectedArr,isSomeSelected,setIsSome
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
<MessageRightImage
|
|
<MessageRightImage
|
|
url={url}
|
|
url={url}
|
|
- createdAt={createdAt}
|
|
|
|
|
|
+ tongue={isTongue}
|
|
|
|
+ watched={watched}
|
|
|
|
+ avatarUrl={avatarUrl}
|
|
color={color}
|
|
color={color}
|
|
|
|
+ createdAt={createdAt}
|
|
fullType={fullType}
|
|
fullType={fullType}
|
|
caption={caption}
|
|
caption={caption}
|
|
emoji={emoji}
|
|
emoji={emoji}
|
|
@@ -465,6 +533,10 @@ const ChatBar = ({chatDivRef,selectedArr,setSelectedArr,isSomeSelected,setIsSome
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
<MessageRightAudio
|
|
<MessageRightAudio
|
|
url={url}
|
|
url={url}
|
|
|
|
+ tongue={isTongue}
|
|
|
|
+ watched={watched}
|
|
|
|
+ avatarUrl={avatarUrl}
|
|
|
|
+ color={color}
|
|
name={name}
|
|
name={name}
|
|
lastName={lastName}
|
|
lastName={lastName}
|
|
createdAt={createdAt}
|
|
createdAt={createdAt}
|
|
@@ -485,6 +557,10 @@ const ChatBar = ({chatDivRef,selectedArr,setSelectedArr,isSomeSelected,setIsSome
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
<MessageRightVideo
|
|
<MessageRightVideo
|
|
url={url}
|
|
url={url}
|
|
|
|
+ tongue={isTongue}
|
|
|
|
+ watched={watched}
|
|
|
|
+ avatarUrl={avatarUrl}
|
|
|
|
+ color={color}
|
|
name={name}
|
|
name={name}
|
|
lastName={lastName}
|
|
lastName={lastName}
|
|
createdAt={createdAt}
|
|
createdAt={createdAt}
|
|
@@ -505,6 +581,10 @@ const ChatBar = ({chatDivRef,selectedArr,setSelectedArr,isSomeSelected,setIsSome
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
{isTime&&<MessageTime message={timeStampFilter(createdAt)}/>}
|
|
<MessageRightFile
|
|
<MessageRightFile
|
|
url={url}
|
|
url={url}
|
|
|
|
+ tongue={isTongue}
|
|
|
|
+ watched={watched}
|
|
|
|
+ avatarUrl={avatarUrl}
|
|
|
|
+ color={color}
|
|
name={name}
|
|
name={name}
|
|
lastName={lastName}
|
|
lastName={lastName}
|
|
createdAt={createdAt}
|
|
createdAt={createdAt}
|