42 lines
1.3 KiB
JavaScript
42 lines
1.3 KiB
JavaScript
import { Controller } from '@hotwired/stimulus'
|
|
|
|
export default class extends Controller {
|
|
static targets = [ "image", "modeDay", "dayLogLink", "dayLogInfo" ];
|
|
|
|
updateDayInfo(event) {
|
|
const image = this.imageTarget;
|
|
const modeDay = this.modeDayTarget;
|
|
const day = event.target.dataset.day;
|
|
const modeDayContent = day + ' : ' + event.target.dataset.mode;
|
|
image.src = event.target.dataset.image;
|
|
modeDay.textContent = modeDayContent;
|
|
event.target.className = "selected-day " + event.target.dataset.mode;
|
|
|
|
this.dayLogInfoTarget.textContent = event.target.dataset.info || '';
|
|
this.dayLogLinkTarget.href = `/day_logs/edit?day=${day}`
|
|
|
|
if (this.lastTarget) {
|
|
this.lastTarget.className = "day " + this.lastTarget.dataset.mode;
|
|
}
|
|
|
|
this.lastTarget = event.target;
|
|
}
|
|
|
|
connect() {
|
|
this.lastTarget = null;
|
|
const logs = document.querySelector(".logs");
|
|
if (!logs) return;
|
|
|
|
document.addEventListener("turbo:before-visit", () => {
|
|
sessionStorage.setItem("logsScrollTop", logs.scrollTop);
|
|
});
|
|
|
|
const savedScroll = sessionStorage.getItem("logsScrollTop");
|
|
if (savedScroll) {
|
|
logs.scrollTop = parseInt(savedScroll);
|
|
sessionStorage.removeItem("logsScrollTop");
|
|
} else {
|
|
logs.scrollTop = logs.scrollHeight;
|
|
}
|
|
}
|
|
}
|