app.kluk.fr/app/javascript/controllers/mood_controller.js

45 lines
1.4 KiB
JavaScript
Raw Normal View History

2025-08-05 16:56:33 +02:00
import { Controller } from '@hotwired/stimulus'
export default class extends Controller {
2026-03-22 16:32:01 +01:00
static targets = [ "image", "modeDay", "dayLogLink", "dayLogInfo" ];
2025-08-05 16:56:33 +02:00
2026-03-22 22:14:40 +01:00
connect() {
this.lastTarget = null;
const params = new URLSearchParams(window.location.search);
const selectedDay = params.get("day");
if (selectedDay) {
const dayEl = document.querySelector(`[data-day="${selectedDay}"]`);
if (dayEl) {
dayEl.click();
dayEl.scrollIntoView({ block: "center" });
}
} else {
const logs = document.querySelector(".logs");
if (logs) logs.scrollTop = logs.scrollHeight;
}
}
2025-08-05 16:56:33 +02:00
updateDayInfo(event) {
const image = this.imageTarget;
2026-01-08 13:36:58 +01:00
const modeDay = this.modeDayTarget;
2026-03-21 16:16:54 +01:00
const day = event.target.dataset.day;
2026-03-22 22:14:40 +01:00
const formattedDay = new Date(day).toLocaleDateString('fr-FR');
const modeDayContent = formattedDay + ' : ' + event.target.dataset.mode;
2025-08-05 16:56:33 +02:00
image.src = event.target.dataset.image;
2026-01-08 13:36:58 +01:00
modeDay.textContent = modeDayContent;
2026-03-22 22:14:40 +01:00
this.dayLogLinkTarget.href = `/day_logs/edit?day=${day}`;
this.dayLogInfoTarget.textContent = event.target.dataset.info || '';
2026-02-06 16:07:51 +01:00
event.target.className = "selected-day " + event.target.dataset.mode;
2026-03-14 15:19:29 +01:00
2026-03-22 22:14:40 +01:00
history.pushState({}, '', `?day=${day}`);
2026-03-21 16:16:54 +01:00
2026-03-14 15:19:29 +01:00
if (this.lastTarget) {
this.lastTarget.className = "day " + this.lastTarget.dataset.mode;
}
this.lastTarget = event.target;
2026-02-06 16:07:51 +01:00
}
2025-08-05 16:56:33 +02:00
}