From c4a132d4ddcb500f08b4af69422caf9b83b6a6d5 Mon Sep 17 00:00:00 2001
From: Ajay Bura <32841439+ajbura@users.noreply.github.com>
Date: Mon, 10 Feb 2025 15:27:24 +0530
Subject: [PATCH] fix missing check for Notification
---
src/app/features/settings/notifications/Notifications.tsx | 6 +++---
src/app/hooks/usePermission.ts | 6 +++---
src/app/utils/dom.ts | 5 ++---
3 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/src/app/features/settings/notifications/Notifications.tsx b/src/app/features/settings/notifications/Notifications.tsx
index b7af48545..88e16d296 100644
--- a/src/app/features/settings/notifications/Notifications.tsx
+++ b/src/app/features/settings/notifications/Notifications.tsx
@@ -38,9 +38,9 @@ function SystemNotification() {
description={
notifPermission === 'denied' ? (
- {!Notification
- ? 'Notifications are not supported by the system.'
- : 'Notification permission is blocked. Please allow notification permission from browser address bar.'}
+ {'Notification' in window
+ ? 'Notification permission is blocked. Please allow notification permission from browser address bar.'
+ : 'Notifications are not supported by the system.'}
) : (
Show desktop notifications when message arrive.
diff --git a/src/app/hooks/usePermission.ts b/src/app/hooks/usePermission.ts
index 88c8a667c..71a601be2 100644
--- a/src/app/hooks/usePermission.ts
+++ b/src/app/hooks/usePermission.ts
@@ -1,15 +1,15 @@
import { useEffect, useState } from 'react';
export const getNotificationState = (): PermissionState => {
- try {
+ if ('Notification' in window) {
if (window.Notification.permission === 'default') {
return 'prompt';
}
return window.Notification.permission;
- } catch {
- return 'denied';
}
+
+ return 'denied';
};
export function usePermissionState(name: PermissionName, initialValue: PermissionState = 'prompt') {
diff --git a/src/app/utils/dom.ts b/src/app/utils/dom.ts
index 362381be9..f4c3f719b 100644
--- a/src/app/utils/dom.ts
+++ b/src/app/utils/dom.ts
@@ -219,9 +219,8 @@ export const syntaxErrorPosition = (error: SyntaxError): number | undefined => {
};
export const notificationPermission = (permission: NotificationPermission) => {
- try {
+ if ('Notification' in window) {
return window.Notification.permission === permission;
- } catch {
- return false;
}
+ return false;
};