Skip to content

Commit 1c39bd2

Browse files
authored
Merge pull request #49473 from Expensify/lucien/fix-tooltip-saved-searches
2 parents 2ea2b15 + 6a1fc0a commit 1c39bd2

File tree

4 files changed

+18
-8
lines changed

4 files changed

+18
-8
lines changed

src/ONYXKEYS.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -207,8 +207,8 @@ const ONYXKEYS = {
207207
/** The NVP containing all information related to educational tooltip in workspace chat */
208208
NVP_WORKSPACE_TOOLTIP: 'workspaceTooltip',
209209

210-
/** Whether to hide save search rename tooltip */
211-
NVP_SHOULD_HIDE_SAVED_SEARCH_RENAME_TOOLTIP: 'nvp_should_hide_saved_search_rename_tooltip',
210+
/** Whether to show save search rename tooltip */
211+
SHOULD_SHOW_SAVED_SEARCH_RENAME_TOOLTIP: 'shouldShowSavedSearchRenameTooltip',
212212

213213
/** Whether to hide gbr tooltip */
214214
NVP_SHOULD_HIDE_GBR_TOOLTIP: 'nvp_should_hide_gbr_tooltip',
@@ -983,7 +983,7 @@ type OnyxValuesMapping = {
983983
[ONYXKEYS.APPROVAL_WORKFLOW]: OnyxTypes.ApprovalWorkflowOnyx;
984984
[ONYXKEYS.IMPORTED_SPREADSHEET]: OnyxTypes.ImportedSpreadsheet;
985985
[ONYXKEYS.LAST_ROUTE]: string;
986-
[ONYXKEYS.NVP_SHOULD_HIDE_SAVED_SEARCH_RENAME_TOOLTIP]: boolean;
986+
[ONYXKEYS.SHOULD_SHOW_SAVED_SEARCH_RENAME_TOOLTIP]: boolean;
987987
};
988988

989989
type OnyxValues = OnyxValuesMapping & OnyxCollectionValuesMapping & OnyxFormValuesMapping & OnyxFormDraftValuesMapping;

src/libs/actions/Search.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,12 @@ function clearAdvancedFilters() {
156156
Onyx.merge(ONYXKEYS.FORMS.SEARCH_ADVANCED_FILTERS_FORM, values);
157157
}
158158

159+
function showSavedSearchRenameTooltip() {
160+
Onyx.set(ONYXKEYS.SHOULD_SHOW_SAVED_SEARCH_RENAME_TOOLTIP, true);
161+
}
162+
159163
function dismissSavedSearchRenameTooltip() {
160-
Onyx.merge(ONYXKEYS.NVP_SHOULD_HIDE_SAVED_SEARCH_RENAME_TOOLTIP, true);
164+
Onyx.set(ONYXKEYS.SHOULD_SHOW_SAVED_SEARCH_RENAME_TOOLTIP, false);
161165
}
162166

163167
export {
@@ -173,4 +177,5 @@ export {
173177
clearAdvancedFilters,
174178
deleteSavedSearch,
175179
dismissSavedSearchRenameTooltip,
180+
showSavedSearchRenameTooltip,
176181
};

src/pages/Search/AdvancedSearchFilters.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import ONYXKEYS from '@src/ONYXKEYS';
2727
import ROUTES from '@src/ROUTES';
2828
import type {SearchAdvancedFiltersForm} from '@src/types/form';
2929
import type {CardList, PersonalDetailsList, Report} from '@src/types/onyx';
30+
import {isEmptyObject} from '@src/types/utils/EmptyObject';
3031

3132
const baseFilterConfig = {
3233
date: {
@@ -250,6 +251,10 @@ function AdvancedSearchFilters() {
250251
return;
251252
}
252253

254+
if (isEmptyObject(savedSearches)) {
255+
SearchActions.showSavedSearchRenameTooltip();
256+
}
257+
253258
SearchActions.saveSearch({
254259
queryJSON,
255260
});

src/pages/Search/SearchTypeMenu.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ function SearchTypeMenu({queryJSON}: SearchTypeMenuProps) {
5959
const {singleExecution} = useSingleExecution();
6060
const {translate} = useLocalize();
6161
const [savedSearches] = useOnyx(ONYXKEYS.SAVED_SEARCHES);
62-
const [shouldHideSavedSearchRenameTooltip] = useOnyx(ONYXKEYS.NVP_SHOULD_HIDE_SAVED_SEARCH_RENAME_TOOLTIP, {initialValue: true});
62+
const [shouldShowSavedSearchRenameTooltip] = useOnyx(ONYXKEYS.SHOULD_SHOW_SAVED_SEARCH_RENAME_TOOLTIP);
6363
const {showDeleteModal, DeleteConfirmModal} = useDeleteSavedSearch();
6464

6565
const personalDetails = usePersonalDetails();
@@ -99,7 +99,7 @@ function SearchTypeMenu({queryJSON}: SearchTypeMenuProps) {
9999
[showDeleteModal],
100100
);
101101

102-
const createSavedSearchMenuItem = (item: SaveSearchItem, key: string, isNarrow: boolean) => {
102+
const createSavedSearchMenuItem = (item: SaveSearchItem, key: string, isNarrow: boolean, index: number) => {
103103
let title = item.name;
104104
if (title === item.query) {
105105
const jsonQuery = SearchUtils.buildSearchQueryJSON(item.query) ?? ({} as SearchQueryJSON);
@@ -124,7 +124,7 @@ function SearchTypeMenu({queryJSON}: SearchTypeMenuProps) {
124124
if (!isNarrow) {
125125
return {
126126
...baseMenuItem,
127-
shouldRenderTooltip: !shouldHideSavedSearchRenameTooltip,
127+
shouldRenderTooltip: index === 0 && shouldShowSavedSearchRenameTooltip === true,
128128
tooltipAnchorAlignment: {
129129
horizontal: CONST.MODAL.ANCHOR_ORIGIN_HORIZONTAL.RIGHT,
130130
vertical: CONST.MODAL.ANCHOR_ORIGIN_VERTICAL.BOTTOM,
@@ -178,7 +178,7 @@ function SearchTypeMenu({queryJSON}: SearchTypeMenuProps) {
178178
if (!savedSearches) {
179179
return [];
180180
}
181-
return Object.entries(savedSearches).map(([key, item]) => createSavedSearchMenuItem(item as SaveSearchItem, key, shouldUseNarrowLayout));
181+
return Object.entries(savedSearches).map(([key, item], index) => createSavedSearchMenuItem(item as SaveSearchItem, key, shouldUseNarrowLayout, index));
182182
};
183183

184184
const renderSavedSearchesSection = useCallback(

0 commit comments

Comments
 (0)