|
|
@ -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 && |
|
|
|