@@ -165,7 +165,7 @@ export default {
165165    next (vm  =>  { 
166166      messagesApi .page (query) 
167167      .then (d  =>  vm .recentMessages  =  d) 
168-       .then (() =>  vm .loadConversation ( vm .recentMessages .messages [0 ].conversation_id , { init :   true  } )) 
168+       .then (() =>  vm .preloadConversation ( to . query . id   ||   vm .recentMessages .messages [0 ].conversation_id )) 
169169      .catch (() =>  {}) 
170170    }) 
171171  }, 
@@ -176,20 +176,24 @@ export default {
176176    } 
177177    messagesApi .page (query) 
178178    .then (d  =>  this .recentMessages  =  d) 
179-     .then (() =>  this .loadConversation ( this .recentMessages .messages [0 ].conversation_id , { init :   true  } )) 
179+     .then (() =>  this .preloadConversation ( to . query . id   ||   this .recentMessages .messages [0 ].conversation_id )) 
180180    .catch (() =>  {}) 
181181    next () 
182182  }, 
183183  setup () { 
184184    const  loadRecentMessages  =  inc  =>  { 
185185      const  newPage  =  v .recentMessages .page  +  inc 
186186      let  query =  { ... $route .query , page:  newPage } 
187+       delete  query .id  
187188      if  (query .page  ===  1  ||  ! query .page ) delete  query .page  
188189      if  ($route .query .page  !==  v .page ) 
189190        $router .replace ({ name:  $route .name , params:  $route .params , query:  query }) 
190191    } 
191192
192-     const  loadConversation  =  (conversationId , options ) =>  { 
193+     const  loadConversation  =  conversationId  =>  
194+       $router .replace ({ name:  $route .name , params:  $route .params , query:  { ... $route .query , id:  conversationId } }) 
195+ 
196+     const  preloadConversation  =  (conversationId , options ) =>  { 
193197      options =  options ||  {} 
194198      v .selectedConversationId  =  conversationId 
195199      v .recentMessages .messages .forEach (message  =>  { 
@@ -201,8 +205,6 @@ export default {
201205        v .currentSubject  =  data .messages [0 ].content .subject  
202206        v .currentConversation  =  data 
203207        v .currentConversation .id  =  conversationId 
204-         if  (options .init ) { v .isActive  =  false  } 
205-         else  { v .isActive  =  true  } 
206208        if  (options .saveInput ) { 
207209          v .newMessage .subject  =  v .newMessage .subject  ||  v .currentConversation .subject  
208210          v .newMessage .content .body  =  v .newMessage .content .body  ||  ' '  
@@ -238,7 +240,20 @@ export default {
238240    } 
239241
240242    const  reloadConversation  =  () =>  console .log (' reloadConversation'  
241-     const  loadMoreMessages  =  () =>  true  
243+     const  loadMoreMessages  =  () =>  { 
244+       const  options  =  { 
245+         timestamp:  v .currentConversation .last_message_timestamp , 
246+         message_id:  v .currentConversation .last_message_id  
247+       } 
248+       messagesApi .convos .page (v .currentConversation .id , options) 
249+       //  build out conversation information 
250+       .then (data  =>  { 
251+         v .currentConversation .messages  =  v .currentConversation .messages .concat (data .messages ); 
252+         v .currentConversation .last_message_id  =  data .last_message_id ; 
253+         v .currentConversation .last_message_timestamp  =  data .last_message_timestamp ; 
254+         v .currentConversation .has_next  =  data .has_next ; 
255+       }) 
256+     } 
242257    const  openReportModal  =  message  =>  console .log (message) 
243258    const  openDeleteModal  =  message  =>  console .log (message) 
244259    const  addQuote  =  message  =>  console .log (message) 
@@ -273,7 +288,6 @@ export default {
273288      currentConversation:  { messages:  [] }, 
274289      selectedConversationId:  null , 
275290      newMessage:  null , 
276-       isActive:  false , 
277291      recentMessages:  {}, 
278292      currentSubject:  null , 
279293      pageMax:  computed (() =>  Math .ceil (v .recentMessages .total_convo_count  /  v .recentMessages .limit )), 
@@ -286,7 +300,7 @@ export default {
286300      } 
287301    }) 
288302
289-     return  { ... toRefs (v), loadRecentMessages, reloadConversation, loadConversation, loadMoreMessages, openReportModal, openDeleteModal, canDeleteConversation, canDeleteMessage, addQuote, canCreateConversation, canCreateMessage, listMessageReceivers, humanDate } 
303+     return  { ... toRefs (v), loadRecentMessages, reloadConversation, preloadConversation,  loadConversation, loadMoreMessages, openReportModal, openDeleteModal, canDeleteConversation, canDeleteMessage, addQuote, canCreateConversation, canCreateMessage, listMessageReceivers, humanDate } 
290304  } 
291305} 
292306script >
0 commit comments