chore: init commit
in worker.../repo/GITFOLDER.zip is the .git folder.
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
import { Controller } from "@hotwired/stimulus"
|
||||
|
||||
// Connects to data-controller="autosave"
|
||||
export default class extends Controller {
|
||||
static values = {
|
||||
interval: { type: Number, default: 30000 } // we'll default to 30 seconds here
|
||||
}
|
||||
|
||||
static targets = ["form", "button", "status"]
|
||||
|
||||
connect() {
|
||||
this.startAutosave()
|
||||
this.bindTurboEvents()
|
||||
}
|
||||
|
||||
disconnect() {
|
||||
this.stopAutosave()
|
||||
}
|
||||
|
||||
startAutosave() {
|
||||
this.timer = setInterval(() => this.save(), this.intervalValue)
|
||||
}
|
||||
|
||||
stopAutosave() {
|
||||
if (this.timer) clearInterval(this.timer)
|
||||
}
|
||||
|
||||
save() {
|
||||
if (!this.hasButtonTarget) return
|
||||
this.buttonTarget.click()
|
||||
}
|
||||
|
||||
bindTurboEvents() {
|
||||
this.formTarget.addEventListener("turbo:submit-start", () => {
|
||||
this.buttonTarget.textContent = "Saving..."
|
||||
})
|
||||
this.formTarget.addEventListener("turbo:submit-end", () => {
|
||||
const now = new Date()
|
||||
const formatted = now.toLocaleTimeString([], {
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
hour12: true
|
||||
})
|
||||
this.statusTarget.textContent = `Last saved at ${formatted}`
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user