From 26e07f3b8d8919384a2d27f31ab14ffddb18ca35 Mon Sep 17 00:00:00 2001 From: Batuhan Tomo Date: Thu, 18 Apr 2024 14:09:37 +0300 Subject: [PATCH 1/3] Fix#6415 --- components/lib/megamenu/MegaMenu.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/components/lib/megamenu/MegaMenu.js b/components/lib/megamenu/MegaMenu.js index 29334d1879..c39f3bb02e 100644 --- a/components/lib/megamenu/MegaMenu.js +++ b/components/lib/megamenu/MegaMenu.js @@ -740,6 +740,9 @@ export const MegaMenu = React.memo( const createProcessedItems = (items, level = 0, parent = {}, parentKey = '', columnIndex) => { const _processedItems = []; + if (items && !Array.isArray(items)) { + items = [items]; + } items && items.forEach((item, index) => { const key = (parentKey !== '' ? parentKey + '_' : '') + (columnIndex !== undefined ? columnIndex + '_' : '') + index; @@ -1054,7 +1057,7 @@ export const MegaMenu = React.memo( .p-megamenu[${selector}] .p-menuitem > .p-menuitem-content > .p-menuitem-link > .p-submenu-icon { margin-left: auto; } - + .p-megamenu[${selector}] .p-submenu-list .p-menuitem-content .p-menuitem-link { padding-left: 2.25rem; } @@ -1071,7 +1074,7 @@ export const MegaMenu = React.memo( ${ vertical - ? ` + ? ` .p-megamenu[${selector}] .p-menuitem > .p-menuitem-content > .p-menuitem-link > .p-submenu-icon { transform: rotate(90deg); } From a083445eb7cc0a8c30b098dfa7ac311671c4e4af Mon Sep 17 00:00:00 2001 From: Melloware Date: Thu, 18 Apr 2024 08:09:48 -0400 Subject: [PATCH 2/3] Update MegaMenu.js --- components/lib/megamenu/MegaMenu.js | 37 ++++++++++++++--------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/components/lib/megamenu/MegaMenu.js b/components/lib/megamenu/MegaMenu.js index c39f3bb02e..4a31ba3da9 100644 --- a/components/lib/megamenu/MegaMenu.js +++ b/components/lib/megamenu/MegaMenu.js @@ -738,29 +738,28 @@ export const MegaMenu = React.memo( }; const createProcessedItems = (items, level = 0, parent = {}, parentKey = '', columnIndex) => { - const _processedItems = []; + if (!items) return []; - if (items && !Array.isArray(items)) { + if (!Array.isArray(items)) { items = [items]; } - items && - items.forEach((item, index) => { - const key = (parentKey !== '' ? parentKey + '_' : '') + (columnIndex !== undefined ? columnIndex + '_' : '') + index; - const newItem = { - item, - index, - level, - key, - parent, - parentKey, - columnIndex: columnIndex !== undefined ? columnIndex : parent && parent.columnIndex !== undefined ? parent.columnIndex : index - }; - - newItem.items = level === 0 && item.items && item.items.length > 0 ? item.items.map((_items, _index) => createProcessedItems(_items, level + 1, newItem, key, _index)) : createProcessedItems(item.items, level + 1, newItem, key); - _processedItems.push(newItem); - }); - return _processedItems; + return items.map((item, index) => { + const key = `${parentKey !== '' ? parentKey + '_' : ''}${columnIndex !== undefined ? columnIndex + '_' : ''}${index}`; + const newItem = { + item, + index, + level, + key, + parent, + parentKey, + columnIndex: columnIndex !== undefined ? columnIndex : parent && parent.columnIndex !== undefined ? parent.columnIndex : index + }; + + newItem.items = level === 0 && item.items && item.items.length > 0 ? item.items.map((_items, _index) => createProcessedItems(_items, level + 1, newItem, key, _index)) : createProcessedItems(item.items, level + 1, newItem, key); + + return newItem; + }); }; const createSeparator = (index) => { From 8d7e7e83002ad941d34a7f51d1abdc3e6457e253 Mon Sep 17 00:00:00 2001 From: Melloware Date: Thu, 18 Apr 2024 08:11:29 -0400 Subject: [PATCH 3/3] Update MegaMenu.js --- components/lib/megamenu/MegaMenu.js | 1 + 1 file changed, 1 insertion(+) diff --git a/components/lib/megamenu/MegaMenu.js b/components/lib/megamenu/MegaMenu.js index 4a31ba3da9..6a035b9fe6 100644 --- a/components/lib/megamenu/MegaMenu.js +++ b/components/lib/megamenu/MegaMenu.js @@ -740,6 +740,7 @@ export const MegaMenu = React.memo( const createProcessedItems = (items, level = 0, parent = {}, parentKey = '', columnIndex) => { if (!items) return []; + // #6415 if passed a single array[] instead of a matrix [][] if (!Array.isArray(items)) { items = [items]; }