summaryrefslogtreecommitdiff
path: root/frontend/src/components/settings/pages
diff options
context:
space:
mode:
authorJonas Dellinger <jonas@dellinger.dev>2023-06-24 12:59:39 +0200
committerGitHub <noreply@github.com>2023-06-24 12:59:39 +0200
commitef9afa8cbca29a3dd83454f44264a4682e968c59 (patch)
tree5eb5033ba579ab6159d593cb01d8cf9b011f1942 /frontend/src/components/settings/pages
parent143461d59793665f9e54d05ba00b16c55dfec57f (diff)
downloaddecky-loader-ef9afa8cbca29a3dd83454f44264a4682e968c59.tar.gz
decky-loader-ef9afa8cbca29a3dd83454f44264a4682e968c59.zip
Add notification settings, which allows muting decky/plugin toast notifications (#479)
* Add notification settings, which allows muting decky/plugin toast notifications * Fix typos
Diffstat (limited to 'frontend/src/components/settings/pages')
-rw-r--r--frontend/src/components/settings/pages/general/NotificationSettings.tsx35
-rw-r--r--frontend/src/components/settings/pages/general/index.tsx5
2 files changed, 40 insertions, 0 deletions
diff --git a/frontend/src/components/settings/pages/general/NotificationSettings.tsx b/frontend/src/components/settings/pages/general/NotificationSettings.tsx
new file mode 100644
index 00000000..21c2fd82
--- /dev/null
+++ b/frontend/src/components/settings/pages/general/NotificationSettings.tsx
@@ -0,0 +1,35 @@
+import { Field, Toggle } from 'decky-frontend-lib';
+import { FC } from 'react';
+import { useTranslation } from 'react-i18next';
+
+import { useDeckyState } from '../../../DeckyState';
+
+const NotificationSettings: FC = () => {
+ const { notificationSettings } = useDeckyState();
+ const notificationService = window.DeckyPluginLoader.notificationService;
+
+ const { t } = useTranslation();
+
+ return (
+ <>
+ <Field label={t('SettingsGeneralIndex.notifications.decky_updates_label')}>
+ <Toggle
+ value={notificationSettings.deckyUpdates}
+ onChange={(deckyUpdates) => {
+ notificationService.update({ ...notificationSettings, deckyUpdates });
+ }}
+ />
+ </Field>
+ <Field label={t('SettingsGeneralIndex.notifications.plugin_updates_label')}>
+ <Toggle
+ value={notificationSettings.pluginUpdates}
+ onChange={(pluginUpdates) => {
+ notificationService.update({ ...notificationSettings, pluginUpdates });
+ }}
+ />
+ </Field>
+ </>
+ );
+};
+
+export default NotificationSettings;
diff --git a/frontend/src/components/settings/pages/general/index.tsx b/frontend/src/components/settings/pages/general/index.tsx
index 96ae6782..6fc62a46 100644
--- a/frontend/src/components/settings/pages/general/index.tsx
+++ b/frontend/src/components/settings/pages/general/index.tsx
@@ -3,6 +3,7 @@ import { useTranslation } from 'react-i18next';
import { useDeckyState } from '../../../DeckyState';
import BranchSelect from './BranchSelect';
+import NotificationSettings from './NotificationSettings';
import StoreSelect from './StoreSelect';
import UpdaterSettings from './Updater';
@@ -28,6 +29,10 @@ export default function GeneralSettings({
<StoreSelect />
</DialogControlsSection>
<DialogControlsSection>
+ <DialogControlsSectionHeader>{t('SettingsGeneralIndex.notifications.header')}</DialogControlsSectionHeader>
+ <NotificationSettings />
+ </DialogControlsSection>
+ <DialogControlsSection>
<DialogControlsSectionHeader>{t('SettingsGeneralIndex.other.header')}</DialogControlsSectionHeader>
<Field label={t('SettingsGeneralIndex.developer_mode.label')}>
<Toggle