From 58bbbbdf52d9cf8533f45284e311c92daf9f99b2 Mon Sep 17 00:00:00 2001 From: mARTin Date: Wed, 4 Mar 2026 11:08:39 +0100 Subject: [PATCH] fix: cookie settings override, 5x week animation, deprecated meta tag --- src/app/layout.tsx | 3 +++ src/components/WeeklyView.tsx | 44 +++++++++++++++++++++-------------- 2 files changed, 29 insertions(+), 18 deletions(-) diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 2cac93f..7aceabb 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -20,6 +20,9 @@ export const metadata: Metadata = { statusBarStyle: 'default', title: 'My Weekly To Do List', }, + other: { + 'mobile-web-app-capable': 'yes', + }, }; export default function RootLayout({ diff --git a/src/components/WeeklyView.tsx b/src/components/WeeklyView.tsx index 7e0cf57..9da2956 100644 --- a/src/components/WeeklyView.tsx +++ b/src/components/WeeklyView.tsx @@ -1488,34 +1488,42 @@ export default function WeeklyView() { setTimeFormat(data.user.timeFormat || "12h"); setDateFormat(data.user.dateFormat || "MM/dd/yyyy"); setLanguage(data.user.language || "en"); - if (data.user.startHour !== undefined) { - const cookieStartHour = getCookie("setting_startHour"); - setStartHour(cookieStartHour ? Number(cookieStartHour) : data.user.startHour); - } - if (data.user.endHour !== undefined) { - const cookieEndHour = getCookie("setting_endHour"); - setEndHour(cookieEndHour ? Number(cookieEndHour) : data.user.endHour); - } + if (data.user.startHour !== undefined) + setStartHour(data.user.startHour); + if (data.user.endHour !== undefined) + setEndHour(data.user.endHour); if (data.user.viewStyle !== undefined) { setViewStyle(data.user.viewStyle as ViewStyle); setShowTimeGrid(data.user.showTimeGrid ?? true); } if (data.user.viewDays !== undefined) { - // Cookie override for per-device viewDays - const cookieViewDays = getCookie("setting_viewDays"); - const effectiveViewDays = cookieViewDays ? Number(cookieViewDays) : data.user.viewDays; - savedViewDaysRef.current = effectiveViewDays; - // Re-apply responsive constraints after loading saved preference + savedViewDaysRef.current = data.user.viewDays; const width = window.innerWidth; if (width <= 480) setViewDays(1); else if (width <= 768) setViewDays(3); - else if (width <= 1024) setViewDays(Math.min(effectiveViewDays, 5)); - else setViewDays(effectiveViewDays); + else if (width <= 1024) setViewDays(Math.min(data.user.viewDays, 5)); + else setViewDays(data.user.viewDays); } - if (data.user.cellDuration !== undefined) { - const cookieCellDuration = getCookie("setting_cellDuration"); - setCellDuration((cookieCellDuration ? Number(cookieCellDuration) : data.user.cellDuration) as CellDuration); + if (data.user.cellDuration !== undefined) + setCellDuration(data.user.cellDuration as CellDuration); + + // Cookie overrides for per-device settings (always apply, even if DB has no value) + const cookieViewDays = getCookie("setting_viewDays"); + if (cookieViewDays) { + const v = Number(cookieViewDays); + savedViewDaysRef.current = v; + const width = window.innerWidth; + if (width <= 480) setViewDays(1); + else if (width <= 768) setViewDays(3); + else if (width <= 1024) setViewDays(Math.min(v, 5)); + else setViewDays(v); } + const cookieCellDuration = getCookie("setting_cellDuration"); + if (cookieCellDuration) setCellDuration(Number(cookieCellDuration) as CellDuration); + const cookieStartHour = getCookie("setting_startHour"); + if (cookieStartHour) setStartHour(Number(cookieStartHour)); + const cookieEndHour = getCookie("setting_endHour"); + if (cookieEndHour) setEndHour(Number(cookieEndHour)); setShowNextTask(data.user.showNextTask || false); setCalendarEditMode(data.user.calendarEditMode || false); if (data.user.fontSize)