Skip to content

feat(calendar): redesign page with persistent filter sidebar and week… - #2408

Draft
ElMagnea wants to merge 2 commits into
mainfrom
feat/filter-sidebar-updates
Draft

feat(calendar): redesign page with persistent filter sidebar and week…#2408
ElMagnea wants to merge 2 commits into
mainfrom
feat/filter-sidebar-updates

Conversation

@ElMagnea

@ElMagnea ElMagnea commented May 27, 2026

Copy link
Copy Markdown
Collaborator

Summary

Reworks the calendar page around a persistent filter sidebar (mirroring the SmartListCreator layout) and introduces a Week view alongside the existing Day view. The calendar navigation (Today / chevrons / Day-Week toggle, day strip, and month grid) is hoisted into the top of that sidebar through navbar state, so the user navigates dates and filters from a single panel.

Views

  • Day view — keeps the original chronological day rows.
  • Week view — lays each period out as a 7-column grid with united day headers and 1px vertical column separators; eagerly pre-loads upcoming weeks via loadMore() so the default landing leans forward. Past weeks remain reachable through the up-chevron and scroll-up.

Navigation

  • New Day / Week segmented toggle (CalendarViewSelector).
  • Persistent SUN-SAT weekday row (CalendarWeekdayRow) above the date content; the row below swaps between the active-week day strip and the full month grid (CalendarMonthGrid) with the active week wrapped and days that have items marked with small dots beneath the date.

Filter panel restyle

  • Simple / Advanced segmented pill (purple-700 selector, regular vs bold weight).
  • Dropdowns aligned with the Figma Certification spec via the existing MultiSelect.
  • Sliders restyled to match the Release Window thumb.
  • Hide section toggles switched to the purple pill in sentence case.

Test plan

  • Day view: navigating dates via Today / chevrons / day-strip scrolls the body to the right anchor (no silent no-op from stale DOM).
  • Week view: chevrons advance/retreat by full weeks; eager loadMore() keeps the next 2-3 weeks rendered ahead of the active week.
  • Month grid: the active week is wrapped, days with items show indicator dots, and tapping a day jumps to it in the active view.
  • Day-of-month numerals render without leading zeros across day strip and month grid.
  • Filter panel: Simple/Advanced toggle, MultiSelect dropdowns, restyled sliders, and Hide toggles all render correctly in light + dark theme.
  • deno task client:check and deno task client:test both pass.

… view

Reworks the calendar page around a docked filter sidebar that always sits
to the right of the main content, mirroring the SmartListCreator layout.
The calendar navigation (Today / chevrons / Day-Week toggle, day strip
and month grid) is pushed into the top of that sidebar through navbar
state, so the user navigates dates and filters from the same panel.

- New Day / Week view toggle. Day view renders the original chronological
  day rows; week view lays each period out as a 7-column grid with
  united day headers and 1px vertical column separators.
- Persistent SUN-SAT weekday row above the date content; the row below
  swaps between the active-week day strip (day view) and the full month
  grid (week view), with the active week wrapped and has-items days
  marked with small dots beneath the date.
- Week view eagerly pre-loads upcoming weeks via `loadMore()` so the
  default landing leans forward; past weeks remain reachable through
  the up-chevron and scroll-up.
- Filter panel restyle: Simple/Advanced segmented pill (purple-700
  selector, regular vs bold weight), dropdowns aligned with the Figma
  Certification spec via the existing MultiSelect, sliders restyled to
  match the Release Window thumb, and Hide section toggles switched to
  the purple pill in sentence case.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@trakt-bot
trakt-bot Bot enabled auto-merge (rebase) May 27, 2026 10:47
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a major redesign of the calendar page, focusing on improved navigation and layout efficiency. By moving the calendar controls into a persistent sidebar and adding a week-view mode, the user experience is streamlined. The changes also include a comprehensive restyling of filter components to ensure consistency with the new design language.

Highlights

  • Calendar Redesign: Implemented a persistent filter sidebar and introduced a new week-view mode to the calendar page.
  • View Navigation: Added a Day/Week view toggle and integrated calendar navigation directly into the filter sidebar.
  • Filter Panel Updates: Restyled filter components, including dropdowns, sliders, and toggles, to align with updated design specifications.
  • New Components: Added several internal components such as CalendarMonthGrid, CalendarWeekItems, and CalendarWeekdayRow to support the new layout.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@deepsource-io

deepsource-io Bot commented May 27, 2026

Copy link
Copy Markdown

DeepSource Code Review

We reviewed changes in 0431cf4...06b22ea on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

PR Report Card

Overall Grade   Security  

Reliability  

Complexity  

Hygiene  

Coverage  

Code Review Summary

Analyzer Status Updated (UTC) Details
JavaScript May 28, 2026 12:56p.m. Review ↗
Code coverage May 28, 2026 12:56p.m. Review ↗

Code Coverage Summary

Language Line Coverage (Overall)
Aggregate
69.5%
[▼ down 0.1% from main]
Javascript
69.5%
[▼ down 0.1% from main]

➟ Additional coverage metrics may have been reported. See full coverage report ↗


Important

AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.

@gemini-code-assist gemini-code-assist Bot 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.

Code Review

This pull request introduces a new week-view calendar option alongside the existing day-view, integrating a month-wide grid and weekday headers directly into the docked filter sidebar. It also refactors the multi-select dropdown filters to use a unified MultiSelect component and updates various component styles. The review comments highlight several important issues, including a Svelte 5 state-batching issue where synchronous DOM queries on document.getElementById fail because updates are asynchronous, a TypeScript type mismatch for translation variables, a recommendation to co-locate side-effect cleanups inside Svelte 5 $effect blocks instead of using onMount, a warning against iterating over sparse arrays, and a formatting inconsistency with leading zeros in calendar day views.

Comment thread projects/client/src/lib/features/calendar/Calendar.svelte Outdated
Comment thread projects/client/src/lib/features/calendar/Calendar.svelte Outdated
Comment thread projects/client/src/lib/features/calendar/Calendar.svelte
Comment thread projects/client/src/lib/features/calendar/_internal/CalendarMonthGrid.svelte Outdated
Comment thread projects/client/src/lib/features/calendar/_internal/toCalendarDayParts.ts Outdated
@ElMagnea
ElMagnea requested a review from seferturan May 27, 2026 10:55
- Calendar.svelte: await tick() inside handleNavigation so the scroll lookup runs after the active-date DOM update lands (was silently no-op in Svelte 5 due to batched updates).
- Calendar.svelte: replace onMount cleanup-only block with a return from the same $effect that registers filterPanelHeader, co-locating setup and teardown.
- Calendar.svelte: swap onMount import for tick.
- CalendarMonthGrid.svelte: switch sparse Array(n) to Array.from({ length: n }) so the indicator-dot loop iterates over a properly populated array.
- toCalendarDayParts.ts: format day-of-month with 'd' (no leading zero) to match the day-strip's getDate() rendering.
- en.json: type the {day} variable on button_label_go_to_calendar_day as string — toHumanDay returns a formatted string ("Today", "Tuesday, Oct 15"), not a number.
@seferturan
seferturan marked this pull request as draft May 29, 2026 12:03
auto-merge was automatically disabled May 29, 2026 12:03

Pull request was converted to draft

@seferturan

Copy link
Copy Markdown
Contributor

Drafting it for now, will need some bigger changes. I'll tackle this one.

@vladjerca
vladjerca force-pushed the main branch 2 times, most recently from b9271a4 to 41dd680 Compare June 29, 2026 19:29
@Marius-TV
Marius-TV force-pushed the main branch 3 times, most recently from d6ed106 to 637bdc2 Compare August 2, 2026 05:08
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.

2 participants