@@ -9,12 +9,10 @@ import {
99import { type PrivateAssetPackListingData } from '../Utils/GDevelopServices/Shop' ;
1010
1111export 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
4239export const assetStoreHomePageState : AssetStorePageState = {
43- isOnHomePage : true ,
4440 openedAssetShortHeader : null ,
4541 openedAssetPack : null ,
4642 openedPrivateAssetPackListingData : null ,
4743 filtersState : noFilter ,
48- ignoreTextualSearch : false ,
4944} ;
5045
5146const 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
6065type 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