improve test push notifications;

renames; more alerts (merge)
This commit is contained in:
Dobromir Popov
2024-05-23 02:51:15 +03:00
parent 8b3f13d2ee
commit cfc78abff9
10 changed files with 50 additions and 25 deletions

View File

@ -7,6 +7,7 @@ function PwaManagerNotifications() {
const [isPermissionGranted, setIsPermissionGranted] = useState(false);
const [subscription, setSubscription] = useState(null);
const [registration, setRegistration] = useState(null);
const [isSubSaved, setIsSubSaved] = useState(false);
const { data: session } = useSession();
// Check if all required APIs are supported
@ -53,6 +54,7 @@ function PwaManagerNotifications() {
if (existingSubscription) {
console.log('Already subscribed.');
setSubscription(existingSubscription);
sendSubscriptionToServer(existingSubscription);
} else if (Notification.permission === "granted") {
// Permission was already granted but no subscription exists, so subscribe now
subscribeToNotifications(registration);
@ -90,6 +92,7 @@ function PwaManagerNotifications() {
};
const sendSubscriptionToServer = async (sub) => {
if (isSubSaved) { return; }
if (session.user?.id != null) {
await fetch(`/api/notify`, {
method: 'PUT',
@ -105,6 +108,7 @@ function PwaManagerNotifications() {
console.log('Subscription data saved on server.');
const s = await response.json();
setSubscription(sub);
setIsSubSaved(true);
console.log('Web push subscribed!');
}
});