Skip to content

Rebuild planner sidebar design#1733

Merged
Uarmagan merged 15 commits into
mainfrom
feature/rebuild-planner-sidebar-1732
May 12, 2026
Merged

Rebuild planner sidebar design#1733
Uarmagan merged 15 commits into
mainfrom
feature/rebuild-planner-sidebar-1732

Conversation

@Uarmagan
Copy link
Copy Markdown
Contributor

@Uarmagan Uarmagan commented May 11, 2026

Summary

Rebuilds the Planner Sidebar from prototype PR #1732 on a fresh branch from latest origin/main.

Preserved from #1732:

  • The 285px dark Planner Sidebar shell with the prototype border, background, spacing, fixed footer, and scrollable planning content.
  • The compact month picker treatment, selected-week highlight, temporary account row, Someday week/month sections, add controls, and bottom shortcuts/command actions.
  • The in-sidebar shortcuts overlay, including Escape-to-close behavior.
  • Day and Week support, with date navigation keeping the user in the current main view.

Simplified in this rebuild:

  • Replaced the prototype branch shape with a shared PlannerSidebar component used by both Day and Week.
  • Removed sidebar tab state and the old Week-only month/tasks tab UI instead of carrying both concepts forward.
  • Kept the shortcut overlay as a sidebar overlay rather than a replacement sidebar model.
  • Tightened the Someday week label logic and added focused tests for sidebar stability and Day task loading stability.
  • Clarified navigated Someday labels so weeks read like Week of Apr 26 and months read like Month of April.
  • Kept prototype-only design artifacts (DESIGN.md, .impeccable/design.json, scratch output) out of this PR.

E2E follow-up fix:

  • The PR e2e job exposed a failure in the keyboard flow for updating a Someday event title. The test opened the floating edit form, typed a new title, and then timed out while saving.
  • The problem was a timing issue between the floating form and the sidebar list: editing the draft could refresh the row behind the form while Playwright was trying to save, and the form submit path could read an older copy of the event data.
  • The fix keeps the visible Someday row stable while its edit form is open, lets the form itself receive the live draft, and makes save submit the latest typed event data. Recurrence edits now use the same current-value path, and recurrence removal submits the final event directly instead of triggering an extra draft update immediately before save.
  • The shared e2e save helper now dispatches the save click against the currently mounted button so the React handler runs even when the floating form is in the middle of a harmless re-render.

Old code intentionally not carried forward:

  • views/Week/components/Sidebar/MonthTab/*
  • views/Week/components/Sidebar/SidebarIconRow/*
  • old sidebar tab reducer/selectors
  • the Week-only sidebar shell and duplicate Someday tab scaffolding

Visual verification

Validated the rebuilt sidebar in the live app with Playwright/Chromium at 1440x900:

  • Week view /week: sidebar width 285px, height 900px, no horizontal overflow, matching prototype background rgba(108, 114, 127, 0.2) and border rgba(71, 82, 102, 0.2).
  • Day view /day/2026-05-11: same sidebar metrics and layout.
  • Shortcuts overlay opens from the footer, measures ~284px wide inside the sidebar, and closes with Escape.
  • Date selection in Week keeps the route on /week; date selection in Day keeps the route on /day/....
  • Verified the month-boundary case where selecting June 1 shows Week of May 31 and Month of June, so the week label follows the week start while the month label follows the selected date.
  • Checked screenshots for Day and Week spacing, readability, selected week treatment, and footer stability.

Verification

Latest fix validation:

  • bun run lint
  • bun run type-check
  • CI=1 bun run test:e2e — 37 passed, 3 skipped

Earlier branch validation:

  • Focused sidebar and related tests: NODE_ENV=test TZ=Etc/UTC bun test --cwd packages/web ...
  • Full web tests: TZ=Etc/UTC bun run test:web
  • Changed-file Biome check: git diff --name-only --diff-filter=ACMR HEAD | rg '\\.(ts|tsx|js|jsx|json|md)$' | xargs bunx biome check --no-errors-on-unmatched
  • Whitespace check: git diff HEAD --check

const { dbInitError } = await initializeDatabaseWithErrorHandling();
console.debug(
"aHR0cHM6Ly9jb21wYXNzY2FsZW5kYXIubm90aW9uLnNpdGUvaDNsbDAtZGF0LTMwYzIzN2JkZThmNDgwNTdhZmYxZDRiODU0YjAzMjYz",
);
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.

Don't remove this plz

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Added back all debugging logs :) Looks like biome was warning us on that

@Uarmagan Uarmagan force-pushed the feature/rebuild-planner-sidebar-1732 branch from ce25d2a to 51bca97 Compare May 11, 2026 18:42
@Uarmagan Uarmagan merged commit 2880815 into main May 12, 2026
9 checks passed
@Uarmagan Uarmagan deleted the feature/rebuild-planner-sidebar-1732 branch May 12, 2026 19:34
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