mirror of
https://github.com/basecamp/once-campfire.git
synced 2025-11-09 17:32:51 +09:00
Hello world
First open source release of Campfire 🎉
This commit is contained in:
25
app/javascript/controllers/sessions_controller.js
Normal file
25
app/javascript/controllers/sessions_controller.js
Normal file
@@ -0,0 +1,25 @@
|
||||
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.host)
|
||||
|
||||
if (registration) {
|
||||
const subscription = await registration.pushManager.getSubscription()
|
||||
|
||||
if (subscription) {
|
||||
this.pushSubscriptionEndpointTarget.value = subscription.endpoint
|
||||
await subscription.unsubscribe()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user