Hello world

First open source release of Campfire 🎉
This commit is contained in:
Kevin McConnell
2025-08-15 11:02:42 +01:00
commit df76a227dc
664 changed files with 36235 additions and 0 deletions
@@ -0,0 +1,35 @@
import { Controller } from "@hotwired/stimulus"
import { getCookie, setCookie } from "lib/cookie"
export default class extends Controller {
static classes = [ "prompting" ]
connect() {
if (this.#canInstall && !this.#isInstalledPWA) {
window.addEventListener("beforeinstallprompt", this.#preventPrompt)
window.addEventListener("appinstalled", this.#installed)
}
}
promptInstall = () => {
this.deferredPrompt.prompt()
}
#installed = () => {
this.element.classList.remove(this.promptingClass)
}
#preventPrompt = (event) => {
event.preventDefault()
this.deferredPrompt = event;
this.element.classList.add(this.promptingClass)
}
get #canInstall() {
return "serviceWorker" in navigator
}
get #isInstalledPWA() {
return window.matchMedia("(display-mode: standalone)").matches
}
}