diff --git a/package.json b/package.json index 25e12f2..8bd930c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "my-weekly-todo-list", - "version": "1.106.0", + "version": "1.106.1", "description": "A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view", "main": "index.js", "scripts": { diff --git a/src/components/WeeklyView.tsx b/src/components/WeeklyView.tsx index 0b8347d..f58f302 100644 --- a/src/components/WeeklyView.tsx +++ b/src/components/WeeklyView.tsx @@ -33,6 +33,8 @@ import { import FocusModeOverlay from "./FocusModeOverlay"; import { LayoutGrid, + LayoutPanelLeft, + LayoutPanelTop, Calendar, ChevronDown, ChevronLeft, @@ -5372,6 +5374,7 @@ export default function WeeklyView() { return `${(num * fontSizeScale * mobileScale).toFixed(3)}rem`; }; const activeTheme = (darkMode ? profile.darkTheme : profile.lightTheme) as Record | null; + const useLeftRail = !isMobile && profile.menuPosition !== "top"; const containerStyle = { ...(activeTheme ? { @@ -5450,7 +5453,7 @@ export default function WeeklyView() { "--weekly-past-color": activeTheme?.color8 || (darkMode ? invertColor(profile.pastDayColor || "#a6a6a7") : profile.pastDayColor || "#a6a6a7"), - ...(!isMobile ? { paddingLeft: leftRailExpanded ? "240px" : "44px", transition: "padding-left 0.2s ease" } : {}), + ...(useLeftRail ? { paddingLeft: leftRailExpanded ? "240px" : "44px", transition: "padding-left 0.2s ease" } : {}), } as React.CSSProperties; if (isLoading) { @@ -5757,8 +5760,63 @@ export default function WeeklyView() { )} + {/* Desktop Top-mode overlay — opens like the mobile overlay, triggered by header button */} + {!isMobile && !useLeftRail && showQuickSettings && ( + <> +
setShowQuickSettings(false)} style={{ position: "fixed", inset: 0, zIndex: 999 }} /> +
+
{profile.language === "de" ? "Einstellungen" : "Preferences"}
+ {/* Menu position toggle */} +
+ {profile.language === "de" ? "Menüposition" : "Menu position"} +
+ + +
+
+
+
+ + + + + +
+
+ + + + + + + +
+
+
{profile.language === "de" ? "Ansicht" : "View"}
{[{ key: "simple", icon: }, { key: "calendar", icon: }, { key: "list", icon: }, { key: "kanban", icon: }, { key: "priority", icon: }].map((v) => ())}
+
{profile.language === "de" ? "Spalten" : "Days"}
{[1, 2, 3, 5, 7].map((num) => ())}
+ {profile.showTimeGrid && (
{profile.language === "de" ? "Zeitfenster" : "Slot"}
{(([15, 20, 30, 60] as CellDuration[])).map((d) => ())}
)} + {profile.showTimeGrid && (
:15/:30/:45
)} +
{profile.language === "de" ? "Textgröße" : "Text size"}
{(["S", "M", "L"] as const).map((size) => ())}
+
+ {[{ label: profile.language === "de" ? "Irgendwann" : "Someday", value: effectiveShowSomeday, toggle: () => saveViewSetting("showSomeday", !effectiveShowSomeday, true) }, { label: profile.language === "de" ? "Ganztägig" : "All-day", value: effectiveShowAllDay, toggle: () => saveViewSetting("showAllDayEvents", !effectiveShowAllDay, true) }, { label: profile.language === "de" ? "Checkboxen" : "Checkboxes", value: effectiveShowTaskCheckboxes, toggle: () => saveViewSetting("showTaskCheckboxes", !effectiveShowTaskCheckboxes, true) }, { label: profile.language === "de" ? "Projekt-Icons" : "Project Icons", value: effectiveShowProjectIcons, toggle: () => saveViewSetting("showProjectIcons", !effectiveShowProjectIcons, true) }, { label: profile.language === "de" ? "Prioritäts-Icons" : "Priority Icons", value: effectiveShowPriorityIcons, toggle: () => saveViewSetting("showPriorityIcons", !effectiveShowPriorityIcons, true) }, ...((profile.weatherEnabled || profile.weatherLat || profile.weatherLon) ? [{ label: profile.language === "de" ? "Wetter" : "Weather", value: effectiveWeatherEnabled, toggle: () => { const v = !effectiveWeatherEnabled; setProfile((p: any) => ({ ...p, weatherEnabled: v })); saveViewSetting("weatherEnabled", v, true); } }] : []) ].map(({ label, value, toggle }) => (
{label}
))} +
{profile.language === "de" ? "Starten mit" : "Start on"}
+
{profile.language === "de" ? "Anzeige" : "Display"}
+
+
+ + + +
+
+ +
+ + )} + {/* Desktop Left Rail — persistent, collapses to icon strip */} - {!isMobile && ( + {useLeftRail && ( <> {/* The rail panel */}
@@ -5771,6 +5829,15 @@ export default function WeeklyView() {
+ {/* Menu position toggle */} +
+ {profile.language === "de" ? "Menüposition" : "Menu position"} +
+ + +
+
+
{/* Navigation */}
@@ -6012,8 +6079,18 @@ export default function WeeklyView() { {/* Desktop Header: Left, Center, Right */}
- {/* LEFT SECTION: View Switcher, Days, Hours, Slot Duration */} -
+ {/* LEFT SECTION: View Switcher, Days, Hours, Slot Duration — only shown in top-toolbar mode */} +
+ {/* Quick-settings button (top mode only) */} + {!useLeftRail && ( + + )} {/* View Switcher */}