fix: prevent browser caching of booked dates and ensure booked dates are immediately disabled

This commit is contained in:
2026-08-12 18:16:47 +02:00
parent 23baff9ef0
commit 020f3ef746
3 changed files with 39 additions and 18 deletions
+14 -5
View File
@@ -38,22 +38,31 @@
}
Promise.all([
fetch("appsettings.json").then((res) => res.json()),
fetch("/api/booked-dates")
fetch("appsettings.json?t=" + Date.now()).then((res) => res.json()),
fetch("/api/booked-dates?t=" + Date.now(), { cache: "no-store" })
.then((res) => (res.ok ? res.json() : []))
.catch(() => []),
])
.then(([settings, bookedDates]) => {
bookedDatesSet = new Set(bookedDates || []);
let localBooked = [];
try {
localBooked = JSON.parse(localStorage.getItem("bookedDates") || "[]");
} catch (e) {}
const allBooked = [...(bookedDates || []), ...localBooked]
.map((d) => (typeof d === "string" ? d.trim() : ""))
.filter(Boolean);
bookedDatesSet = new Set(allBooked);
const datesList = settings.availableDates || [];
datesList.forEach((item) => {
let key = "";
let type = "long";
if (typeof item === "string") {
key = item;
key = item.trim();
} else if (item && item.date) {
key = item.date;
key = item.date.trim();
type = item.type || "long";
}