@@ -3,7 +3,7 @@ import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
33import { EMPTY , Observable , Subject , defer , exhaustMap , from } from 'rxjs' ;
44import { collection , query , orderBy , limit , addDoc } from 'firebase/firestore' ;
55import { collectionData } from 'rxfire/firestore' ;
6- import { catchError , filter , map } from 'rxjs/operators' ;
6+ import { catchError , filter , map , retry } from 'rxjs/operators' ;
77
88import { FIRESTORE } from 'src/app/app.config' ;
99import { Message } from '../interfaces/message' ;
@@ -19,11 +19,16 @@ interface MessageState {
1919export class MessageService {
2020 private firestore = inject ( FIRESTORE ) ;
2121 private authService = inject ( AuthService ) ;
22+ private authUser$ = toObservable ( this . authService . user ) ;
2223
2324 // sources
24- messages$ = this . getMessages ( ) ;
25+ messages$ = this . getMessages ( ) . pipe (
26+ retry ( {
27+ delay : ( ) => this . authUser$ . pipe ( filter ( ( user ) => ! ! user ) ) ,
28+ } )
29+ ) ;
2530 add$ = new Subject < Message [ 'content' ] > ( ) ;
26- logout$ = toObservable ( this . authService . user ) . pipe ( filter ( ( user ) => ! user ) ) ;
31+ logout$ = this . authUser$ . pipe ( filter ( ( user ) => ! user ) ) ;
2732
2833 // state
2934 private state = signal < MessageState > ( {
0 commit comments