Browse Source

Merge branch 'sw-cleanup'

pull/93/head
Matthew Raymer 10 months ago
parent
commit
4078853558
  1. 8
      src/App.vue
  2. 36
      src/views/AccountViewView.vue

8
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)

36
src/views/AccountViewView.vue

@ -105,7 +105,12 @@
<!-- toggle -->
<div class="relative ml-2">
<!-- input -->
<input type="checkbox" name="toggleNotifications" class="sr-only" />
<input
type="checkbox"
v-model="toggleNotifications"
name="toggleNotifications"
class="sr-only"
/>
<!-- line -->
<div class="block bg-slate-500 w-14 h-8 rounded-full"></div>
<!-- dot -->
@ -136,6 +141,7 @@
type="checkbox"
name="toggleMuteNotifications"
class="sr-only"
disabled
/>
<!-- line -->
<div class="block bg-slate-500 w-14 h-8 rounded-full"></div>
@ -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<IIdentifier | null> {
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 &&

Loading…
Cancel
Save