diff --git a/components/PwaManager.tsx b/components/PwaManager.tsx
index 77b3333..7d3dfdd 100644
--- a/components/PwaManager.tsx
+++ b/components/PwaManager.tsx
@@ -242,7 +242,10 @@ function PwaManager({ subs }) {
headers: {
'Content-Type': 'application/json'
},
- body: JSON.stringify({ subscription })
+ //sends test notification to the current subscription
+ // body: JSON.stringify({ subscription })
+ //sends test notification to all subscriptions of this user
+ body: JSON.stringify({ id: session.user.id, title: "Тестово уведомление", message: "Това е тестово уведомление" })
});
};
diff --git a/components/PwaManagerNotifications.tsx b/components/PwaManagerNotifications.tsx
index fd5fc6f..653f66e 100644
--- a/components/PwaManagerNotifications.tsx
+++ b/components/PwaManagerNotifications.tsx
@@ -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!');
}
});
diff --git a/components/availability/AvailabilityForm.js b/components/availability/AvailabilityForm.js
index 0197755..aa1f8a4 100644
--- a/components/availability/AvailabilityForm.js
+++ b/components/availability/AvailabilityForm.js
@@ -412,7 +412,7 @@ export default function AvailabilityForm({ publisherId, existingItems, inline, o