Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/components/SelectionList/BaseSelectionList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ function BaseSelectionList<TItem extends ListItem>({
shouldShowRightCaret = false,
shouldStopPropagation = false,
shouldHeaderBeInsideList = false,
selectAllAccessibilityLabel,
shouldScrollToFocusedIndex = true,
shouldScrollToFocusedIndexOnMount = true,
shouldHighlightInitiallyFocusedItem = false,
Expand Down Expand Up @@ -582,6 +583,7 @@ function BaseSelectionList<TItem extends ListItem>({
selectAllTextStyle={style?.listHeaderSelectAllTextStyle}
shouldShowSelectAllButton={!!onSelectAll}
shouldPreventDefaultFocusOnSelectRow={shouldPreventDefaultFocusOnSelectRow}
selectAllAccessibilityLabel={selectAllAccessibilityLabel}
/>
);

Expand Down
8 changes: 6 additions & 2 deletions src/components/SelectionList/components/ListHeader.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ type ListHeaderProps<TItem extends ListItem> = {

/** Whether to prevent default focus when selecting rows */
shouldPreventDefaultFocusOnSelectRow?: boolean;

/** Custom accessibility label for the select all checkbox, providing context about what is being selected */
selectAllAccessibilityLabel?: string;
};

function ListHeader<TItem extends ListItem>({
Expand All @@ -44,6 +47,7 @@ function ListHeader<TItem extends ListItem>({
selectAllTextStyle,
shouldShowSelectAllButton,
shouldPreventDefaultFocusOnSelectRow,
selectAllAccessibilityLabel,
}: ListHeaderProps<TItem>) {
const styles = useThemeStyles();
const {translate} = useLocalize();
Expand All @@ -69,7 +73,7 @@ function ListHeader<TItem extends ListItem>({
<View style={[styles.flexRow, styles.alignItemsCenter]}>
<Checkbox
testID="selection-list-select-all-checkbox"
accessibilityLabel={translate('accessibilityHints.selectAllItems')}
accessibilityLabel={selectAllAccessibilityLabel ?? translate('accessibilityHints.selectAllItems')}
isChecked={dataDetails.allSelected}
isIndeterminate={dataDetails.someSelected}
onPress={onSelectAll}
Expand All @@ -80,7 +84,7 @@ function ListHeader<TItem extends ListItem>({
<PressableWithFeedback
style={[styles.userSelectNone, styles.flexRow, styles.alignItemsCenter]}
onPress={onSelectAll}
accessibilityLabel={translate('accessibilityHints.selectAllItems')}
accessibilityLabel={selectAllAccessibilityLabel ?? translate('accessibilityHints.selectAllItems')}
sentryLabel={CONST.SENTRY_LABEL.SELECTION_LIST.LIST_HEADER_SELECT_ALL}
accessibilityRole="button"
accessibilityState={{checked: dataDetails.allSelected, disabled: allDisabled}}
Expand Down
3 changes: 3 additions & 0 deletions src/components/SelectionList/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,9 @@ type SelectionListProps<TItem extends ListItem> = Partial<ChildrenProps> &

/** Whether to place customListHeader in the list so it scrolls with data */
shouldHeaderBeInsideList?: boolean;

/** Custom accessibility label for the select all checkbox, providing context about what is being selected */
selectAllAccessibilityLabel?: string;
};

type SelectionListStyle = {
Expand Down
8 changes: 8 additions & 0 deletions src/languages/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8141,6 +8141,14 @@ Fügen Sie weitere Ausgabelimits hinzu, um den Cashflow Ihres Unternehmens zu sc
selectAllFeatures: 'Alle Funktionen auswählen',
selectAllTransactions: 'Alle Transaktionen auswählen',
selectAllItems: 'Alle Einträge auswählen',
selectAllCategories: 'Alle Kategorien auswählen',
selectAllDistanceRates: 'Alle Entfernungssätze auswählen',
selectAllTags: 'Alle Tags auswählen',
selectAllTaxes: 'Alle Steuern auswählen',
selectAllPerDiemRates: 'Alle Pauschalspesen-Sätze auswählen',
selectAllMembers: 'Alle Mitglieder auswählen',
selectAllValues: 'Alle Werte auswählen',
selectAllRules: 'Alle Regeln auswählen',
},
parentReportAction: {
deletedReport: 'Gelöschter Bericht',
Expand Down
8 changes: 8 additions & 0 deletions src/languages/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8135,6 +8135,14 @@ const translations = {
selectAllFeatures: 'Select all features',
selectAllTransactions: 'Select all transactions',
selectAllItems: 'Select all items',
selectAllCategories: 'Select all categories',
selectAllDistanceRates: 'Select all distance rates',
selectAllTags: 'Select all tags',
selectAllTaxes: 'Select all taxes',
selectAllPerDiemRates: 'Select all per diem rates',
selectAllMembers: 'Select all members',
selectAllValues: 'Select all values',
selectAllRules: 'Select all rules',
},
parentReportAction: {
deletedReport: 'Deleted report',
Expand Down
8 changes: 8 additions & 0 deletions src/languages/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8412,6 +8412,14 @@ ${amount} para ${merchant} - ${date}`,
selectAllFeatures: 'Seleccionar todas las características',
selectAllItems: 'Seleccionar todos los elementos',
selectAllTransactions: 'Seleccionar todas las transacciones',
selectAllCategories: 'Seleccionar todas las categorías',
selectAllDistanceRates: 'Seleccionar todas las tarifas de distancia',
selectAllTags: 'Seleccionar todas las etiquetas',
selectAllTaxes: 'Seleccionar todos los impuestos',
selectAllPerDiemRates: 'Seleccionar todas las tarifas de viáticos',
selectAllMembers: 'Seleccionar todos los miembros',
selectAllValues: 'Seleccionar todos los valores',
selectAllRules: 'Seleccionar todas las reglas',
},
parentReportAction: {
deletedReport: 'Informe eliminado',
Expand Down
8 changes: 8 additions & 0 deletions src/languages/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8163,6 +8163,14 @@ Ajoutez davantage de règles de dépenses pour protéger la trésorerie de l’e
selectAllFeatures: 'Sélectionner toutes les fonctionnalités',
selectAllTransactions: 'Sélectionner toutes les transactions',
selectAllItems: 'Sélectionner tous les éléments',
selectAllCategories: 'Sélectionner toutes les catégories',
selectAllDistanceRates: 'Sélectionner tous les taux de distance',
selectAllTags: 'Sélectionner toutes les étiquettes',
selectAllTaxes: 'Sélectionner toutes les taxes',
selectAllPerDiemRates: 'Sélectionner tous les taux de per diem',
selectAllMembers: 'Sélectionner tous les membres',
selectAllValues: 'Sélectionner toutes les valeurs',
selectAllRules: 'Sélectionner toutes les règles',
},
parentReportAction: {
deletedReport: 'Note de frais supprimée',
Expand Down
8 changes: 8 additions & 0 deletions src/languages/it.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8132,6 +8132,14 @@ Aggiungi altre regole di spesa per proteggere il flusso di cassa aziendale.`,
selectAllFeatures: 'Seleziona tutte le funzionalità',
selectAllTransactions: 'Seleziona tutte le transazioni',
selectAllItems: 'Seleziona tutti gli elementi',
selectAllCategories: 'Seleziona tutte le categorie',
selectAllDistanceRates: 'Seleziona tutte le tariffe chilometriche',
selectAllTags: 'Seleziona tutti i tag',
selectAllTaxes: 'Seleziona tutte le imposte',
selectAllPerDiemRates: 'Seleziona tutte le tariffe giornaliere',
selectAllMembers: 'Seleziona tutti i membri',
selectAllValues: 'Seleziona tutti i valori',
selectAllRules: 'Seleziona tutte le regole',
},
parentReportAction: {
deletedReport: 'Report eliminato',
Expand Down
8 changes: 8 additions & 0 deletions src/languages/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8031,6 +8031,14 @@ ${reportName}
selectAllFeatures: 'すべての機能を選択',
selectAllTransactions: 'すべての取引を選択',
selectAllItems: 'すべての項目を選択',
selectAllCategories: 'すべてのカテゴリを選択',
selectAllDistanceRates: 'すべての距離レートを選択',
selectAllTags: 'すべてのタグを選択',
selectAllTaxes: 'すべての税を選択',
selectAllPerDiemRates: 'すべての日当レートを選択',
selectAllMembers: 'すべてのメンバーを選択',
selectAllValues: 'すべての値を選択',
selectAllRules: 'すべてのルールを選択',
},
parentReportAction: {
deletedReport: '削除されたレポート',
Expand Down
8 changes: 8 additions & 0 deletions src/languages/nl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8103,6 +8103,14 @@ er bestedingsregels toe om de kasstroom van het bedrijf te beschermen.`,
selectAllFeatures: 'Selecteer alle functies',
selectAllTransactions: 'Selecteer alle transacties',
selectAllItems: 'Alle items selecteren',
selectAllCategories: 'Selecteer alle categorieën',
selectAllDistanceRates: 'Selecteer alle afstandstarieven',
selectAllTags: 'Alle tags selecteren',
selectAllTaxes: 'Selecteer alle belastingen',
selectAllPerDiemRates: 'Selecteer alle dagvergoedingen',
selectAllMembers: 'Alle leden selecteren',
selectAllValues: 'Selecteer alle waarden',
selectAllRules: 'Selecteer alle regels',
},
parentReportAction: {
deletedReport: 'Verwijderd rapport',
Expand Down
8 changes: 8 additions & 0 deletions src/languages/pl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8094,6 +8094,14 @@ Dodaj więcej zasad wydatków, żeby chronić płynność finansową firmy.`,
selectAllFeatures: 'Zaznacz wszystkie funkcje',
selectAllTransactions: 'Zaznacz wszystkie transakcje',
selectAllItems: 'Zaznacz wszystkie elementy',
selectAllCategories: 'Zaznacz wszystkie kategorie',
selectAllDistanceRates: 'Wybierz wszystkie stawki za dystans',
selectAllTags: 'Zaznacz wszystkie tagi',
selectAllTaxes: 'Wybierz wszystkie podatki',
selectAllPerDiemRates: 'Wybierz wszystkie stawki diet',
selectAllMembers: 'Zaznacz wszystkich członków',
selectAllValues: 'Zaznacz wszystkie wartości',
selectAllRules: 'Zaznacz wszystkie reguły',
},
parentReportAction: {
deletedReport: 'Usunięty raport',
Expand Down
8 changes: 8 additions & 0 deletions src/languages/pt-BR.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8097,6 +8097,14 @@ Adicione mais regras de gasto para proteger o fluxo de caixa da empresa.`,
selectAllFeatures: 'Selecionar todos os recursos',
selectAllTransactions: 'Selecionar todas as transações',
selectAllItems: 'Selecionar todos os itens',
selectAllCategories: 'Selecionar todas as categorias',
selectAllDistanceRates: 'Selecionar todas as tarifas de distância',
selectAllTags: 'Selecionar todas as tags',
selectAllTaxes: 'Selecionar todos os impostos',
selectAllPerDiemRates: 'Selecionar todas as diárias',
selectAllMembers: 'Selecionar todos os membros',
selectAllValues: 'Selecionar todos os valores',
selectAllRules: 'Selecionar todas as regras',
},
parentReportAction: {
deletedReport: 'Relatório excluído',
Expand Down
8 changes: 8 additions & 0 deletions src/languages/zh-hans.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7896,6 +7896,14 @@ ${reportName}
selectAllFeatures: '选择所有功能',
selectAllTransactions: '选择所有交易',
selectAllItems: '全选所有项目',
selectAllCategories: '选择所有类别',
selectAllDistanceRates: '选择所有距离费率',
selectAllTags: '选择所有标签',
selectAllTaxes: '全选所有税种',
selectAllPerDiemRates: '选择所有每日津贴费率',
selectAllMembers: '全选所有成员',
selectAllValues: '选择所有值',
selectAllRules: '选择所有规则',
},
parentReportAction: {
deletedReport: '已删除的报告',
Expand Down
1 change: 1 addition & 0 deletions src/pages/ReportParticipantsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -380,6 +380,7 @@ function ReportParticipantsPage({report, route}: ReportParticipantsPageProps) {
ref: textInputRef,
}}
canSelectMultiple={canSelectMultiple}
selectAllAccessibilityLabel={translate('accessibilityHints.selectAllMembers')}
turnOnSelectionModeOnLongPress={isCurrentUserGroupChatAdmin}
shouldSingleExecuteRowSelect={!isCurrentUserGroupChatAdmin}
onTurnOnSelectionMode={(item) => item && toggleUser(item)}
Expand Down
1 change: 1 addition & 0 deletions src/pages/RoomMembersPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -470,6 +470,7 @@ function RoomMembersPage({report, policy}: RoomMembersPageProps) {
onTurnOnSelectionMode={(item) => item && toggleUser(item)}
onSelectAll={() => toggleAllUsers(data)}
canSelectMultiple={canSelectMultiple}
selectAllAccessibilityLabel={translate('accessibilityHints.selectAllMembers')}
customListHeader={customListHeader}
onDismissError={dismissError}
turnOnSelectionModeOnLongPress
Expand Down
1 change: 1 addition & 0 deletions src/pages/domain/BaseDomainMembersPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@ function BaseDomainMembersPage({
customListHeader={getFilteredListHeader()}
shouldHeaderBeInsideList
canSelectMultiple={canSelectMultiple}
selectAllAccessibilityLabel={translate('accessibilityHints.selectAllMembers')}
customListHeaderContent={listHeaderContent}
onSelectAll={toggleAllUsers}
onSelectionButtonPress={toggleUser}
Expand Down
1 change: 1 addition & 0 deletions src/pages/settings/Rules/ExpenseRulesPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@ function ExpenseRulesPage() {
<SelectionListWithModal
addBottomSafeAreaPadding
canSelectMultiple={canSelectMultiple}
selectAllAccessibilityLabel={translate('accessibilityHints.selectAllRules')}
customListHeader={getCustomListHeader()}
customListHeaderContent={headerContent}
data={filteredRuleList}
Expand Down
1 change: 1 addition & 0 deletions src/pages/workspace/WorkspaceMembersPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1051,6 +1051,7 @@ function WorkspaceMembersPage({personalDetails, route, policy}: WorkspaceMembers
onSelectRow={openMemberDetails}
selectedItems={selectedEmployees}
canSelectMultiple={canSelectMultiple}
selectAllAccessibilityLabel={translate('accessibilityHints.selectAllMembers')}
turnOnSelectionModeOnLongPress={isPolicyAdmin}
onSelectAll={displayedFilteredData.length > 0 ? () => toggleAllUsers(displayedFilteredData) : undefined}
style={{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -775,6 +775,7 @@ function WorkspaceCategoriesPage({route}: WorkspaceCategoriesPageProps) {
customListHeader={getCustomListHeader()}
customListHeaderContent={headerContent}
canSelectMultiple={canSelectMultiple}
selectAllAccessibilityLabel={translate('accessibilityHints.selectAllCategories')}
shouldShowListEmptyContent={false}
onDismissError={dismissError}
showScrollIndicator={false}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -542,6 +542,7 @@ function PolicyDistanceRatesPage({
shouldPreventDefaultFocusOnSelectRow={!canUseTouchScreen()}
customListHeaderContent={headerContent}
canSelectMultiple={canSelectMultiple}
selectAllAccessibilityLabel={translate('accessibilityHints.selectAllDistanceRates')}
onDismissError={dismissError}
shouldShowListEmptyContent={false}
showScrollIndicator={false}
Expand Down
1 change: 1 addition & 0 deletions src/pages/workspace/perDiem/WorkspacePerDiemPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -488,6 +488,7 @@ function WorkspacePerDiemPage({route}: WorkspacePerDiemPageProps) {
ListItem={TableListItem}
onSelectRow={openSubRateDetails}
canSelectMultiple={canSelectMultiple}
selectAllAccessibilityLabel={translate('accessibilityHints.selectAllPerDiemRates')}
onSelectionButtonPress={toggleSubRate}
customListHeader={getCustomListHeader()}
selectedItems={selectedPerDiem.map((item) => item.subRateID)}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -411,6 +411,7 @@ function ReportFieldsListValuesPage({
customListHeader={getCustomListHeader()}
customListHeaderContent={headerContent}
canSelectMultiple={canSelectMultiple}
selectAllAccessibilityLabel={translate('accessibilityHints.selectAllValues')}
onSelectionButtonPress={toggleValue}
shouldShowListEmptyContent={false}
showScrollIndicator={false}
Expand Down
1 change: 1 addition & 0 deletions src/pages/workspace/tags/WorkspaceTagsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -911,6 +911,7 @@ function WorkspaceTagsPage({route}: WorkspaceTagsPageProps) {
selectedItems={selectedTags}
onSelectRow={navigateToTagSettings}
canSelectMultiple={canSelectMultiple}
selectAllAccessibilityLabel={translate('accessibilityHints.selectAllTags')}
onSelectAll={filteredTagList.length > 0 ? toggleAllTags : undefined}
customListHeader={filteredTagList.length > 0 ? getCustomListHeader() : undefined}
onDismissError={(item) => !hasDependentTags && clearPolicyTagErrors({policyID, tagName: item.value, tagListIndex: 0, policyTags})}
Expand Down
1 change: 1 addition & 0 deletions src/pages/workspace/tags/WorkspaceViewTagsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -444,6 +444,7 @@ function WorkspaceViewTagsPage({route}: WorkspaceViewTagsProps) {
turnOnSelectionModeOnLongPress={!hasDependentTags}
customListHeaderContent={listHeaderContent}
canSelectMultiple={canSelectMultiple}
selectAllAccessibilityLabel={translate('accessibilityHints.selectAllTags')}
onSelectRow={navigateToTagSettings}
shouldShowListEmptyContent={false}
onSelectionButtonPress={toggleTag}
Expand Down
1 change: 1 addition & 0 deletions src/pages/workspace/taxes/WorkspaceTaxesPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -462,6 +462,7 @@ function WorkspaceTaxesPage({
selectedItems={selectedTaxesIDs}
onSelectRow={navigateToEditTaxRate}
canSelectMultiple={canSelectMultiple}
selectAllAccessibilityLabel={translate('accessibilityHints.selectAllTaxes')}
onTurnOnSelectionMode={(item) => item && toggleTax(item)}
onSelectAll={filteredTaxesList.length > 0 ? toggleAllTaxes : undefined}
onDismissError={(item) => (item.keyForList ? clearTaxRateError(policyID, item.keyForList, item.pendingAction) : undefined)}
Expand Down
Loading