@@ -102,60 +102,38 @@ export const openFolderBreadcrumbs = () => html`
102102 < ul class ="breadcrumb " id ="nav ">
103103 < li > < a id ="home "> Files</ a > </ li >
104104 </ ul >
105- < mgt-file-list > </ mgt-file-list >
105+ < mgt-file-list id =" parent-file-list " > </ mgt-file-list >
106106
107107 < script type ="module ">
108- const fileList = document . querySelector ( 'mgt -file-list') ;
108+ const fileList = document . getElementById ( 'parent -file-list') ;
109109 const nav = document . getElementById ( 'nav' ) ;
110- const home = document . getElementById ( 'home' ) ;
111-
112- let homeListId ;
113- if ( fileList . itemId ) {
114- homeListId = fileList . itemId ;
115- } else {
116- homeListId = null ;
117- }
118-
119- // handle default file list menu item
120- home . addEventListener ( 'click' , e => {
121- fileList . itemId = homeListId ;
122- removeListItems ( 1 ) ;
123- } ) ;
124110
125111 // handle create and remove menu items
126112 fileList . addEventListener ( 'itemClick' , e => {
127113 if ( e . detail && e . detail . folder ) {
128114 const id = e . detail . id ;
129115 const name = e . detail . name ;
130-
131- // render new file list
132- fileList . itemId = id ;
133-
134- // create breadcrumb menu item
135- const li = document . createElement ( 'li' ) ;
136- const a = document . createElement ( 'a' ) ;
137- li . setAttribute ( 'id' , id ) ;
138- a . appendChild ( document . createTextNode ( name ) ) ;
139- li . appendChild ( a ) ;
140- nav . appendChild ( li ) ;
141-
142- // remove breadcrumb menu items and render file list based on clicked item
143- a . addEventListener ( 'click' , e => {
144- const nodes = Array . from ( nav . children ) ;
145- const index = nodes . indexOf ( li ) ;
146- if ( e . target ) {
147- removeListItems ( index + 1 ) ;
148- fileList . itemId = li . id ;
116+ const breadcrumbId = "breadcrumb-" + id ;
117+
118+ // check if it is set
119+ const breadcrumbSet = document . getElementById ( breadcrumbId ) ;
120+ if ( ! breadcrumbSet ) {
121+ // create breadcrumb menu item
122+ const li = document . createElement ( 'li' ) ;
123+ const a = document . createElement ( 'a' ) ;
124+ li . setAttribute ( 'id' , breadcrumbId ) ;
125+ a . appendChild ( document . createTextNode ( name ) ) ;
126+ li . appendChild ( a ) ;
127+ if ( nav . children . length > 1 ) {
128+ const firstBreadcrumb = nav . children [ 0 ] ;
129+ nav . replaceChildren ( firstBreadcrumb ) ;
149130 }
150- } ) ;
131+ nav . appendChild ( li ) ;
132+ } else {
133+ breadcrumbSet . remove ( ) ;
134+
135+ }
151136 }
152137 } ) ;
153-
154- // remove li of ul where index is larger than n
155- function removeListItems ( n ) {
156- while ( nav . getElementsByTagName ( 'li' ) . length > n ) {
157- nav . removeChild ( nav . lastChild ) ;
158- }
159- }
160138 </ script >
161139 ` ;
0 commit comments