@@ -18,7 +18,7 @@ import {
1818 PAGE_ATTRIBUTE , SORT_ATTRIBUTE
1919} from "../../../../constants/constants" ;
2020import {
21- ADD_SELECTED_CATEGORY ,
21+ ADD_SELECTED_CATEGORY , LOAD_SELECTED_CATEGORY_FROM_URL ,
2222 SAVE_QUERY_STATUS , SAVE_SORT_LIST , SELECT_PRODUCT_PAGE , SELECT_SORT_CATEGORY ,
2323} from "../../../../actions/types" ;
2424import { PRODUCTS_ROUTE } from "../../../../constants/react_routes" ;
@@ -213,7 +213,7 @@ function FilterNavBar(props) {
213213 log . info ( `[FilterNavBar] dispatchFilterAttributesFromURL` +
214214 `dispatching selectedFilterAttributes=${ JSON . stringify ( selectedFilterAttributes ) } ` )
215215 dispatch ( {
216- type : ADD_SELECTED_CATEGORY ,
216+ type : LOAD_SELECTED_CATEGORY_FROM_URL ,
217217 payload : selectedFilterAttributes
218218 } )
219219 }
@@ -297,35 +297,18 @@ function FilterNavBar(props) {
297297 * Component Did Update for Genders, Apparels, Brands and Prices
298298 */
299299 useEffect ( ( ) => {
300- log . info ( "[FilterNavBar] Component did mount for " +
301- "selectedApparels, selectedGenders, selectedBrands, selectedPriceRanges." )
300+ log . info ( "[FilterNavBar] Component did mount for filter selection hook" )
302301
303302 const { oldQuery, newQuery} = selectedFilterAttributes ;
304303
305- log . info ( `[FilterNavBar] oldQuery = ${ oldQuery } , newQuery = ${ newQuery } ` )
306304 let dispatchQueryForProducts = null
307305 let queryFromURL = history . location . search
308306
309- if ( ! oldQuery ) {
310-
311- // first load and navigation scenario
312- if ( ! newQuery || newQuery . localeCompare ( queryFromURL ) !== 0 ) {
313- log . info ( `[FilterNavBar] Updating from First time page load ` +
314- `scenario is null oldQuery = ${ oldQuery } , ` +
315- `newQuery = ${ newQuery } , queryFromURL = ${ queryFromURL } ` )
316-
317- props . loadFilterAttributes ( queryFromURL ) . then ( data => {
318- dispatchFilterAttributesFromURL ( data , queryFromURL )
319- dispatchSortAttributeFromURL ( data , queryFromURL )
320- dispatchPageAttributeFromURL ( data , queryFromURL )
321- dispatchSortList ( data )
322- } )
307+ log . info ( `[FilterNavBar] filter selection hook oldQuery = ${ oldQuery } , newQuery = ${ newQuery } , queryFromURL = ${ queryFromURL } ` )
308+ if ( ! newQuery ) {
309+ log . info ( `[FilterNavBar] filter selection hook oldQuery = ${ oldQuery } , newQuery = ${ newQuery } ` )
323310
324- dispatchQueryForProducts = queryFromURL
325- }
326- } else if ( ! newQuery ) {
327- log . info ( `[FilterNavBar] Updating when filter is selected ` +
328- `oldQuery = ${ oldQuery } , newQuery = ${ newQuery } ` )
311+ // on filter selection scenario
329312 let queryPreparedFromFilters = prepareQuery ( )
330313
331314 props . loadFilterAttributes ( queryPreparedFromFilters ) . then ( data => {
@@ -340,7 +323,8 @@ function FilterNavBar(props) {
340323
341324 // by default first page should be selected.
342325 if ( selectedPage . pageNumber > 1 ) {
343- log . info ( `dispatching selectedPage = ${ JSON . stringify ( selectedPage ) } ` )
326+ log . info ( `[FilterNavBar] filter selection hook dispatching selectedPage = ${ JSON . stringify ( selectedPage ) } ` )
327+
344328 dispatch ( {
345329 type : SELECT_PRODUCT_PAGE ,
346330 payload : {
@@ -355,27 +339,62 @@ function FilterNavBar(props) {
355339 }
356340
357341 if ( dispatchQueryForProducts ) {
358- log . info ( `selectedFilterAttributes useEffect dispatchQueryForProducts = ${ dispatchQueryForProducts } ` )
342+ log . info ( `[FilterNavBar] filter selection hook dispatchQueryForProducts = ${ dispatchQueryForProducts } ` )
343+
344+ dispatch ( {
345+ type : SAVE_QUERY_STATUS ,
346+ payload : dispatchQueryForProducts
347+ } )
348+ }
349+
350+ // eslint-disable-next-line
351+ } , [ selectedFilterAttributes ] ) ;
352+
353+ useEffect ( ( ) => {
354+ log . info ( "[FilterNavBar] Component did mount for new URL hook" )
355+
356+ const { oldQuery, newQuery} = selectedFilterAttributes ;
357+
358+ let dispatchQueryForProducts = null
359+ let queryFromURL = history . location . search
360+
361+ log . info ( `[FilterNavBar] new URL hook oldQuery = ${ oldQuery } , newQuery = ${ newQuery } , queryFromURL = ${ queryFromURL } ` )
362+ if ( ! oldQuery || newQuery . localeCompare ( queryFromURL ) !== 0 ) {
363+ log . info ( `[FilterNavBar] new URL hook oldQuery = ${ oldQuery } , newQuery = ${ newQuery } ` )
364+
365+ // on links click from tabs
366+ props . loadFilterAttributes ( queryFromURL ) . then ( data => {
367+ dispatchFilterAttributesFromURL ( data , queryFromURL )
368+ dispatchSortAttributeFromURL ( data , queryFromURL )
369+ dispatchPageAttributeFromURL ( data , queryFromURL )
370+ dispatchSortList ( data )
371+ } )
372+ dispatchQueryForProducts = queryFromURL
373+ }
374+
375+ if ( dispatchQueryForProducts ) {
376+ log . info ( `[FilterNavBar] new URL hook dispatchQueryForProducts = ${ dispatchQueryForProducts } ` )
377+
359378 dispatch ( {
360379 type : SAVE_QUERY_STATUS ,
361380 payload : dispatchQueryForProducts
362381 } )
363382 }
364383
365384 // eslint-disable-next-line
366- } , [ selectedFilterAttributes , props ] ) ;
385+ } , [ props ] ) ;
367386
368387 /**
369388 * Component Did Update for Sort and Page Options
370389 */
371390 useEffect ( ( ) => {
372- log . info ( "[FilterNavBar] Component did mount selectedPage, selectedSort." )
391+ log . info ( "[FilterNavBar] Component did mount selectedPage, selectedSort hook ." )
373392
374393 if ( ! selectedPage . isLoadedFromURL || ! selectedSort . isLoadedFromURL ) {
375- log . info ( "[FilterNavBar] Preparing query for selectedPage and selectedSort." )
394+ log . info ( "[FilterNavBar] selectedPage, selectedSort hook Preparing query for selectedPage and selectedSort." )
376395
377396 let query = prepareQuery ( )
378- log . info ( `selectedPage useEffect dispatchQueryForProducts = ${ query } ` )
397+ log . info ( `[FilterNavBar] selectedPage, selectedSort hook dispatchQueryForProducts = ${ query } ` )
379398
380399 if ( query ) {
381400 dispatch ( {
0 commit comments