Skip to content

Commit ee50f31

Browse files
committed
fix ordering by making it two separate order function calls as before
1 parent b174805 commit ee50f31

File tree

1 file changed

+16
-19
lines changed

1 file changed

+16
-19
lines changed

src/libs/OptionsListUtils.ts

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -939,11 +939,11 @@ function orderReportOptionsWithSearch(
939939
searchValue: string,
940940
{preferChatroomsOverThreads = false, preferPolicyExpenseChat = false, preferRecentExpenseReports = false}: OrderOptionsConfig = {},
941941
) {
942+
const orderedByDate = orderReportOptions(options);
943+
942944
return lodashOrderBy(
943-
options,
945+
orderedByDate,
944946
[
945-
// Archived reports should always be at the bottom:
946-
sortComparatorReportOptionByArchivedStatus,
947947
// Sorting by kind:
948948
(option) => {
949949
if (option.isPolicyExpenseChat && preferPolicyExpenseChat && option.policyID === activePolicyID) {
@@ -962,7 +962,7 @@ function orderReportOptionsWithSearch(
962962
if (preferChatroomsOverThreads && option.isThread) {
963963
return 4;
964964
}
965-
if (option.isChatRoom) {
965+
if (!!option.isChatRoom || option.private_isArchived) {
966966
return 3;
967967
}
968968
if (!option.login) {
@@ -975,13 +975,11 @@ function orderReportOptionsWithSearch(
975975
// When option.login is an exact match with the search value, returning 0 puts it at the top of the option list
976976
return 0;
977977
},
978-
// Within the same kind, sort by the last visible action created date
979-
sortComparatorReportOptionByDate,
980978
// For Submit Expense flow, prioritize the most recent expense reports and then policy expense chats (without expense requests)
981979
preferRecentExpenseReports ? (option) => option?.lastIOUCreationDate ?? '' : '',
982980
preferRecentExpenseReports ? (option) => option?.isPolicyExpenseChat : 0,
983981
],
984-
['asc', 'asc', 'desc', 'desc', 'desc'],
982+
['asc', 'desc', 'desc'],
985983
);
986984
}
987985

@@ -995,7 +993,11 @@ function sortComparatorReportOptionByDate(options: ReportUtils.OptionData) {
995993
return options.lastVisibleActionCreated ?? '';
996994
}
997995

998-
function orderOptions(options: Pick<Options, 'recentReports' | 'personalDetails'>, searchValue?: string, config?: OrderOptionsConfig) {
996+
type ReportAndPersonalDetailOptions = Pick<Options, 'recentReports' | 'personalDetails'>;
997+
998+
function orderOptions(options: ReportAndPersonalDetailOptions): ReportAndPersonalDetailOptions;
999+
function orderOptions(options: ReportAndPersonalDetailOptions, searchValue: string, config?: OrderOptionsConfig): ReportAndPersonalDetailOptions;
1000+
function orderOptions(options: ReportAndPersonalDetailOptions, searchValue?: string, config?: OrderOptionsConfig) {
9991001
let orderedReportOptions: ReportUtils.OptionData[];
10001002
if (searchValue) {
10011003
orderedReportOptions = orderReportOptionsWithSearch(options.recentReports, searchValue, config);
@@ -1750,26 +1752,21 @@ function filterAndOrderOptions(options: Options, searchInputValue: string, confi
17501752
}
17511753

17521754
const personalDetailsWithoutDMs = filteredPersonalDetailsOfRecentReports(filteredReports, filteredPersonalDetails);
1755+
const orderedPersonalDetails = orderPersonalDetailsOptions(personalDetailsWithoutDMs);
17531756

17541757
// sortByReportTypeInSearch option will show the personal details as part of the recent reports
17551758
if (sortByReportTypeInSearch) {
1756-
filteredReports = filteredReports.concat(personalDetailsWithoutDMs);
1759+
filteredReports = filteredReports.concat(orderedPersonalDetails);
17571760
filteredPersonalDetails = [];
17581761
} else {
1759-
filteredPersonalDetails = personalDetailsWithoutDMs;
1762+
filteredPersonalDetails = orderedPersonalDetails;
17601763
}
17611764

1762-
const orderedOptions = orderOptions(
1763-
{
1764-
recentReports: filteredReports,
1765-
personalDetails: filteredPersonalDetails,
1766-
},
1767-
searchInputValue,
1768-
config,
1769-
);
1765+
const orderedReports = orderReportOptionsWithSearch(filteredReports, searchInputValue, config);
17701766

17711767
return {
1772-
...orderedOptions,
1768+
recentReports: orderedReports,
1769+
personalDetails: filteredPersonalDetails,
17731770
userToInvite: filterResult.userToInvite,
17741771
currentUserOption: filterResult.currentUserOption,
17751772
};

0 commit comments

Comments
 (0)