mirror of
https://github.com/cinnyapp/cinny.git
synced 2025-11-09 16:50:28 +03:00
fix notification crash on ios (#2192)
* fix notification crash for ios * access notification from window variable * fix Notification check * catch notification variable error * fix missing check for Notification
This commit is contained in:
parent
5460e4922b
commit
b12228ee95
4 changed files with 31 additions and 14 deletions
|
|
@ -1,4 +1,16 @@
|
|||
import { useEffect, useState } from "react";
|
||||
import { useEffect, useState } from 'react';
|
||||
|
||||
export const getNotificationState = (): PermissionState => {
|
||||
if ('Notification' in window) {
|
||||
if (window.Notification.permission === 'default') {
|
||||
return 'prompt';
|
||||
}
|
||||
|
||||
return window.Notification.permission;
|
||||
}
|
||||
|
||||
return 'denied';
|
||||
};
|
||||
|
||||
export function usePermissionState(name: PermissionName, initialValue: PermissionState = 'prompt') {
|
||||
const [permissionState, setPermissionState] = useState<PermissionState>(initialValue);
|
||||
|
|
@ -15,16 +27,16 @@ export function usePermissionState(name: PermissionName, initialValue: Permissio
|
|||
.then((permStatus: PermissionStatus) => {
|
||||
permissionStatus = permStatus;
|
||||
handlePermissionChange.apply(permStatus);
|
||||
permStatus.addEventListener("change", handlePermissionChange);
|
||||
permStatus.addEventListener('change', handlePermissionChange);
|
||||
})
|
||||
.catch(() => {
|
||||
// Silence error since FF doesn't support microphone permission
|
||||
});
|
||||
|
||||
return () => {
|
||||
permissionStatus?.removeEventListener("change", handlePermissionChange);
|
||||
permissionStatus?.removeEventListener('change', handlePermissionChange);
|
||||
};
|
||||
}, [name]);
|
||||
|
||||
return permissionState;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue