-
Notifications
You must be signed in to change notification settings - Fork 1.9k
feat: Add search functionality to mode selector popup and reorganize layout #6140
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…layout - Add fuzzy search functionality with Fzf library for better mode discovery - Move marketplace/settings buttons to bottom of popup for cleaner layout - Convert instruction text to tooltip with info icon for space efficiency - Align search input styling with API configuration selector pattern - Improve spacing consistency throughout the component - Add 'Search modes...' placeholder text for better UX - Fix React Hook dependency arrays and useCallback optimization Resolves #6128
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR enhances the mode selector popup by adding fuzzy search functionality and reorganizing the UI layout for improved usability. The changes include implementing real-time search filtering, moving buttons to the bottom bar, and converting instruction text to a space-saving tooltip.
- Added fuzzy search with Fzf library for intelligent mode filtering
- Reorganized layout by moving marketplace/settings buttons from header to bottom
- Converted instruction text to tooltip with info icon to save vertical space
- Replace hardcoded 'Search modes...' placeholder with t('common:ui.search_placeholder') - Replace settings namespace usage with hardcoded 'No results found' to match SelectDropdown pattern - Ensures proper internationalization and consistent namespace usage
- Add new modeSelector.searchPlaceholder key to all language files - Update ModeSelector to use chat:modeSelector.searchPlaceholder instead of generic search placeholder - Provides more contextual and user-friendly search placeholder text - Maintains consistency across all 18 supported languages Co-authored-by: Roo Code Translate Mode
- Added translation key 'modeSelector.noResults' for the hardcoded 'No results found' text - Added auto-focus functionality to search input when mode selector popover opens - Updated all language files with appropriate translations
- Add search functionality at the top with fuzzy search - Move settings button to bottom left - Add title and info icon on bottom right - Match exact layout and spacing from ModeSelector - Create new ApiConfigSelector component - Update ChatTextArea to use new component - Remove unused imports to fix linting
- Replace requestAnimationFrame with direct state updates for better clarity - Implement two-tier search: prioritize mode names/slugs over descriptions - Mode names now always appear before description matches in search results
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
BEFORE
AFTER
Related GitHub Issue
Closes: #6128
Roo Code Task Context (Optional)
This PR was implemented using Roo Code's Issue Fixer mode, which analyzed the GitHub issue requirements and implemented the solution following the technical specifications provided in the issue.
Description
This PR transforms the mode selector popup to include search functionality and reorganizes the layout for better usability. Key implementation details:
Search Implementation:
Layout Reorganization:
Technical Improvements:
Test Procedure
Automated Testing:
Manual Testing Steps:
Cross-platform Testing:
Pre-Submission Checklist
Screenshots / Videos
Before: Original mode selector with header text and buttons at top
After: New mode selector with search functionality and reorganized layout
The provided before/after screenshots show the transformation from the old layout with instruction text at the top to the new streamlined design with search functionality and improved organization.
Documentation Updates
The changes enhance existing functionality without changing user-facing APIs or requiring new documentation.
Additional Notes
Design Decisions:
Get in Touch
@roomote
Important
Adds search functionality and reorganizes layout in
ModeSelector.tsx
, enhancing usability with fuzzy search and UI improvements.ModeSelector.tsx
using Fzf library for mode discovery.ModeSelector.tsx
to include search input and reorganized layout.SelectDropdown
patterns.chat.json
inlocales/en
,locales/es
,locales/fr
, etc.) to include new strings for search functionality.useCallback
for performance.This description was created by
for 2b0017e. You can customize this summary. It will automatically update as commits are pushed.