From 9f23f746a43cb279d8dad6b31f402385585f75fc Mon Sep 17 00:00:00 2001 From: Shabarish V Date: Tue, 4 Oct 2022 18:31:14 +0530 Subject: [PATCH] WEB-102 - Navigation Menu issues in Docs and Tutorials --- src/components/LeftNav.jsx | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/src/components/LeftNav.jsx b/src/components/LeftNav.jsx index 58c0d41..7be0650 100644 --- a/src/components/LeftNav.jsx +++ b/src/components/LeftNav.jsx @@ -33,14 +33,29 @@ class ListItem extends React.Component { const { active } = this.state; if (active.indexOf(name) === -1) { this.setState((prev) => ({ active: [...prev.active, name] })); + const { expandedPanels } = this.state; + if(!expandedPanels){ + this.setState(() => ({ expandedPanels: [ name] })); + } } } // sets a given list item as active + + toggleExpansion(identifier) { + const { expandedPanels } = this.state; + if (expandedPanels?.indexOf(identifier) === -1) { + this.setState((prev) => ({ expandedPanels: [...prev.expandedPanels, identifier] })); + } else if(expandedPanels){ + expandedPanels.splice(expandedPanels.indexOf(identifier), 1); + this.setState(() => ({ expandedPanels: [...expandedPanels] })); + } + } + toggleActive = (e) => { let title; if (e.target.attributes.identifier) { title = e.target.attributes.identifier.value; - } else if (e.target.nextSibling.attributes.identifier) { + } else if (e.target.nextSibling?.attributes.identifier) { title = e.target.nextSibling.attributes.identifier.value; } const { active } = this.state; @@ -83,7 +98,7 @@ class ListItem extends React.Component { // Appending overview page link to Parent node (which has arrow icon with title) // Instead of having overview as a separate link. let overviewLink = null; - Object.keys(data).map(key => { + Object.keys(data).reverse().map(key => { if (data.hasOwnProperty('overview')) { if (data['overview'].url.indexOf(`/${name}/overview/`) !== -1) overviewLink = data['overview'].url; @@ -91,16 +106,25 @@ class ListItem extends React.Component { else if (data[key].hasOwnProperty('overview')) { if (data[key]['overview'].url.indexOf(`/${name}/overview/`) !== -1) overviewLink = data[key]['overview'].url; + } else { + overviewLink = data [key].url; + if(overviewLink == undefined){ + if(key != "leftNavTitle") + overviewLink = data [key] [Object.keys(data [key])[0]].url; + else + overviewLink = data[Object.keys(data).reverse()[0]].url; + } + } }) return (