Skip to content

[CORRUPTED] Synthetic Benchmark PR #24605 - feat: move bookings tabs to sidebar navigation#24

Closed
tomerqodo wants to merge 15 commits into
base_pr_24605_20251106_5282from
corrupted_pr_24605_20251106_5282
Closed

[CORRUPTED] Synthetic Benchmark PR #24605 - feat: move bookings tabs to sidebar navigation#24
tomerqodo wants to merge 15 commits into
base_pr_24605_20251106_5282from
corrupted_pr_24605_20251106_5282

Conversation

@tomerqodo

Copy link
Copy Markdown

Benchmark PR calcom#24605

Type: Corrupted (contains bugs)

Original PR Title: feat: move bookings tabs to sidebar navigation
Original PR Description: ## What does this PR do?

Moves the Bookings status tabs from the page-level HorizontalTabs to the sidebar as sub-navigation items, consistent with “Insights” and “Apps”. Clicking the parent “Bookings” nav item now navigates to “Bookings > Upcoming” by default.

  • Context: Requested in Slack (from @eunjae-lee) to align Bookings with sub-nav patterns used elsewhere and ensure the parent Bookings item routes to Upcoming.
  • Adds child items under Bookings: Upcoming, Unconfirmed, Recurring, Past, Cancelled
  • Hides the top-of-page HorizontalTabs from the bookings view on desktop viewport

Link to Devin run: https://app.devin.ai/sessions/cfbbd95c937c42008468f78a253ab011
Requested by: eunjae@cal.com (@eunjae-lee)

Fixes: N/A (no GitHub/Linear issue referenced)

Files changed

  • packages/features/shell/navigation/Navigation.tsx
    • Adds child sub-items under the existing “bookings” nav entry (mirrors “apps”/“insights” structure)
    • Parent Bookings item remains highlighted for any /bookings/* path
  • apps/web/app/(use-page-wrapper)/(main-nav)/bookings/page.tsx
    • New file to redirect /bookings → /bookings/upcoming

Notes/Decision:

  • The previous HorizontalTabs preserved the current page’s query string (e.g., view=calendar, filters) when switching tabs. The sidebar sub-nav follows the “Apps/Insights” approach and uses static hrefs. This means query parameters won’t be auto-preserved when switching status via the sidebar, aligning with established sidebar behavior. If preserving filters across statuses is desired, we can extend Navigation to append current search params to child hrefs.

Visual Demo (For contributors especially)

Screenshot 2025-10-23 at 17 19 35

Behavior:

  • Sidebar now shows “Bookings” with a collapsible list of sub-items (Upcoming, Unconfirmed, Recurring, Past, Cancelled) just like “Insights” and “Apps”
  • The old top-of-page tabs are removed on lg: view port. It stays on a smaller devices for easy navigation.

Mandatory Tasks (DO NOT REMOVE)

  • I have self-reviewed the code (A decent size PR without self-review might be rejected).
  • I have updated the developer docs in /docs if this PR makes changes that would require a documentation change. If N/A, write N/A here and check the checkbox.
  • I confirm automated tests are in place that prove my fix is effective or that my feature works.

How should this be tested?

Manual verification (no special env variables or data required):

  1. Navigate to the dashboard
  2. Verify the sidebar “Bookings” item displays a caret/expand behavior and child links:
    • Upcoming → /bookings/upcoming
    • Unconfirmed → /bookings/unconfirmed
    • Recurring → /bookings/recurring
    • Past → /bookings/past
    • Cancelled → /bookings/cancelled
  3. Click the parent “Bookings” (not a child) and confirm it redirects to /bookings/upcoming
  4. Confirm active highlighting:
    • Parent “Bookings” is highlighted for any /bookings/* route
    • The relevant child is highlighted when on that page
  5. Mobile/tablet:
    • Verify the child items appear under “Bookings” as expected in the tooltip/expanded pattern (same as Insights/Apps)
    • Check the “More” mobile menu for consistency
  6. Verify the bookings view itself functions unchanged otherwise (list/calendar toggle, filters, etc.). Only the top-of-page tabs are removed.

Regression/UX consideration to verify:

  • Switching status via the sidebar won’t preserve existing query params (e.g., ?view=calendar, filters). This matches “Apps/Insights” but is a change vs previous HorizontalTabs behavior. If this is undesired, I can enhance the Navigation links to retain current search params.

Checklist

N/A


Summary by cubic

Moved Bookings status tabs into the sidebar and set the parent Bookings link to default to Upcoming. Keeps the tabs on mobile and preserves filters when switching statuses within Bookings.

  • New Features
    • Added sidebar children under Bookings: Upcoming, Unconfirmed, Recurring, Past, Cancelled.
    • Desktop: hide the top-of-page HorizontalTabs; keep them on mobile.
    • Redirect /bookings → /bookings/upcoming.
    • Sidebar links preserve query params when navigating between /bookings/* pages (including calendar view), but not when moving to/from non-bookings pages.

Written for commit d449c37. Summary will update automatically on new commits.

Original PR URL: calcom#24605

Issues Breakdown

  • Total Issues: 7
  • Easy: 3
  • Medium: 3
  • Hard: 1

@github-actions

github-actions Bot commented Nov 6, 2025

Copy link
Copy Markdown

Hey there and thank you for opening this pull request! 👋🏼

We require pull request titles to follow the Conventional Commits specification and it looks like your proposed title needs to be adjusted.

Details:

No release type found in pull request title "[CORRUPTED] Synthetic Benchmark PR #24605 - feat: move bookings tabs to sidebar navigation". Add a prefix to indicate what kind of release this pull request corresponds to. For reference, see https://www.conventionalcommits.org/

Available types:
 - feat: A new feature
 - fix: A bug fix
 - docs: Documentation only changes
 - style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
 - refactor: A code change that neither fixes a bug nor adds a feature
 - perf: A code change that improves performance
 - test: Adding missing tests or correcting existing tests
 - build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
 - ci: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
 - chore: Other changes that don't modify src or test files
 - revert: Reverts a previous commit

@tomerqodo tomerqodo closed this Nov 10, 2025
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