feat: add 2-day view, scrollable mobile settings, fix someday on mobile

- Add 2-column option to view days selector (1,2,3,5,7)
- Make settings sidebar scrollable on mobile (overflow-y: auto)
- Fix someday section not visible on mobile by removing maxHeight
  constraint from time-grid-wrapper on mobile devices, allowing
  natural page scrolling to reach the someday area below

v1.35.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
mARTin 2026-03-15 09:48:40 +01:00
parent fff67cb4af
commit e663f82c26
3 changed files with 6 additions and 5 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "my-weekly-todo-list", "name": "my-weekly-todo-list",
"version": "1.34.5", "version": "1.35.0",
"description": "A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view", "description": "A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {

View File

@ -2297,6 +2297,7 @@ h3 {
.weekly-settings-sidebar { .weekly-settings-sidebar {
width: 100% !important; width: 100% !important;
max-width: 100vw; max-width: 100vw;
overflow-y: auto !important;
} }
.preferences-panel { .preferences-panel {

View File

@ -5278,7 +5278,7 @@ export default function WeeklyView() {
{language === "de" ? "Spalten" : "Columns"} {language === "de" ? "Spalten" : "Columns"}
</span> </span>
<div style={{ display: "flex", gap: "4px" }}> <div style={{ display: "flex", gap: "4px" }}>
{[1, 3, 5, 7].map((num) => ( {[1, 2, 3, 5, 7].map((num) => (
<button <button
key={num} key={num}
onClick={() => { setViewDays(num); savedViewDaysRef.current = num; saveSetting("viewDays", num); }} onClick={() => { setViewDays(num); savedViewDaysRef.current = num; saveSetting("viewDays", num); }}
@ -5624,7 +5624,7 @@ export default function WeeklyView() {
title="Days to show" title="Days to show"
> >
<LayoutGrid size={16} className="text-gray-500 mr-1" /> <LayoutGrid size={16} className="text-gray-500 mr-1" />
{[1, 3, 5, 7].map((num) => ( {[1, 2, 3, 5, 7].map((num) => (
<button <button
key={num} key={num}
onClick={() => { onClick={() => {
@ -6254,7 +6254,7 @@ export default function WeeklyView() {
{/* Main Grid with Time Column */} {/* Main Grid with Time Column */}
{viewStyle !== "kanban" && <div style={{ position: "relative" }}> {viewStyle !== "kanban" && <div style={{ position: "relative" }}>
<div className="time-grid-wrapper" ref={timeGridWrapperRef} style={showTimeGrid ? { <div className="time-grid-wrapper" ref={timeGridWrapperRef} style={showTimeGrid && !isMobile ? {
maxHeight: `${(endHour - startHour) * (60 / cellDuration) * getSlotHeight(cellDuration) + measuredHeaderHeight}px`, maxHeight: `${(endHour - startHour) * (60 / cellDuration) * getSlotHeight(cellDuration) + measuredHeaderHeight}px`,
} : undefined}> } : undefined}>
{/* Time Column */} {/* Time Column */}
@ -10196,7 +10196,7 @@ function SettingsSidebar({
<div style={{ display: "flex", alignItems: "center", gap: "8px" }}> <div style={{ display: "flex", alignItems: "center", gap: "8px" }}>
<span style={{ fontSize: "0.75rem", color: "var(--weekly-text-light, #9ca3af)", minWidth: "40px" }}>{t.days || "Days"}</span> <span style={{ fontSize: "0.75rem", color: "var(--weekly-text-light, #9ca3af)", minWidth: "40px" }}>{t.days || "Days"}</span>
<div style={{ display: "flex", gap: "4px", flex: 1 }}> <div style={{ display: "flex", gap: "4px", flex: 1 }}>
{[1, 3, 5, 7].map((num) => ( {[1, 2, 3, 5, 7].map((num) => (
<button <button
key={num} key={num}
onClick={() => { mobileActions.onViewDaysChange(num); }} onClick={() => { mobileActions.onViewDaysChange(num); }}