Skip to content

Commit

Permalink
Merge pull request #18398 from desktop/remove-enablesectionlist-ff
Browse files Browse the repository at this point in the history
Remove the `enableSectionList` feature flag
  • Loading branch information
sergiou87 committed Apr 26, 2024
2 parents b14d5a1 + 1baf14d commit e73719d
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 96 deletions.
4 changes: 0 additions & 4 deletions app/src/lib/feature-flag.ts
Original file line number Diff line number Diff line change
Expand Up @@ -94,10 +94,6 @@ export function enableMoveStash(): boolean {

export const enableCustomGitUserAgent = enableBetaFeatures

export function enableSectionList(): boolean {
return true
}

export const enableRepoRulesBeta = () => true

export const enableCommitDetailsHeaderExpansion = () => true
Expand Down
43 changes: 4 additions & 39 deletions app/src/ui/branches/branch-list.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,7 @@ import { Branch, BranchType } from '../../models/branch'

import { assertNever } from '../../lib/fatal-error'

import {
FilterList,
IFilterListGroup,
SelectionSource,
} from '../lib/filter-list'
import { IFilterListGroup, SelectionSource } from '../lib/filter-list'
import { IMatches } from '../../lib/fuzzy-find'
import { Button } from '../lib/button'
import { TextBox } from '../lib/text-box'
Expand All @@ -22,7 +18,6 @@ import { NoBranches } from './no-branches'
import { SelectionDirection, ClickSource } from '../lib/list'
import { generateBranchContextMenuItems } from './branch-list-item-context-menu'
import { showContextualMenu } from '../../lib/menu-item'
import { enableSectionList } from '../../lib/feature-flag'
import { SectionFilterList } from '../lib/section-filter-list'

const RowHeight = 30
Expand Down Expand Up @@ -178,10 +173,7 @@ export class BranchList extends React.Component<
IBranchListProps,
IBranchListState
> {
private branchFilterList:
| FilterList<IBranchListItem>
| SectionFilterList<IBranchListItem>
| null = null
private branchFilterList: SectionFilterList<IBranchListItem> | null = null

public constructor(props: IBranchListProps) {
super(props)
Expand Down Expand Up @@ -213,7 +205,7 @@ export class BranchList extends React.Component<
}

public render() {
return enableSectionList() ? (
return (
<SectionFilterList<IBranchListItem>
ref={this.onBranchesFilterListRef}
className="branches-list"
Expand All @@ -239,30 +231,6 @@ export class BranchList extends React.Component<
getItemAriaLabel={this.getItemAriaLabel}
getGroupAriaLabel={this.getGroupAriaLabel}
/>
) : (
<FilterList<IBranchListItem>
ref={this.onBranchesFilterListRef}
className="branches-list"
rowHeight={RowHeight}
filterText={this.props.filterText}
onFilterTextChanged={this.props.onFilterTextChanged}
onFilterKeyDown={this.props.onFilterKeyDown}
selectedItem={this.state.selectedItem}
renderItem={this.renderItem}
renderGroupHeader={this.renderGroupHeader}
onItemClick={this.onItemClick}
onSelectionChanged={this.onSelectionChanged}
onEnterPressedWithoutFilteredItems={this.onCreateNewBranch}
groups={this.state.groups}
invalidationProps={this.props.allBranches}
renderPostFilter={this.onRenderNewButton}
renderNoItems={this.onRenderNoItems}
filterTextBox={this.props.textbox}
hideFilterRow={this.props.hideFilterRow}
onFilterListResultsChanged={this.props.onFilterListResultsChanged}
renderPreList={this.props.renderPreList}
onItemContextMenu={this.onBranchContextMenu}
/>
)
}

Expand Down Expand Up @@ -290,10 +258,7 @@ export class BranchList extends React.Component<
}

private onBranchesFilterListRef = (
filterList:
| FilterList<IBranchListItem>
| SectionFilterList<IBranchListItem>
| null
filterList: SectionFilterList<IBranchListItem> | null
) => {
this.branchFilterList = filterList
}
Expand Down
53 changes: 27 additions & 26 deletions app/src/ui/clone-repository/cloneable-repository-filter-list.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react'
import { Account } from '../../models/account'
import { FilterList, IFilterListGroup } from '../lib/filter-list'
import { IFilterListGroup } from '../lib/filter-list'
import { IAPIRepository, getDotComAPIEndpoint, getHTMLURL } from '../../lib/api'
import {
ICloneableRepositoryListItem,
Expand All @@ -15,7 +15,6 @@ import { HighlightText } from '../lib/highlight-text'
import { ClickSource } from '../lib/list'
import { LinkButton } from '../lib/link-button'
import { Ref } from '../lib/ref'
import { enableSectionList } from '../../lib/feature-flag'
import { SectionFilterList } from '../lib/section-filter-list'
import { TooltippedContent } from '../lib/tooltipped-content'

Expand Down Expand Up @@ -156,38 +155,40 @@ export class CloneableRepositoryFilterList extends React.PureComponent<ICloneabl
this.props.onRefreshRepositories(this.props.account)
}

public render() {
const { repositories, account, selectedItem } = this.props

const groups = this.getRepositoryGroups(repositories, account.login)
const getGroupAriaLabel = (group: number) => {
private getGroupAriaLabelGetter =
(groups: ReadonlyArray<IFilterListGroup<ICloneableRepositoryListItem>>) =>
(group: number) => {
const groupIdentifier = groups[group].identifier
return groupIdentifier === YourRepositoriesIdentifier
? this.getYourRepositoriesLabel()
: groupIdentifier
}

public render() {
const { repositories, account, selectedItem } = this.props

const groups = this.getRepositoryGroups(repositories, account.login)
const selectedListItem = this.getSelectedListItem(groups, selectedItem)
const ListComponent = enableSectionList() ? SectionFilterList : FilterList
const filterListProps: typeof ListComponent['prototype']['props'] = {
className: 'clone-github-repo',
rowHeight: RowHeight,
selectedItem: selectedListItem,
renderItem: this.renderItem,
renderGroupHeader: this.renderGroupHeader,
onSelectionChanged: this.onSelectionChanged,
invalidationProps: groups,
groups: groups,
filterText: this.props.filterText,
onFilterTextChanged: this.props.onFilterTextChanged,
renderNoItems: this.renderNoItems,
renderPostFilter: this.renderPostFilter,
onItemClick: this.props.onItemClicked ? this.onItemClick : undefined,
placeholderText: 'Filter your repositories',
getGroupAriaLabel,
}

return <ListComponent {...filterListProps} />
return (
<SectionFilterList<ICloneableRepositoryListItem>
className={'clone-github-repo'}
rowHeight={RowHeight}
selectedItem={selectedListItem}
renderItem={this.renderItem}
renderGroupHeader={this.renderGroupHeader}
onSelectionChanged={this.onSelectionChanged}
invalidationProps={groups}
groups={groups}
filterText={this.props.filterText}
onFilterTextChanged={this.props.onFilterTextChanged}
renderNoItems={this.renderNoItems}
renderPostFilter={this.renderPostFilter}
onItemClick={this.props.onItemClicked ? this.onItemClick : undefined}
placeholderText={'Filter your repositories'}
getGroupAriaLabel={this.getGroupAriaLabelGetter(groups)}
/>
)
}

private onItemClick = (
Expand Down
53 changes: 26 additions & 27 deletions app/src/ui/repositories-list/repositories-list.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
KnownRepositoryGroup,
makeRecentRepositoriesGroup,
} from './group-repositories'
import { FilterList, IFilterListGroup } from '../lib/filter-list'
import { IFilterListGroup } from '../lib/filter-list'
import { IMatches } from '../../lib/fuzzy-find'
import { ILocalRepositoryState, Repository } from '../../models/repository'
import { Dispatcher } from '../dispatcher'
Expand All @@ -25,7 +25,6 @@ import memoizeOne from 'memoize-one'
import { KeyboardShortcut } from '../keyboard-shortcut/keyboard-shortcut'
import { generateRepositoryListContextMenu } from '../repositories-list/repository-list-item-context-menu'
import { SectionFilterList } from '../lib/section-filter-list'
import { enableSectionList } from '../../lib/feature-flag'

const BlankSlateImage = encodePathAsUrl(__dirname, 'static/empty-no-repo.svg')

Expand Down Expand Up @@ -220,6 +219,12 @@ export class RepositoriesList extends React.Component<
showContextualMenu(items)
}

private getItemAriaLabel = (item: IRepositoryListItem) => item.repository.name
private getGroupAriaLabelGetter =
(groups: ReadonlyArray<IFilterListGroup<IRepositoryListItem>>) =>
(group: number) =>
groups[group].identifier

public render() {
const baseGroups = this.getRepositoryGroups(
this.props.repositories,
Expand All @@ -243,33 +248,27 @@ export class RepositoriesList extends React.Component<
]
: baseGroups

const getItemAriaLabel = (item: IRepositoryListItem) => item.repository.name
const getGroupAriaLabel = (group: number) => groups[group].identifier

const ListComponent = enableSectionList() ? SectionFilterList : FilterList
const filterListProps: typeof ListComponent['prototype']['props'] = {
rowHeight: RowHeight,
selectedItem: selectedItem,
filterText: this.props.filterText,
onFilterTextChanged: this.props.onFilterTextChanged,
renderItem: this.renderItem,
renderGroupHeader: this.renderGroupHeader,
onItemClick: this.onItemClick,
renderPostFilter: this.renderPostFilter,
renderNoItems: this.renderNoItems,
groups: groups,
invalidationProps: {
repositories: this.props.repositories,
filterText: this.props.filterText,
},
onItemContextMenu: this.onItemContextMenu,
getGroupAriaLabel,
getItemAriaLabel,
}

return (
<div className="repository-list">
<ListComponent {...filterListProps} />
<SectionFilterList<IRepositoryListItem>
rowHeight={RowHeight}
selectedItem={selectedItem}
filterText={this.props.filterText}
onFilterTextChanged={this.props.onFilterTextChanged}
renderItem={this.renderItem}
renderGroupHeader={this.renderGroupHeader}
onItemClick={this.onItemClick}
renderPostFilter={this.renderPostFilter}
renderNoItems={this.renderNoItems}
groups={groups}
invalidationProps={{
repositories: this.props.repositories,
filterText: this.props.filterText,
}}
onItemContextMenu={this.onItemContextMenu}
getGroupAriaLabel={this.getGroupAriaLabelGetter(groups)}
getItemAriaLabel={this.getItemAriaLabel}
/>
</div>
)
}
Expand Down

0 comments on commit e73719d

Please sign in to comment.