owncast/web/components/workers/PushNotificationServiceWorker/PushNotificationServiceWorker.tsx
Gabe Kangas c05a20a460
Use built-in Next layout support + lazy load
Instead of doing manual layout switching use the Nextjs nested layout
support. Also add some additional lazy loading of components. This is to
work on performance score re: #2167.
2023-01-09 01:08:24 -08:00

28 lines
669 B
TypeScript

/* eslint-disable react/no-danger */
import { FC, useEffect } from 'react';
export const PushNotificationServiceWorker: FC = () => {
const add = () => {
navigator.serviceWorker.register('/serviceWorker.js').then(
registration => {
console.debug('Service Worker registration successful with scope: ', registration.scope);
},
err => {
console.error('Service Worker registration failed: ', err);
},
);
};
useEffect(() => {
if ('serviceWorker' in navigator) {
window.addEventListener('load', add);
}
return () => {
window.removeEventListener('load', add);
};
}, []);
return null;
};