• Component that displays a filterable, sortable list of repositories

    Features:

    • Full-text search filtering by repository name
    • Programming language filtering
    • Sorting by stars, forks, or update date
    • Ascending/descending sort order toggle
    • Pagination with configurable page size
    • Loading and error states
    • Responsive grid layout

    Component Structure:

    • FilterControls: Search, language filter, and sort controls
    • Repository Grid: Responsive grid of RepositoryCard components
    • Pagination: Page navigation controls

    States Handled:

    • Loading: Shows loading indicator
    • Error: Displays error message
    • Empty: Shows appropriate message when no repositories match filters
    • Filtered: Updates display based on current filters

    Filter Capabilities:

    • Text search in repository names
    • Language-based filtering
    • Multiple sort criteria
    • Sort direction toggle
    • Pagination controls

    Parameters

    • props: RepositoryListProps

      Component properties

      Props for the RepositoryList component

      RepositoryListProps

      • Optionaldata-testid?: string

        Test ID for the repository list

      • Optionalerror?: Error

        Error object if any error occurred

      • loading: boolean

        Loading state indicator

      • owner: string

        Repository owner's username

      • repositories: Repository[]

        Array of repository data from GitHub

    Returns Element

    The rendered repository list with controls

    <RepositoryList
    repositories={userRepos}
    loading={false}
    error={undefined}
    owner="octocat"
    />