@@ -743,23 +743,19 @@ impl App {
743743 Enter => {
744744 if let Some ( query) = view. get_text ( ) {
745745 if * is_global {
746- let mut search =
747- self . client . search_messages ( query, 5 ) . build ( ) ;
746+ let search =
747+ self . client . search_messages ( query) . build_events ( ) ;
748+ pin_mut ! ( search) ;
748749
749750 let mut all_results = HashMap :: new ( ) ;
750- loop {
751- let Ok ( results ) = search . next_events ( ) . await else {
751+ while let Some ( result ) = search . next ( ) . await {
752+ let Ok ( ( room_id , event ) ) = result else {
752753 continue ;
753754 } ;
754- let Some ( results) = results else {
755- break ;
756- } ;
757- for ( room_id, event_id) in results {
758- all_results
759- . entry ( room_id)
760- . or_insert_with ( Vec :: new)
761- . push ( event_id) ;
762- }
755+ all_results
756+ . entry ( room_id)
757+ . or_insert_with ( Vec :: new)
758+ . push ( event) ;
763759 }
764760
765761 view. set_results (
@@ -773,13 +769,12 @@ impl App {
773769 } else if let Some ( ( query, room) ) =
774770 view. get_text ( ) . zip ( self . room_view . room ( ) )
775771 {
776- let mut room_search = room. search_messages ( query, 5 ) ;
772+ let room_search = room. search_messages_events ( query) ;
773+ pin_mut ! ( room_search) ;
777774
778775 let mut all_results = Vec :: new ( ) ;
779- while let Some ( results) =
780- room_search. next_events ( ) . await ?
781- {
782- all_results. extend ( results) ;
776+ while let Some ( result) = room_search. next ( ) . await {
777+ all_results. push ( result?) ;
783778 }
784779 view. set_results ( vec ! [ ( None , all_results) ] ) ;
785780 }
0 commit comments