@@ -35,13 +35,18 @@ const getReadStates = (messages, read) => {
3535 return readData ;
3636} ;
3737
38- const insertDates = ( messages , lastRead , userID ) => {
38+ const insertDates = ( messages , lastRead , userID , hideDeletedMessages ) => {
3939 let unread = false ;
40+ let lastDateSeparator ;
4041 const newMessages = [ ] ;
4142
4243 for ( let i = 0 , l = messages . length ; i < l ; i += 1 ) {
4344 const message = messages [ i ] ;
4445
46+ if ( hideDeletedMessages && message . type === 'deleted' ) {
47+ continue ;
48+ }
49+
4550 if ( message . type === 'message.read' ) {
4651 newMessages . push ( message ) ;
4752 continue ;
@@ -56,19 +61,27 @@ const insertDates = (messages, lastRead, userID) => {
5661
5762 if ( ! unread ) {
5863 unread = lastRead && new Date ( lastRead ) < message . created_at ;
59- // userId check makes sure New is not shown for current user messages
60- if ( unread && message . user . id !== userID )
64+
65+ // do not show date separator for current user's messages
66+ if ( unread && message . user . id !== userID ) {
6167 newMessages . push ( {
6268 type : 'message.date' ,
6369 date : message . created_at ,
6470 unread,
6571 } ) ;
72+ }
6673 }
6774
6875 if (
69- ( i === 0 || messageDate !== prevMessageDate ) &&
70- newMessages ?. [ newMessages . length - 1 ] ?. type !== 'message.date' // prevent two subsequent DateSeparator
76+ ( i === 0 ||
77+ messageDate !== prevMessageDate ||
78+ ( hideDeletedMessages &&
79+ messages [ i - 1 ] ?. type === 'deleted' &&
80+ lastDateSeparator !== messageDate ) ) &&
81+ newMessages ?. [ newMessages . length - 1 ] ?. type !== 'message.date' // do not show two date separators in a row
7182 ) {
83+ lastDateSeparator = messageDate ;
84+
7285 newMessages . push (
7386 { type : 'message.date' , date : message . created_at } ,
7487 message ,
@@ -188,6 +201,7 @@ const MessageListInner = (props) => {
188201 EmptyStateIndicator,
189202 HeaderComponent,
190203 headerPosition,
204+ hideDeletedMessages = false ,
191205 internalInfiniteScrollProps,
192206 internalMessageProps,
193207 messages,
@@ -205,7 +219,7 @@ const MessageListInner = (props) => {
205219 const messageWithDates =
206220 disableDateSeparator || threadList
207221 ? messages
208- : insertDates ( messages , lastRead , client . userID ) ;
222+ : insertDates ( messages , lastRead , client . userID , hideDeletedMessages ) ;
209223
210224 if ( HeaderComponent ) return insertIntro ( messageWithDates , headerPosition ) ;
211225
@@ -215,6 +229,7 @@ const MessageListInner = (props) => {
215229 disableDateSeparator ,
216230 HeaderComponent ,
217231 headerPosition ,
232+ hideDeletedMessages ,
218233 lastRead ,
219234 messages ,
220235 threadList ,
0 commit comments