Skip to content
This repository was archived by the owner on Sep 30, 2024. It is now read-only.
This repository was archived by the owner on Sep 30, 2024. It is now read-only.

Search results components hierarchy refactor #42159

@novoselrok

Description

@novoselrok

A sketch of the current situation

sketch

Rough refactor plan

  • Ensure all search result types are covered by screenshot tests
  • Refactor CommitSearchResultMatch
    • I believe the implementation can be simplified
    • It does not need to rely on VisibilitySensor since VirtualList already wraps all components in it
    • VSCode extension relies on it
      • We want to avoid refactoring the extension as well
      • Will have to figure out a way to make the changes compatible
  • Refactor ResultContainer component
    • It’s used to render the title, description, and the star count
    • It controls collapsed/expanded state of the search result
      • Only the file content matches can be expanded, so it doesn’t make sense for the rest of the search results to have this functionality
      • This should be moved to individual search results components
    • Keep the title as a render prop
    • Use the children prop to render content
    • Also used in the VSCode extension
  • Refactor FileSearchResult & FileMatchChildren
    • Preferably with fire
    • Way too much complexity in those two components
    • Split rendering line (content) matches, symbols, and paths into separate components
      • Render separately at the StreamingSearchResults list level
    • Rework line match grouping (LineRanking/ZoektRanking) and the expand/collapse functionality
      • Ideally, groups should only be calculated once
      • And then slice the groups array if you want to show fewer matches

/cc @benvenker @lguychard

Metadata

Metadata

Assignees

Labels

team/search-productIssues owned by the search product team

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions