@@ -20,7 +20,7 @@ function useHandleChannelEvents({ currentGroupChannel, sdkInit, hasMoreToBottom
2020 scrollRef,
2121 setQuoteMessage,
2222} ) {
23- const channelUrl = currentGroupChannel && currentGroupChannel . url ;
23+ const channelUrl = currentGroupChannel && currentGroupChannel ? .url ;
2424 useEffect ( ( ) => {
2525 const messageReceiverId = uuidv4 ( ) ;
2626 if ( channelUrl && sdk && sdk . ChannelHandler ) {
@@ -29,7 +29,7 @@ function useHandleChannelEvents({ currentGroupChannel, sdkInit, hasMoreToBottom
2929
3030 ChannelHandler . onMessageReceived = ( channel , message ) => {
3131 // donot update if hasMoreToBottom
32- if ( compareIds ( channel . url , currentGroupChannel . url ) && ! hasMoreToBottom ) {
32+ if ( compareIds ( channel . url , channelUrl ) && ! hasMoreToBottom ) {
3333 let scrollToEnd = false ;
3434 try {
3535 const { current } = scrollRef ;
@@ -55,14 +55,38 @@ function useHandleChannelEvents({ currentGroupChannel, sdkInit, hasMoreToBottom
5555 }
5656 }
5757 }
58- if ( compareIds ( channel . url , currentGroupChannel . url ) && hasMoreToBottom ) {
58+ if ( compareIds ( channel . url , channelUrl ) && hasMoreToBottom ) {
5959 messagesDispatcher ( {
6060 type : messageActions . UPDATE_UNREAD_COUNT ,
6161 payload : { channel } ,
6262 } ) ;
6363 }
6464 } ;
6565
66+ /**
67+ * We need to update current channel with the channel,
68+ * when onReadReceiptUpdated or onDeliveryReceiptUpdated are called,
69+ * because cachedReadReceiptStatus and cachedDeliveryReceiptStatus properties were changed
70+ */
71+ ChannelHandler . onReadReceiptUpdated = ( channel ) => {
72+ if ( compareIds ( channel . url , channelUrl ) ) {
73+ logger . info ( 'Channel | useHandleChannelEvents: onReadReceiptUpdated' , channel ) ;
74+ messagesDispatcher ( {
75+ type : messageActions . SET_CURRENT_CHANNEL ,
76+ payload : channel ,
77+ } ) ;
78+ }
79+ } ;
80+ ChannelHandler . onDeliveryReceiptUpdated = ( channel ) => {
81+ if ( compareIds ( channel . url , channelUrl ) ) {
82+ logger . info ( 'Channel | useHandleChannelEvents: onDeliveryReceiptUpdated' , channel ) ;
83+ messagesDispatcher ( {
84+ type : messageActions . SET_CURRENT_CHANNEL ,
85+ payload : channel ,
86+ } ) ;
87+ }
88+ } ;
89+
6690 ChannelHandler . onMessageUpdated = ( channel , message ) => {
6791 logger . info ( 'Channel | useHandleChannelEvents: onMessageUpdated' , message ) ;
6892 messagesDispatcher ( {
@@ -97,7 +121,7 @@ function useHandleChannelEvents({ currentGroupChannel, sdkInit, hasMoreToBottom
97121 } ;
98122
99123 ChannelHandler . onChannelChanged = ( groupChannel ) => {
100- if ( compareIds ( groupChannel . url , currentGroupChannel . url ) ) {
124+ if ( compareIds ( groupChannel . url , channelUrl ) ) {
101125 logger . info ( 'Channel | useHandleChannelEvents: onChannelChanged' , groupChannel ) ;
102126 messagesDispatcher ( {
103127 type : messageActions . SET_CURRENT_CHANNEL ,
@@ -107,7 +131,7 @@ function useHandleChannelEvents({ currentGroupChannel, sdkInit, hasMoreToBottom
107131 } ;
108132
109133 ChannelHandler . onChannelFrozen = ( groupChannel ) => {
110- if ( compareIds ( groupChannel . url , currentGroupChannel . url ) ) {
134+ if ( compareIds ( groupChannel . url , channelUrl ) ) {
111135 logger . info ( 'Channel | useHandleChannelEvents: onChannelFrozen' , groupChannel ) ;
112136 messagesDispatcher ( {
113137 type : messageActions . SET_CURRENT_CHANNEL ,
@@ -117,7 +141,7 @@ function useHandleChannelEvents({ currentGroupChannel, sdkInit, hasMoreToBottom
117141 } ;
118142
119143 ChannelHandler . onChannelUnfrozen = ( groupChannel ) => {
120- if ( compareIds ( groupChannel . url , currentGroupChannel . url ) ) {
144+ if ( compareIds ( groupChannel . url , channelUrl ) ) {
121145 logger . info ( 'Channel | useHandleChannelEvents: onChannelUnFrozen' , groupChannel ) ;
122146 messagesDispatcher ( {
123147 type : messageActions . SET_CURRENT_CHANNEL ,
@@ -127,7 +151,7 @@ function useHandleChannelEvents({ currentGroupChannel, sdkInit, hasMoreToBottom
127151 } ;
128152
129153 ChannelHandler . onUserMuted = ( groupChannel ) => {
130- if ( compareIds ( groupChannel . url , currentGroupChannel . url ) ) {
154+ if ( compareIds ( groupChannel . url , channelUrl ) ) {
131155 logger . info ( 'Channel | useHandleChannelEvents: onUserMuted' , groupChannel ) ;
132156 messagesDispatcher ( {
133157 type : messageActions . SET_CURRENT_CHANNEL ,
@@ -137,7 +161,7 @@ function useHandleChannelEvents({ currentGroupChannel, sdkInit, hasMoreToBottom
137161 } ;
138162
139163 ChannelHandler . onUserUnmuted = ( groupChannel ) => {
140- if ( compareIds ( groupChannel . url , currentGroupChannel . url ) ) {
164+ if ( compareIds ( groupChannel . url , channelUrl ) ) {
141165 logger . info ( 'Channel | useHandleChannelEvents: onUserUnmuted' , groupChannel ) ;
142166 messagesDispatcher ( {
143167 type : messageActions . SET_CURRENT_CHANNEL ,
@@ -147,7 +171,7 @@ function useHandleChannelEvents({ currentGroupChannel, sdkInit, hasMoreToBottom
147171 } ;
148172
149173 ChannelHandler . onUserBanned = ( groupChannel ) => {
150- if ( compareIds ( groupChannel . url , currentGroupChannel . url ) ) {
174+ if ( compareIds ( groupChannel . url , channelUrl ) ) {
151175 logger . info ( 'Channel | useHandleChannelEvents: onUserBanned' , groupChannel ) ;
152176 messagesDispatcher ( {
153177 type : messageActions . SET_CURRENT_CHANNEL ,
@@ -157,7 +181,7 @@ function useHandleChannelEvents({ currentGroupChannel, sdkInit, hasMoreToBottom
157181 } ;
158182
159183 ChannelHandler . onOperatorUpdated = ( groupChannel ) => {
160- if ( compareIds ( groupChannel . url , currentGroupChannel . url ) ) {
184+ if ( compareIds ( groupChannel . url , channelUrl ) ) {
161185 logger . info ( 'Channel | useHandleChannelEvents: onOperatorUpdated' , groupChannel ) ;
162186 messagesDispatcher ( {
163187 type : messageActions . SET_CURRENT_CHANNEL ,
0 commit comments