Skip to content

Commit c2c2312

Browse files
committed
update date presets, display last-statement only if a feed is selected
1 parent fcebaea commit c2c2312

7 files changed

Lines changed: 27 additions & 18 deletions

File tree

src/CONST/index.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6449,12 +6449,6 @@ const CONST = {
64496449
LAST_MONTH: 'last-month',
64506450
LAST_STATEMENT: 'last-statement',
64516451
},
6452-
get FILTER_DATE_PRESETS() {
6453-
return {
6454-
[this.SYNTAX_FILTER_KEYS.POSTED]: [this.DATE_PRESETS.LAST_STATEMENT, this.DATE_PRESETS.LAST_MONTH],
6455-
[this.SYNTAX_FILTER_KEYS.EXPORTED]: [this.DATE_PRESETS.NEVER],
6456-
};
6457-
},
64586452
SNAPSHOT_ONYX_KEYS: [
64596453
ONYXKEYS.COLLECTION.REPORT,
64606454
ONYXKEYS.COLLECTION.POLICY,

src/components/Search/SearchAutocompleteList.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import {
3232
parseForAutocomplete,
3333
} from '@libs/SearchAutocompleteUtils';
3434
import {buildSearchQueryJSON, buildUserReadableQueryString, getQueryWithoutFilters, sanitizeSearchValue, shouldHighlight} from '@libs/SearchQueryUtils';
35+
import {getDatePresets} from '@libs/SearchUIUtils';
3536
import StringUtils from '@libs/StringUtils';
3637
import Timing from '@userActions/Timing';
3738
import CONST from '@src/CONST';
@@ -433,7 +434,7 @@ function SearchAutocompleteList(
433434
}
434435
case CONST.SEARCH.SYNTAX_FILTER_KEYS.EXPORTED:
435436
case CONST.SEARCH.SYNTAX_FILTER_KEYS.POSTED: {
436-
const filteredDatePresets = CONST.SEARCH.FILTER_DATE_PRESETS[autocompleteKey]
437+
const filteredDatePresets = (getDatePresets(autocompleteKey, true) ?? [])
437438
.filter((datePreset) => datePreset.toLowerCase().includes(autocompleteValue.toLowerCase()) && !alreadyAutocompletedKeys.includes(datePreset.toLowerCase()))
438439
.sort()
439440
.slice(0, 10);

src/components/Search/SearchDatePresetFilterBasePage.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import useOnyx from '@hooks/useOnyx';
99
import useThemeStyles from '@hooks/useThemeStyles';
1010
import {updateAdvancedFilters} from '@libs/actions/Search';
1111
import Navigation from '@libs/Navigation/Navigation';
12-
import type {SearchDateModifier, SearchDateModifierLower} from '@libs/SearchUIUtils';
12+
import {getDatePresets, type SearchDateModifier, type SearchDateModifierLower} from '@libs/SearchUIUtils';
1313
import CONST from '@src/CONST';
1414
import type {TranslationPaths} from '@src/languages/types';
1515
import ONYXKEYS from '@src/ONYXKEYS';
@@ -24,12 +24,9 @@ type SearchDatePresetFilterBasePageProps = {
2424

2525
/** The translation key for the page title */
2626
titleKey: TranslationPaths;
27-
28-
/** The date presets */
29-
presets?: SearchDatePreset[];
3027
};
3128

32-
function SearchDatePresetFilterBasePage({dateKey, titleKey, presets}: SearchDatePresetFilterBasePageProps) {
29+
function SearchDatePresetFilterBasePage({dateKey, titleKey}: SearchDatePresetFilterBasePageProps) {
3330
const styles = useThemeStyles();
3431
const {translate} = useLocalize();
3532

@@ -43,6 +40,11 @@ function SearchDatePresetFilterBasePage({dateKey, titleKey, presets}: SearchDate
4340
[CONST.SEARCH.DATE_MODIFIERS.AFTER]: searchAdvancedFiltersForm?.[`${dateKey}${CONST.SEARCH.DATE_MODIFIERS.AFTER}`],
4441
};
4542

43+
const presets = useMemo(() => {
44+
const hasFeed = !!searchAdvancedFiltersForm?.feed?.length;
45+
return getDatePresets(dateKey, hasFeed);
46+
}, [dateKey, searchAdvancedFiltersForm?.feed]);
47+
4648
const title = useMemo(() => {
4749
if (selectedDateModifier) {
4850
return translate(`common.${selectedDateModifier.toLowerCase() as SearchDateModifierLower}`);

src/components/Search/SearchPageHeader/SearchFiltersBar.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ import {
4040
isFilterSupported,
4141
isSearchDatePreset,
4242
} from '@libs/SearchQueryUtils';
43-
import {getFeedOptions, getGroupByOptions, getStatusOptions, getTypeOptions} from '@libs/SearchUIUtils';
43+
import {getDatePresets, getFeedOptions, getGroupByOptions, getStatusOptions, getTypeOptions} from '@libs/SearchUIUtils';
4444
import CONST from '@src/CONST';
4545
import ONYXKEYS from '@src/ONYXKEYS';
4646
import ROUTES from '@src/ROUTES';
@@ -250,17 +250,19 @@ function SearchFiltersBar({queryJSON, headerButtonsOptions, isMobileSelectionMod
250250
updateFilterForm(dateFormValues);
251251
};
252252

253+
const hasFeed = !!filterFormValues.feed;
254+
253255
return (
254256
<DateSelectPopup
255257
label={translate('search.filters.posted')}
256258
value={posted}
257259
onChange={onChange}
258260
closeOverlay={closeOverlay}
259-
presets={CONST.SEARCH.FILTER_DATE_PRESETS[CONST.SEARCH.SYNTAX_FILTER_KEYS.POSTED]}
261+
presets={getDatePresets(CONST.SEARCH.SYNTAX_FILTER_KEYS.POSTED, hasFeed)}
260262
/>
261263
);
262264
},
263-
[posted, translate, updateFilterForm],
265+
[posted, filterFormValues.feed, translate, updateFilterForm],
264266
);
265267

266268
const statusComponent = useCallback(

src/libs/SearchUIUtils.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import type DotLottieAnimation from '@components/LottieAnimations/types';
88
import type {MenuItemWithLink} from '@components/MenuItemList';
99
import type {MultiSelectItem} from '@components/Search/FilterDropdowns/MultiSelectPopup';
1010
import type {SingleSelectItem} from '@components/Search/FilterDropdowns/SingleSelectPopup';
11-
import type {SearchColumnType, SearchGroupBy, SearchQueryJSON, SearchStatus, SingularSearchStatus, SortOrder} from '@components/Search/types';
11+
import type {SearchColumnType, SearchDateFilterKeys, SearchDatePreset, SearchGroupBy, SearchQueryJSON, SearchStatus, SingularSearchStatus, SortOrder} from '@components/Search/types';
1212
import ChatListItem from '@components/SelectionList/ChatListItem';
1313
import TaskListItem from '@components/SelectionList/Search/TaskListItem';
1414
import TransactionGroupListItem from '@components/SelectionList/Search/TransactionGroupListItem';
@@ -1855,6 +1855,17 @@ function getFeedOptions(allCardFeeds: OnyxCollection<OnyxTypes.CardFeeds>, allCa
18551855
}));
18561856
}
18571857

1858+
function getDatePresets(filterKey: SearchDateFilterKeys, hasFeed: boolean): SearchDatePreset[] | undefined {
1859+
switch (filterKey) {
1860+
case CONST.SEARCH.SYNTAX_FILTER_KEYS.POSTED:
1861+
return [...(hasFeed ? [CONST.SEARCH.DATE_PRESETS.LAST_STATEMENT] : []), CONST.SEARCH.DATE_PRESETS.LAST_MONTH];
1862+
case CONST.SEARCH.SYNTAX_FILTER_KEYS.EXPORTED:
1863+
return [CONST.SEARCH.DATE_PRESETS.NEVER];
1864+
default:
1865+
return undefined;
1866+
}
1867+
}
1868+
18581869
export {
18591870
getSuggestedSearches,
18601871
getListItem,
@@ -1888,5 +1899,6 @@ export {
18881899
getWideAmountIndicators,
18891900
isTransactionAmountTooLong,
18901901
isTransactionTaxAmountTooLong,
1902+
getDatePresets,
18911903
};
18921904
export type {SavedSearchMenuItem, SearchTypeMenuSection, SearchTypeMenuItem, SearchDateModifier, SearchDateModifierLower, SearchKey, ArchivedReportsIDSet};

src/pages/Search/SearchAdvancedFiltersPage/SearchFiltersExportedPage.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ function SearchFiltersExportedPage() {
77
<SearchDatePresetFilterBasePage
88
dateKey={CONST.SEARCH.SYNTAX_FILTER_KEYS.EXPORTED}
99
titleKey="search.filters.exported"
10-
presets={CONST.SEARCH.FILTER_DATE_PRESETS[CONST.SEARCH.SYNTAX_FILTER_KEYS.EXPORTED]}
1110
/>
1211
);
1312
}

src/pages/Search/SearchAdvancedFiltersPage/SearchFiltersPostedPage.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ function SearchFiltersPostedPage() {
77
<SearchDatePresetFilterBasePage
88
dateKey={CONST.SEARCH.SYNTAX_FILTER_KEYS.POSTED}
99
titleKey="search.filters.posted"
10-
presets={CONST.SEARCH.FILTER_DATE_PRESETS[CONST.SEARCH.SYNTAX_FILTER_KEYS.POSTED]}
1110
/>
1211
);
1312
}

0 commit comments

Comments
 (0)