@@ -102,7 +102,7 @@ requirejs(['algoliaBundle', 'Magento_Catalog/js/price-utils'], function (algolia
102
102
searchParameters [ 'facetsRefinements' ] [ 'categories.level' + algoliaConfig . request . level ] = [ algoliaConfig . request . path ] ;
103
103
}
104
104
}
105
-
105
+
106
106
if ( algoliaConfig . instant . isVisualMerchEnabled && algoliaConfig . isCategoryPage ) {
107
107
searchParameters . filters = `${ algoliaConfig . instant . categoryPageIdAttribute } :'${ algoliaConfig . request . path } '` ;
108
108
}
@@ -431,29 +431,33 @@ requirejs(['algoliaBundle', 'Magento_Catalog/js/price-utils'], function (algolia
431
431
hierarchical_levels . push ( 'categories.level' + l . toString ( ) ) ;
432
432
}
433
433
434
+
435
+ //return array of items starting from root based on category
436
+ const findRoot = ( items ) => {
437
+ const root = items . find ( element => algoliaConfig . request . path . startsWith ( element . value ) ) ;
438
+
439
+ if ( ! root ) {
440
+ return items ;
441
+ }
442
+ if ( ! root . data ) {
443
+ return [ ] ;
444
+ }
445
+
446
+ return findRoot ( root . data ) ;
447
+
448
+ } ;
434
449
var hierarchicalMenuParams = {
435
450
container : facet . wrapper . appendChild ( createISWidgetContainer ( facet . attribute ) ) ,
436
451
attributes : hierarchical_levels ,
437
452
separator : algoliaConfig . instant . categorySeparator ,
438
453
templates : templates ,
439
- alwaysGetRootLevel : false ,
440
- showParentLevel :false ,
454
+ showParentLevel : true ,
441
455
limit : algoliaConfig . maxValuesPerFacet ,
442
456
sortBy : [ 'name:asc' ] ,
443
457
transformItems ( items ) {
444
- if ( algoliaConfig . isCategoryPage ) {
445
- var filteredData = [ ] ;
446
- items . forEach ( element => {
447
- if ( element . label == algoliaConfig . request . parentCategory ) {
448
- filteredData . push ( element ) ;
449
- } ;
450
- } ) ;
451
- items = filteredData ;
452
- }
453
- return items . map ( item => ( {
454
- ...item ,
455
- label : item . label ,
456
- } ) ) ;
458
+ return ( algoliaConfig . isCategoryPage )
459
+ ? findRoot ( items )
460
+ : items ;
457
461
} ,
458
462
} ;
459
463
0 commit comments