From ef9afa8cbca29a3dd83454f44264a4682e968c59 Mon Sep 17 00:00:00 2001
From: Jonas Dellinger <jonas@dellinger.dev>
Date: Sat, 24 Jun 2023 12:59:39 +0200
Subject: Add notification settings, which allows muting decky/plugin toast
 notifications (#479)

* Add notification settings, which allows muting decky/plugin toast notifications

* Fix typos
---
 frontend/src/components/DeckyState.tsx | 9 +++++++++
 1 file changed, 9 insertions(+)

(limited to 'frontend/src/components/DeckyState.tsx')

diff --git a/frontend/src/components/DeckyState.tsx b/frontend/src/components/DeckyState.tsx
index 920985b3..d20c8d86 100644
--- a/frontend/src/components/DeckyState.tsx
+++ b/frontend/src/components/DeckyState.tsx
@@ -1,5 +1,6 @@
 import { FC, createContext, useContext, useEffect, useState } from 'react';
 
+import { DEFAULT_NOTIFICATION_SETTINGS, NotificationSettings } from '../notification-service';
 import { Plugin } from '../plugin';
 import { PluginUpdateMapping } from '../store';
 import { VerInfo } from '../updater';
@@ -13,6 +14,7 @@ interface PublicDeckyState {
   hasLoaderUpdate?: boolean;
   isLoaderUpdating: boolean;
   versionInfo: VerInfo | null;
+  notificationSettings: NotificationSettings;
   userInfo: UserInfo | null;
 }
 
@@ -30,6 +32,7 @@ export class DeckyState {
   private _hasLoaderUpdate: boolean = false;
   private _isLoaderUpdating: boolean = false;
   private _versionInfo: VerInfo | null = null;
+  private _notificationSettings = DEFAULT_NOTIFICATION_SETTINGS;
   private _userInfo: UserInfo | null = null;
 
   public eventBus = new EventTarget();
@@ -44,6 +47,7 @@ export class DeckyState {
       hasLoaderUpdate: this._hasLoaderUpdate,
       isLoaderUpdating: this._isLoaderUpdating,
       versionInfo: this._versionInfo,
+      notificationSettings: this._notificationSettings,
       userInfo: this._userInfo,
     };
   }
@@ -93,6 +97,11 @@ export class DeckyState {
     this.notifyUpdate();
   }
 
+  setNotificationSettings(notificationSettings: NotificationSettings) {
+    this._notificationSettings = notificationSettings;
+    this.notifyUpdate();
+  }
+
   setUserInfo(userInfo: UserInfo) {
     this._userInfo = userInfo;
     this.notifyUpdate();
-- 
cgit v1.2.3

