Remove uneccessary details to link titles
[oweals/peertube.git] / client / src / app / menu / avatar-notification.component.ts
index 878c5c88c581b96947a8ecc0c2dee9b27b83c593..c447f031c61196fa7bb7a871cde7d9593e9b909c 100644 (file)
@@ -1,7 +1,7 @@
 import { Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core'
 import { User } from '../shared/users/user.model'
 import { UserNotificationService } from '@app/shared/users/user-notification.service'
-import { Subscription } from 'rxjs'
+import { Subject, Subscription } from 'rxjs'
 import { Notifier, UserNotificationSocket } from '@app/core'
 import { NgbPopover } from '@ng-bootstrap/ng-bootstrap'
 import { NavigationEnd, Router } from '@angular/router'
@@ -13,10 +13,14 @@ import { filter } from 'rxjs/operators'
   styleUrls: [ './avatar-notification.component.scss' ]
 })
 export class AvatarNotificationComponent implements OnInit, OnDestroy {
-  @ViewChild('popover') popover: NgbPopover
+  @ViewChild('popover', { static: true }) popover: NgbPopover
+
   @Input() user: User
 
   unreadNotifications = 0
+  loaded = false
+
+  markAllAsReadSubject = new Subject<boolean>()
 
   private notificationSub: Subscription
   private routeSub: Subscription
@@ -54,6 +58,18 @@ export class AvatarNotificationComponent implements OnInit, OnDestroy {
     this.popover.close()
   }
 
+  onPopoverHidden () {
+    this.loaded = false
+  }
+
+  onNotificationLoaded () {
+    this.loaded = true
+  }
+
+  markAllAsRead () {
+    this.markAllAsReadSubject.next(true)
+  }
+
   private async subscribeToNotifications () {
     const obs = await this.userNotificationSocket.getMyNotificationsSocket()