Files
once-campfire/app/javascript/controllers/sessions_controller.js

26 lines
701 B
JavaScript

import { Controller } from "@hotwired/stimulus"
export default class extends Controller {
static targets = [ "pushSubscriptionEndpoint" ]
async logout(event) {
await this.#unsubscribeFromWebPush()
this.element.requestSubmit()
}
async #unsubscribeFromWebPush() {
if ("serviceWorker" in navigator) {
const registration = await navigator.serviceWorker.getRegistration(window.location.origin)
if (registration) {
const subscription = await registration.pushManager.getSubscription()
if (subscription) {
this.pushSubscriptionEndpointTarget.value = subscription.endpoint
await subscription.unsubscribe()
}
}
}
}
}