Skip to content

FEATURE REQUEST: Add an Analyze Repo menu to Sidebar for easier navigation #209

@Cubix33

Description

@Cubix33

Is your feature request related to a problem?

  • Yes, it is related to a problem

Describe the feature you'd like

🌟 Feature Description

I would like to add a "Analyze New Repo" (or "New Analysis") button to the application's sidebar menu.

Currently, the application flow starts at the LandingPage (at /), where users input a repository URL. However, once the analysis is complete and the user navigates to the Dashboard, there is no UI element to return to the LandingPage to analyze a different repository.

🔍 Problem Statement

When a user opens the website (e.g., localhost:5173), they land on the analysis input page. After successfully fetching data, the user is redirected to the /dashboard.

At this point, the Sidebar displays navigation options like Dashboard, Bot Integration, and Contributors, but it lacks an option to start over.

Users are currently "locked" into the current repository's view unless they manually modify the browser URL or refresh the application to return to the root (/) path.

🎯 Expected Outcome

  1. Sidebar Update: A new navigation item labeled "Analyze New Repo" (or similar) should appear in the Sidebar component.
  2. Navigation: Clicking this button should redirect the user back to the root route (/), which renders the LandingPage.
  3. State Management: The app should handle the transition cleanly, allowing the user to input a new URL and overwrite the existing repoData.

📷 Screenshots and Design Ideas

Current Sidebar (Missing Option to go back to Landing Page to analyze a repo)

Image

Proposed Solution

We can add a new item to the navItems array in Sidebar.tsx. I suggest using a "Plus" or "Search" icon from the existing lucide-react library.

Mockup of the code change:

// In src/components/layout/Sidebar.tsx

const navItems = [
  // New Item Added Here
  { icon: <Search size={20} />, label: 'Analyze New Repo', path: '/' }, 
  
  // Existing Items
  { icon: <LayoutDashboard size={20} />, label: 'Dashboard', path: '/dashboard' },
  { icon: <Bot size={20} />, label: 'Bot Integration', path: '/integration' },
  // ... others
];

📋 Additional Context

Component to Modify

  • File: src/components/layout/Sidebar.tsx

Route Handling

  • The / route is already protected and renders <LandingPage /> inside ProtectedLayout.
  • No routing changes are needed in App.tsx.

State Handling

  • We must ensure that navigating back to / does not crash the app if repoData is already present.
  • The current LandingPage logic appears designed to handle new inputs regardless of previous state, but this should be verified during implementation.

Record

  • I agree to follow this project's Code of Conduct
  • I want to work on implementing this feature

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions