Skip to content

Conversation

@malinskibeniamin
Copy link
Contributor

@malinskibeniamin malinskibeniamin commented Jan 13, 2026

Fix for:

Summary

Introduces a new modern sidebar for self-hosted Console, replacing the legacy Chakra UI implementation with Tailwind/shadcn components.

Changes

  • New sidebar - Modern collapsible sidebar using Redpanda UI Registry components
  • No feature flag - Always uses new sidebar (self-hosted may run offline without LaunchDarkly access)
  • Disabled item tooltips - Hover over disabled items (e.g., Transforms) now shows why they're unavailable
  • Reactive state - Sidebar updates immediately when endpoint compatibility data loads
  • Centered layout - Page content properly centered within sidebar layout

BEFORE
Screenshot 2026-01-13 at 14 23 42
Screenshot 2026-01-13 at 14 23 54
Screenshot 2026-01-13 at 14 24 02


AFTER

Screenshot 2026-01-13 at 14 22 44 Screenshot 2026-01-13 at 14 22 50 Screenshot 2026-01-13 at 14 23 01 Screenshot 2026-01-13 at 14 23 07

@malinskibeniamin malinskibeniamin requested a review from a team January 13, 2026 13:22
@malinskibeniamin malinskibeniamin self-assigned this Jan 13, 2026
@malinskibeniamin malinskibeniamin requested review from Mateoc, c-julin, sago2k8 and yougotashovel and removed request for a team January 13, 2026 13:22
Changes Made:

  1. SidebarLogo
    - Added aria-label="Go to Overview" to the link
    - Set alt="" on decorative image (aria-label describes the action)
  2. SidebarCollapseToggle
    - Added aria-expanded to indicate sidebar state
    - Added aria-label describing the action
    - Added aria-hidden="true" to icons
  3. UserProfileNew
    - Added aria-label to dropdown trigger (User menu for {name})
    - Added aria-hidden="true" to all decorative icons (ChevronUp, Settings, LogOut)
    - Set alt="" on avatar image (aria-label on button describes context)
  4. SidebarNavItem
    - Added aria-current="page" for active navigation items
    - Added aria-disabled for disabled items
    - Added aria-hidden="true" to nav icons
    - Changed disabled item container from <div> to <span role="link"> for better semantics
  5. SidebarNavigation
    - Wrapped menu in <nav aria-label="Main navigation"> landmark
Copy link
Contributor

@graham-rp graham-rp left a comment

Choose a reason for hiding this comment

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

This seems like a lot to add without any additional test coverage. sidebar.tsx is also really hard to read

// c could be null, because the call to /api/console/endpoints failed or is not responded yet,
// in that case those endpoints should be considered unsupported
switch (f.endpoint) {
case Feature.SchemaRegistryACLApi.endpoint:
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: why change this?

Copy link
Contributor Author

@malinskibeniamin malinskibeniamin Jan 14, 2026

Choose a reason for hiding this comment

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

This actually meant we are able to accidentally let the user click into a sidebar item before we realized that 1 of the endpoints was failing, meaning the feature should be disabled because that service is not responsive.

@malinskibeniamin
Copy link
Contributor Author

Closing this in favor of #2132

@malinskibeniamin
Copy link
Contributor Author

This seems like a lot to add without any additional test coverage. sidebar.tsx is also really hard to read

I agree. I fixed it in #2132

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants