Skip to content

feat: reorganize left sidebar#2100

Merged
jschwxrz merged 6 commits into
mainfrom
feat-move-add-project-into-projects-section
May 18, 2026
Merged

feat: reorganize left sidebar#2100
jschwxrz merged 6 commits into
mainfrom
feat-move-add-project-into-projects-section

Conversation

@jschwxrz
Copy link
Copy Markdown
Collaborator

  • remove add project button from left sidebar menu
  • add "add project button" next to "PROJECTS" in the top sidebar
  • add search button (cmd + k) in the left sidebar menu

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 18, 2026

Greptile Summary

This PR reorganizes the left sidebar: the "Add Project" action moves from the footer into the Projects group header (next to the sort filter), the search button moves from the top of the sidebar content into the footer menu alongside Library and Settings, and per-project item rows gain a tooltip on the inline "Add Task" button.

  • projects-group-label.tsx now owns the "Add Project" trigger and uses the Base UI render-prop chain (DropdownMenuTrigger → TooltipTrigger → <button>) to merge multiple interactive behaviors into a single DOM node, replacing the previously flagged nested-button pattern.
  • project-item.tsx wraps the inline plus button in a Tooltip via the same render-prop approach, adding a ShortcutHint for the newTask key binding.
  • sidebar-search-trigger.tsx is refactored to use SidebarMenuButton so it matches the visual treatment of the other footer entries.

Confidence Score: 5/5

Safe to merge — the changes are purely presentational sidebar reorganization with no data mutation, no auth logic, and no new async paths.

All four files contain UI restructuring only. The Base UI render-prop composition used to merge Tooltip and DropdownMenu behaviors into a single DOM node is the correct pattern for this library and directly addresses the nested-button concerns raised in prior review threads.

No files require special attention.

Important Files Changed

Filename Overview
src/renderer/features/sidebar/left-sidebar.tsx Removes "Add Project" from footer and moves SidebarSearchTrigger to the footer menu in place of it; wraps Library icon+text in a span for layout consistency.
src/renderer/features/sidebar/project-item.tsx Wraps the inline "Add Task" button in a Tooltip using the Base UI render-prop pattern to avoid nested button elements; adds a ShortcutHint to the tooltip.
src/renderer/features/sidebar/projects-group-label.tsx Adds "Add Project" button next to the sort filter in the header; refactors both buttons to use the Base UI render-prop chain (DropdownMenuTrigger → TooltipTrigger → native button) to collapse nested interactives into a single DOM element.
src/renderer/features/sidebar/sidebar-search-trigger.tsx Replaces the bespoke styled button with SidebarMenuButton so the search entry matches the visual style of the other footer menu items.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    LS[LeftSidebar]
    LS --> SC[SidebarContent]
    LS --> SF[SidebarFooter]

    SC --> SPT[SidebarPinnedTaskList]
    SC --> SG[SidebarGroup]
    SG --> PGL[ProjectsGroupLabel]
    SG --> PI[SidebarProjectItem xN]

    PGL --> SortBtn["Sort Filter button\nDropdownMenuTrigger + TooltipTrigger"]
    PGL --> AddProjBtn["Add Project button\nTooltipTrigger, opens addProjectModal"]

    PI --> ItemRow[SidebarMenuRow]
    ItemRow --> AddTaskBtn["Add Task mini button\nTooltipTrigger, opens taskModal"]

    SF --> SST["SidebarSearchTrigger\nSidebarMenuButton, opens commandPaletteModal"]
    SF --> LibBtn[Library SidebarMenuButton]
    SF --> SettingsBtn[Settings SidebarMenuButton]
Loading

Reviews (2): Last reviewed commit: "fix(sidebar): preserve task action butto..." | Re-trigger Greptile

Comment thread src/renderer/features/sidebar/projects-group-label.tsx
Comment thread src/renderer/features/sidebar/projects-group-label.tsx
@jschwxrz
Copy link
Copy Markdown
Collaborator Author

@greptileai

@jschwxrz jschwxrz merged commit 1ab682c into main May 18, 2026
1 check passed
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.

1 participant