import { Controller } from "@hotwired/stimulus" import { debounce, nextFrame } from "helpers/timing_helpers" export default class extends Controller { static targets = ["input"] static values = { key: String } initialize() { this.save = debounce(this.save.bind(this), 300) } connect() { this.restoreContent() } submit({ detail: { success } }) { if (success) { this.#clear() } } save() { const content = this.inputTarget.value if (content) { localStorage.setItem(this.keyValue, content) } else { this.#clear() } } async restoreContent() { await nextFrame() let savedContent = localStorage.getItem(this.keyValue) if (savedContent) { savedContent = `