This commit is contained in:
23
app/javascript/controllers/toc_view_controller.js
Normal file
23
app/javascript/controllers/toc_view_controller.js
Normal file
@@ -0,0 +1,23 @@
|
||||
import { Controller } from "@hotwired/stimulus"
|
||||
import { readCookie, setCookie } from "helpers/cookie_helpers"
|
||||
|
||||
export default class extends Controller {
|
||||
static targets = [ "switch" ]
|
||||
static values = { id: String }
|
||||
|
||||
connect() {
|
||||
this.#restoreViewPref(this.idValue)
|
||||
}
|
||||
|
||||
saveViewPref(event) {
|
||||
const viewType = event.target.dataset.tocViewTypeValue
|
||||
setCookie(this.idValue, viewType)
|
||||
}
|
||||
|
||||
#restoreViewPref(id) {
|
||||
const viewType = readCookie(id) || "grid"
|
||||
this.switchTargets.forEach(switchTarget => {
|
||||
switchTarget.checked = switchTarget.dataset.tocViewTypeValue === viewType
|
||||
}
|
||||
)}
|
||||
}
|
||||
Reference in New Issue
Block a user