fix(notifications): do not support browser notifications for local servers

This commit is contained in:
Gabe Kangas 2023-04-15 20:10:34 -07:00
parent 74bdab81a3
commit dde512fa14
No known key found for this signature in database
GPG key ID: 4345B2060657F330
2 changed files with 11 additions and 5 deletions

View file

@ -17,6 +17,10 @@ const NotificationsNotSupported = () => (
<div>Browser notifications are not supported in your browser.</div>
);
const NotificationsNotSupportedLocal = () => (
<div>Browser notifications are not supported for local servers.</div>
);
export type PermissionPopupPreviewProps = {
start: () => void;
};
@ -106,6 +110,10 @@ export const BrowserNotifyModal = () => {
setBrowserPushPermissionsPending(false);
};
if (window.location.hostname === 'localhost') {
return <NotificationsNotSupportedLocal />;
}
if (!browserPushSupported) {
return <NotificationsNotSupported />;
}

View file

@ -1,4 +1,5 @@
export async function saveNotificationRegistration(channel, destination, accessToken) {
console.log('saveNotificationRegistration');
const URL_REGISTER_NOTIFICATION = `/api/notifications/register`;
const options = {
@ -9,11 +10,7 @@ export async function saveNotificationRegistration(channel, destination, accessT
body: JSON.stringify({ channel, destination }),
};
try {
await fetch(`${URL_REGISTER_NOTIFICATION}?accessToken=${accessToken}`, options);
} catch (e) {
console.error(e);
}
await fetch(`${URL_REGISTER_NOTIFICATION}?accessToken=${accessToken}`, options);
}
export function isPushNotificationSupported() {
@ -27,6 +24,7 @@ function urlBase64ToUint8Array(base64String: string) {
const rawData = window.atob(base64);
const outputArray = new Uint8Array(rawData.length);
// eslint-disable-next-line no-plusplus
for (let i = 0; i < rawData.length; ++i) {
outputArray[i] = rawData.charCodeAt(i);
}