@@ -19,6 +19,7 @@ class Messenger extends Component {
1919 componentDidMount ( ) {
2020 height = window . innerHeight
2121 this . props . socket . emit ( 'COM_CHAT' , this . resetChat )
22+ this . props . socket . on ( 'PRIVATE_MESSAGE' , this . addChat )
2223 this . updateUserList ( )
2324 this . scrollDown ( )
2425 }
@@ -47,7 +48,7 @@ class Messenger extends Component {
4748 let newChats = chats . map ( ( chat ) => {
4849 if ( chat . id === chatId )
4950 chat . messages . push ( message )
50- console . log ( chat . messages ) ;
51+ // console.log(chat.messages, chat.name );
5152 return chat
5253 } )
5354
@@ -62,7 +63,7 @@ class Messenger extends Component {
6263
6364 setActiveChat = ( chat ) => {
6465 this . setState ( { activeChat : chat } )
65- console . log ( this . state . activeChat ) ;
66+ // console.log(this.state.activeChat);
6667 }
6768
6869 sendMessage = ( chatId , message ) => {
@@ -74,6 +75,22 @@ class Messenger extends Component {
7475 container . scrollTop = container . scrollHeight
7576 }
7677
78+ addPrivateChat = ( receiver ) => {
79+ const { socket, user} = this . props
80+ const duplicate = this . checkDuplicate ( receiver . name )
81+ if ( duplicate ) return null
82+ socket . emit ( 'PRIVATE_MESSAGE' , { receiver, author :user } )
83+ }
84+
85+ checkDuplicate = ( recName ) => {
86+ const isDup = this . state . chats . find ( ( chat ) => {
87+ return chat . name === ( `${ recName } &${ this . props . user . name } ` || `${ this . props . user . name } &${ recName } ` )
88+ } )
89+ if ( isDup ) {
90+ return true
91+ } else return false
92+ }
93+
7794 render ( ) {
7895
7996 return (
@@ -86,6 +103,7 @@ class Messenger extends Component {
86103 logout = { this . props . logout }
87104 chats = { this . state . chats }
88105 setActiveChat = { this . setActiveChat }
106+ addPrivateChat = { this . addPrivateChat }
89107 activeChat = { this . state . activeChat } /> </ div > ) : '' }
90108 </ Col >
91109
0 commit comments