Skip to content

Commit 8932574

Browse files
authored
Launch automatically the search in the asset store when typing (#4725)
1 parent b8f0451 commit 8932574

File tree

5 files changed

+249
-191
lines changed

5 files changed

+249
-191
lines changed

newIDE/app/src/AssetStore/AssetStoreContext.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,7 @@ export const AssetStoreContext = React.createContext<AssetStoreState>({
115115
backToPreviousPage: () => {},
116116
openHome: () => {},
117117
clearHistory: () => {},
118-
openSearchIfNeeded: () => {},
119-
activateTextualSearch: () => {},
118+
openSearchResultPage: () => {},
120119
openTagPage: tag => {},
121120
openPackPage: assetPack => {},
122121
openDetailPage: assetShortHeader => {},
@@ -392,7 +391,7 @@ export const AssetStoreStateProvider = ({
392391
const searchResults: ?Array<AssetShortHeader> = useSearchItem(
393392
assetShortHeadersById,
394393
getAssetShortHeaderSearchTerms,
395-
currentPage.ignoreTextualSearch ? '' : searchText,
394+
searchText,
396395
chosenCategory,
397396
chosenFilters,
398397
searchFilters

newIDE/app/src/AssetStore/AssetStoreNavigator.js

Lines changed: 18 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,10 @@ import {
99
import { type PrivateAssetPackListingData } from '../Utils/GDevelopServices/Shop';
1010

1111
export type AssetStorePageState = {|
12-
isOnHomePage: boolean,
1312
openedAssetPack: PublicAssetPack | PrivateAssetPack | null,
1413
openedAssetShortHeader: ?AssetShortHeader,
1514
openedPrivateAssetPackListingData: ?PrivateAssetPackListingData,
1615
filtersState: FiltersState,
17-
ignoreTextualSearch: boolean,
1816
scrollPosition?: ?number,
1917
|};
2018

@@ -23,8 +21,7 @@ export type NavigationState = {|
2321
backToPreviousPage: () => void,
2422
openHome: () => void,
2523
clearHistory: () => void,
26-
openSearchIfNeeded: () => void,
27-
activateTextualSearch: () => void,
24+
openSearchResultPage: () => void,
2825
openTagPage: string => void,
2926
openPackPage: (PublicAssetPack | PrivateAssetPack) => void,
3027
openPrivateAssetPackInformationPage: PrivateAssetPackListingData => void,
@@ -40,21 +37,29 @@ const noFilter: FiltersState = {
4037
};
4138

4239
export const assetStoreHomePageState: AssetStorePageState = {
43-
isOnHomePage: true,
4440
openedAssetShortHeader: null,
4541
openedAssetPack: null,
4642
openedPrivateAssetPackListingData: null,
4743
filtersState: noFilter,
48-
ignoreTextualSearch: false,
4944
};
5045

5146
const searchPageState: AssetStorePageState = {
52-
isOnHomePage: false,
5347
openedAssetShortHeader: null,
5448
openedAssetPack: null,
5549
openedPrivateAssetPackListingData: null,
5650
filtersState: noFilter,
57-
ignoreTextualSearch: false,
51+
};
52+
53+
export const isHomePage = (pageState: AssetStorePageState) => {
54+
return pageState === assetStoreHomePageState;
55+
};
56+
57+
export const isSearchResultPage = (pageState: AssetStorePageState) => {
58+
return (
59+
!isHomePage(pageState) &&
60+
!pageState.openedAssetShortHeader &&
61+
!pageState.openedPrivateAssetPackListingData
62+
);
5863
};
5964

6065
type AssetStorePageHistory = {|
@@ -82,35 +87,29 @@ export const useNavigation = (): NavigationState => {
8287
},
8388
clearHistory: () => {
8489
setHistory(previousHistory => {
90+
if (previousHistory.previousPages.length <= 1) return previousHistory;
91+
8592
const currentPage =
8693
previousHistory.previousPages[
8794
previousHistory.previousPages.length - 1
8895
];
8996
return { previousPages: [assetStoreHomePageState, currentPage] };
9097
});
9198
},
92-
openSearchIfNeeded: () => {
93-
const currentPage = previousPages[previousPages.length - 1];
94-
if (currentPage.isOnHomePage || currentPage.openedAssetShortHeader) {
95-
setHistory({ previousPages: [...previousPages, searchPageState] });
96-
}
97-
},
98-
activateTextualSearch: () => {
99+
openSearchResultPage: () => {
99100
setHistory(previousHistory => {
100101
const currentPage =
101102
previousHistory.previousPages[
102103
previousHistory.previousPages.length - 1
103104
];
104-
if (currentPage.isOnHomePage || currentPage.openedAssetShortHeader) {
105+
if (!isSearchResultPage(currentPage)) {
105106
return {
107+
...previousHistory,
106108
previousPages: [
107109
...previousHistory.previousPages,
108110
searchPageState,
109111
],
110112
};
111-
} else if (currentPage.ignoreTextualSearch) {
112-
currentPage.ignoreTextualSearch = false;
113-
return { previousPages: [...previousHistory.previousPages] };
114113
}
115114

116115
return previousHistory;
@@ -122,7 +121,6 @@ export const useNavigation = (): NavigationState => {
122121
previousPages: [
123122
...previousHistory.previousPages,
124123
{
125-
isOnHomePage: false,
126124
openedAssetShortHeader: null,
127125
openedAssetPack: null,
128126
openedPrivateAssetPackListingData: null,
@@ -136,7 +134,6 @@ export const useNavigation = (): NavigationState => {
136134
removeFilter: () => {},
137135
setChosenCategory: () => {},
138136
},
139-
ignoreTextualSearch: true,
140137
},
141138
],
142139
}));
@@ -147,7 +144,6 @@ export const useNavigation = (): NavigationState => {
147144
previousPages: [
148145
...previousHistory.previousPages,
149146
{
150-
isOnHomePage: false,
151147
openedAssetShortHeader: null,
152148
openedAssetPack: assetPack,
153149
openedPrivateAssetPackListingData: null,
@@ -165,7 +161,6 @@ export const useNavigation = (): NavigationState => {
165161
removeFilter: () => {},
166162
setChosenCategory: () => {},
167163
},
168-
ignoreTextualSearch: true,
169164
},
170165
],
171166
}));
@@ -178,12 +173,10 @@ export const useNavigation = (): NavigationState => {
178173
previousPages: [
179174
...previousHistory.previousPages,
180175
{
181-
isOnHomePage: false,
182176
openedAssetShortHeader: null,
183177
openedAssetPack: null,
184178
openedPrivateAssetPackListingData: assetPack,
185179
filtersState: noFilter,
186-
ignoreTextualSearch: true,
187180
},
188181
],
189182
}));
@@ -194,12 +187,10 @@ export const useNavigation = (): NavigationState => {
194187
previousPages: [
195188
...previousHistory.previousPages,
196189
{
197-
isOnHomePage: false,
198190
openedAssetShortHeader: assetShortHeader,
199191
openedAssetPack: null,
200192
openedPrivateAssetPackListingData: null,
201193
filtersState: noFilter,
202-
ignoreTextualSearch: true,
203194
},
204195
],
205196
}));

0 commit comments

Comments
 (0)