Skip to content

feat: Multi days screens structure - #236

Merged
LunarX merged 9 commits into
mainfrom
multi-days-structure
Oct 15, 2026
Merged

LunarX merged 9 commits into
mainfrom
multi-days-structure

Conversation

@LunarX

@LunarX LunarX commented Oct 12, 2026

Copy link
Copy Markdown
Contributor

Just make a basic structure that shows the grid of days, shares the code between 3/7 days views and display the correct header on top of every column.

What's still missing:

  • Loading events
  • Handling all day event display
  • Scrolling/paging between days
  • Animation when navigating between 1/3/7 days screens

@LunarX LunarX self-assigned this Oct 12, 2026
Copilot AI balanced review requested due to automatic review settings October 12, 2026 11:52
@LunarX LunarX changed the title feat: Multi days structure feat: Multi days screens structure Oct 12, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The scoped multi-day structure is coherent; identified issues are minor documentation and cleanup items.

2 open findings
What changed in this PR

Adds shared multi-day timeline scaffolding for three-day and week views while reusing the existing day-grid infrastructure.

Changes:

  • Introduces shared multi-day columns, headers, grid lines, and current-time indicators.
  • Connects three-day and week screens to the new structure with intentionally empty event data.
  • Generalizes timeline state/default naming across day-based views.
File Description
AGENTS.md Documents multi-day components.
CalendarComponents/​Foundation/​.../​Dimens.kt Removes redundant whitespace.
CalendarComponents/​Foundation/​.../​ComponentColors.kt Centralizes grid-divider color.
CalendarComponents/​Foundation/​.../​DateState.kt Uses theme opacity and adds a preview.
CalendarComponents/​Day/​.../​WeekPager.kt Builds a seven-day timeline.
CalendarComponents/​Day/​.../​TimelineDefaults.kt Generalizes timeline defaults.
CalendarComponents/​Day/​.../​ThreeDayPager.kt Builds a three-day timeline.
CalendarComponents/​Day/​.../​state/​TimelineState.kt Generalizes timeline state.
CalendarComponents/​Day/​.../​PinchToZoom.kt Adopts generalized state.
CalendarComponents/​Day/​.../​layout/​TimedEventsColumn.kt Adopts generalized defaults.
CalendarComponents/​Day/​.../​layout/​ResizableEventLayout.kt Adopts generalized defaults.
CalendarComponents/​Day/​.../​layout/​EventLayoutConfig.kt Renames divider thickness.
CalendarComponents/​Day/​.../​DayPager.kt Adopts generalized state.
CalendarComponents/​Day/​.../​component/​TimelineGrid.kt Shares divider styling and state.
CalendarComponents/​Day/​.../​component/​ResizableEventItem.kt Adopts generalized defaults.
CalendarComponents/​Day/​.../​component/​MultiDayPager.kt Implements shared multi-day layout.
CalendarComponents/​Day/​.../​component/​DayView.kt Uses generalized state and divider naming.
CalendarComponents/​Day/​.../​component/​DayTimeline.kt Uses generalized state and defaults.
CalendarComponents/​Day/​.../​component/​DayHeader.kt Uses generalized defaults.
CalendarComponents/​Day/​.../​component/​DayColumnHeader.kt Adds per-day column headers.
CalendarComponents/​Day/​.../​component/​CurrentTimeIndicator.kt Adopts generalized state.
CalendarComponents/​Day/​.../​component/​AllDayEventsBand.kt Adopts generalized defaults.
app/​.../​screen/​week/​WeekScreen.kt Displays the week structure.
app/​.../​screen/​threeDays/​ThreeDayScreen.kt Displays the three-day structure.
app/​.../​screen/​day/​DayScreen.kt Adopts generalized state.
app/​.../​effects/​MultiDaysScreensEffects.kt Removes obsolete imports.
app/​.../​data/​CalendarDataValues.kt Uses generalized defaults.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread AGENTS.md Outdated
@LunarX
LunarX requested a review from a team October 12, 2026 14:04
@LunarX
LunarX force-pushed the multi-days-structure branch from dd7ca67 to 6a34894 Compare October 13, 2026 07:14
@LunarX
LunarX added this pull request to stack #244 October 13, 2026 09:30
@LunarX
LunarX force-pushed the multi-days-structure branch from 3db06ce to 6821b8f Compare October 15, 2026 08:08
@LunarX
LunarX force-pushed the multi-days-structure branch from 77df2a9 to c708f18 Compare October 15, 2026 08:50
LunarX and others added 9 commits October 15, 2026 12:55
…components

MultiDayView lays several days side by side from the same blocks as the day
view: a header, an all-day band and a timed events column per day, over the
hour labels and lines, with the current time indicator in today's column. The
headers, bands and columns share one column layout so they line up.

ThreeDayPager and WeekPager show the days around the selected date through it,
and their screens host them like DayScreen hosts DayPager. Swiping and the
days' events come next.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Updated the Day component documentation to clarify its features and structure, including the handling of timed events and layout for multiple days.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@LunarX
LunarX force-pushed the multi-days-structure branch from c708f18 to a0878cf Compare October 15, 2026 10:55
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
3.5% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

@LunarX
LunarX merged commit fd2d32e into main Oct 15, 2026
9 of 10 checks passed
@LunarX
LunarX deleted the multi-days-structure branch October 15, 2026 12:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants