mirror of
https://github.com/bitwarden/browser
synced 2025-12-06 00:13:28 +00:00
fix(notifications): [PM-25424] Fix unnecessary quick reconnect
* Ensure we don't reconnect on feature flag emissions of the same value * Harden notification processing * Do error for both
This commit is contained in:
@@ -172,6 +172,7 @@ export class DefaultServerNotificationsService implements ServerNotificationsSer
|
||||
|
||||
private hasAccessToken$(userId: UserId) {
|
||||
return this.configService.getFeatureFlag$(FeatureFlag.PushNotificationsWhenLocked).pipe(
|
||||
distinctUntilChanged(),
|
||||
switchMap((featureFlagEnabled) => {
|
||||
if (featureFlagEnabled) {
|
||||
return this.authService.authStatusFor$(userId).pipe(
|
||||
@@ -305,11 +306,23 @@ export class DefaultServerNotificationsService implements ServerNotificationsSer
|
||||
startListening() {
|
||||
return this.notifications$
|
||||
.pipe(
|
||||
mergeMap(async ([notification, userId]) => this.processNotification(notification, userId)),
|
||||
mergeMap(async ([notification, userId]) => {
|
||||
try {
|
||||
await this.processNotification(notification, userId);
|
||||
} catch (err: unknown) {
|
||||
this.logService.error(
|
||||
`Problem processing notification of type ${notification.type}`,
|
||||
err,
|
||||
);
|
||||
}
|
||||
}),
|
||||
)
|
||||
.subscribe({
|
||||
error: (e: unknown) =>
|
||||
this.logService.warning("Error in server notifications$ observable", e),
|
||||
error: (err: unknown) =>
|
||||
this.logService.error(
|
||||
"Fatal error in server notifications$ observable, notifications won't be recieved anymore.",
|
||||
err,
|
||||
),
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user