diff --git a/packages/frontend/src/app/components/events/events.html b/packages/frontend/src/app/components/events/events.html
index a9bb3f6..b3e647c 100644
--- a/packages/frontend/src/app/components/events/events.html
+++ b/packages/frontend/src/app/components/events/events.html
@@ -1,9 +1,14 @@
Gesammelte Veranstaltungen
-
+ @if(this.pushService.isSubscribed()){
+ Aboniertcheck
+ }@else {
+
+ }
diff --git a/packages/frontend/src/app/components/events/events.ts b/packages/frontend/src/app/components/events/events.ts
index ed65189..b1cfe9a 100644
--- a/packages/frontend/src/app/components/events/events.ts
+++ b/packages/frontend/src/app/components/events/events.ts
@@ -6,6 +6,7 @@ import {
viewChild,
} from '@angular/core';
import { MatButtonModule } from '@angular/material/button';
+import { MatIconModule } from '@angular/material/icon';
import { MatSort, MatSortModule } from '@angular/material/sort';
import { MatTableDataSource, MatTableModule } from '@angular/material/table';
import { parse } from 'date-fns';
@@ -15,13 +16,19 @@ import { PushService } from '../../services/push/pushService';
@Component({
selector: 'app-events',
- imports: [MatTableModule, MatSortModule, MatButtonModule, Ellipsis],
+ imports: [
+ MatTableModule,
+ MatSortModule,
+ MatButtonModule,
+ Ellipsis,
+ MatIconModule,
+ ],
templateUrl: './events.html',
styleUrl: './events.scss',
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class Events implements OnInit {
- private readonly pushService = inject(PushService);
+ protected readonly pushService = inject(PushService);
protected readonly datasource = new MatTableDataSource();
protected readonly sort = viewChild.required(MatSort);
protected readonly displayedColumns = [
diff --git a/packages/frontend/src/app/services/push/pushService.ts b/packages/frontend/src/app/services/push/pushService.ts
index 6172398..d2e340a 100644
--- a/packages/frontend/src/app/services/push/pushService.ts
+++ b/packages/frontend/src/app/services/push/pushService.ts
@@ -1,5 +1,7 @@
import { inject, Injectable } from '@angular/core';
+import { toSignal } from '@angular/core/rxjs-interop';
import { SwPush } from '@angular/service-worker';
+import { map } from 'rxjs';
import { v7 as uuidv7 } from 'uuid';
import * as api from '../../generated-api/api';
import VAPID from './vapid.json' with { type: 'json' };
@@ -9,6 +11,9 @@ const SUBSCRIPTION_CLIENT_ID = 'subscriptionClientId';
@Injectable({ providedIn: 'root' })
export class PushService {
private readonly swPush = inject(SwPush);
+ public readonly isSubscribed = toSignal(
+ this.swPush.subscription.pipe(map(x => x != null)),
+ );
private arrayBufferToString(buffer: ArrayBuffer | null) {
if (buffer == null) {