@@ -81,8 +81,13 @@ export const useNavigation = (): NavigationState => {
8181 setHistory ( { previousPages : [ assetStoreHomePageState ] } ) ;
8282 } ,
8383 clearHistory : ( ) => {
84- const currentPage = previousPages [ previousPages . length - 1 ] ;
85- setHistory ( { previousPages : [ assetStoreHomePageState , currentPage ] } ) ;
84+ setHistory ( previousHistory => {
85+ const currentPage =
86+ previousHistory . previousPages [
87+ previousHistory . previousPages . length - 1
88+ ] ;
89+ return { previousPages : [ assetStoreHomePageState , currentPage ] } ;
90+ } ) ;
8691 } ,
8792 openSearchIfNeeded : ( ) => {
8893 const currentPage = previousPages [ previousPages . length - 1 ] ;
@@ -91,18 +96,31 @@ export const useNavigation = (): NavigationState => {
9196 }
9297 } ,
9398 activateTextualSearch : ( ) => {
94- const currentPage = previousPages [ previousPages . length - 1 ] ;
95- if ( currentPage . isOnHomePage || currentPage . openedAssetShortHeader ) {
96- setHistory ( { previousPages : [ ...previousPages , searchPageState ] } ) ;
97- } else if ( currentPage . ignoreTextualSearch ) {
98- currentPage . ignoreTextualSearch = false ;
99- setHistory ( { previousPages : [ ...previousPages ] } ) ;
100- }
99+ setHistory ( previousHistory => {
100+ const currentPage =
101+ previousHistory . previousPages [
102+ previousHistory . previousPages . length - 1
103+ ] ;
104+ if ( currentPage . isOnHomePage || currentPage . openedAssetShortHeader ) {
105+ return {
106+ previousPages : [
107+ ...previousHistory . previousPages ,
108+ searchPageState ,
109+ ] ,
110+ } ;
111+ } else if ( currentPage . ignoreTextualSearch ) {
112+ currentPage . ignoreTextualSearch = false ;
113+ return { previousPages : [ ...previousHistory . previousPages ] } ;
114+ }
115+
116+ return previousHistory ;
117+ } ) ;
101118 } ,
102119 openTagPage : ( tag : string ) => {
103- setHistory ( {
120+ setHistory ( previousHistory => ( {
121+ ...previousHistory ,
104122 previousPages : [
105- ...previousPages ,
123+ ...previousHistory . previousPages ,
106124 {
107125 isOnHomePage : false ,
108126 openedAssetShortHeader : null ,
@@ -121,12 +139,13 @@ export const useNavigation = (): NavigationState => {
121139 ignoreTextualSearch : true ,
122140 } ,
123141 ] ,
124- } ) ;
142+ } ) ) ;
125143 } ,
126144 openPackPage : ( assetPack : PublicAssetPack | PrivateAssetPack ) => {
127- setHistory ( {
145+ setHistory ( previousHistory => ( {
146+ ...previousHistory ,
128147 previousPages : [
129- ...previousPages ,
148+ ...previousHistory . previousPages ,
130149 {
131150 isOnHomePage : false ,
132151 openedAssetShortHeader : null ,
@@ -149,14 +168,15 @@ export const useNavigation = (): NavigationState => {
149168 ignoreTextualSearch : true ,
150169 } ,
151170 ] ,
152- } ) ;
171+ } ) ) ;
153172 } ,
154173 openPrivateAssetPackInformationPage : (
155174 assetPack : PrivateAssetPackListingData
156175 ) => {
157- setHistory ( {
176+ setHistory ( previousHistory => ( {
177+ ...previousHistory ,
158178 previousPages : [
159- ...previousPages ,
179+ ...previousHistory . previousPages ,
160180 {
161181 isOnHomePage : false ,
162182 openedAssetShortHeader : null ,
@@ -166,12 +186,13 @@ export const useNavigation = (): NavigationState => {
166186 ignoreTextualSearch : true ,
167187 } ,
168188 ] ,
169- } ) ;
189+ } ) ) ;
170190 } ,
171191 openDetailPage : ( assetShortHeader : AssetShortHeader ) => {
172- setHistory ( {
192+ setHistory ( previousHistory => ( {
193+ ...previousHistory ,
173194 previousPages : [
174- ...previousPages ,
195+ ...previousHistory . previousPages ,
175196 {
176197 isOnHomePage : false ,
177198 openedAssetShortHeader : assetShortHeader ,
@@ -181,7 +202,7 @@ export const useNavigation = (): NavigationState => {
181202 ignoreTextualSearch : true ,
182203 } ,
183204 ] ,
184- } ) ;
205+ } ) ) ;
185206 } ,
186207 } ) ,
187208 [ previousPages ]
0 commit comments