diff --git a/src/App.vue b/src/App.vue
index 585cdcc..3de93c5 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -426,16 +426,13 @@ export default class App extends Vue {
this.subscribeToPush()
.then(() => {
console.log("Subscribed successfully.");
- // Assuming the subscription object is available
return navigator.serviceWorker.ready;
})
.then((registration) => {
- // Fetch the existing subscription object from the registration
return registration.pushManager.getSubscription();
})
.then((subscription) => {
if (subscription) {
- console.log(subscription);
return this.sendSubscriptionToServer(subscription);
} else {
throw new Error("Subscription object is not available.");
@@ -449,15 +446,16 @@ export default class App extends Vue {
"Subscription or server communication failed:",
error,
);
+ alert( "Subscription or server communication failed. Try again in a while." );
});
})
.catch((error) => {
console.error("An error occurred:", error);
- // Handle error appropriately here
+ alert( "Some error occurred." + error );
});
}
- // Function to convert URL base64 to Uint8Array
+
private urlBase64ToUint8Array(base64String: string): Uint8Array {
const padding = "=".repeat((4 - (base64String.length % 4)) % 4);
const base64 = (base64String + padding)
diff --git a/src/views/AccountViewView.vue b/src/views/AccountViewView.vue
index e07f9f4..4c4c2df 100644
--- a/src/views/AccountViewView.vue
+++ b/src/views/AccountViewView.vue
@@ -105,7 +105,12 @@
-
+
@@ -136,6 +141,7 @@
type="checkbox"
name="toggleMuteNotifications"
class="sr-only"
+ disabled
/>
@@ -451,6 +457,16 @@ export default class AccountViewView extends Vue {
showAdvanced = false;
+ private isSubscribed = false;
+
+ get toggleNotifications() {
+ return this.isSubscribed;
+ }
+
+ set toggleNotifications(value) {
+ this.isSubscribed = value;
+ }
+
public async getIdentity(activeDid: string): Promise
{
try {
// Open the accounts database
@@ -533,6 +549,7 @@ export default class AccountViewView extends Vue {
* @throws Will display specific messages to the user based on different errors.
*/
async created() {
+ console.error("created");
try {
await db.open();
@@ -551,6 +568,18 @@ export default class AccountViewView extends Vue {
}
}
+ async mounted() {
+ console.error("mounted()");
+ try {
+ const registration = await navigator.serviceWorker.ready;
+ const subscription = await registration.pushManager.getSubscription();
+ this.toggleNotifications = !!subscription;
+ } catch (error) {
+ console.error(error);
+ this.toggleNotifications = false;
+ }
+ }
+
/**
* Initializes component state with values from the database or defaults.
* @param {SettingsType} settings - Object containing settings from the database.
@@ -760,7 +789,7 @@ export default class AccountViewView extends Vue {
});
this.isRegistered = true;
} catch (err) {
- console.log("Got an error updating settings:", err);
+ console.error("Got an error updating settings:", err);
this.$notify(
{
group: "alert",
@@ -802,10 +831,9 @@ export default class AccountViewView extends Vue {
const data = error.response?.data as ErrorResponse;
this.limitsMessage =
(data?.error?.message as string) || "Bad server response.";
- console.log(
+ console.error(
"Got bad response retrieving limits, which usually means user isn't registered. Server says:",
this.limitsMessage,
- //error,
);
} else if (
error instanceof Error &&