@@ -85,37 +85,38 @@ export class BreadcrumbComponent {
8585 return items ;
8686 }
8787
88- if ( segments [ 1 ] === 'view' && segments [ 2 ] ) {
89- const proposalId = segments [ 2 ] ;
90- const proposalLabel = ( this . breadcrumbLabels . proposalTitle ( ) ?? '' ) . trim ( ) || `Proposal ${ proposalId } ` ;
88+ // segments[1] is proposal id (e.g. /proposals/123 or /proposals/123/version/456/edit)
89+ const proposalId = segments [ 1 ] ;
90+ if ( ! proposalId ) return items ;
91+
92+ const proposalLabel = ( this . breadcrumbLabels . proposalTitle ( ) ?? '' ) . trim ( ) || `Proposal ${ proposalId } ` ;
93+ items . push ( {
94+ label : proposalLabel ,
95+ routerLink : [ '/proposals' , proposalId ]
96+ } ) ;
97+
98+ if ( segments . length <= 2 ) return items ;
99+
100+ if ( segments [ 2 ] === 'version' && segments [ 3 ] ) {
101+ const versionId = segments [ 3 ] ;
102+ const versionSegmentLabel = ( this . breadcrumbLabels . versionLabel ( ) ?? '' ) . trim ( ) || `Version ${ versionId } ` ;
91103 items . push ( {
92- label : proposalLabel ,
93- routerLink : [ '/proposals/view ' , proposalId ]
104+ label : versionSegmentLabel ,
105+ routerLink : [ '/proposals' , proposalId , 'version' , versionId ]
94106 } ) ;
95107
96- if ( segments . length <= 3 ) return items ;
108+ if ( segments . length <= 4 ) return items ;
97109
98- if ( segments [ 3 ] === 'version' && segments [ 4 ] ) {
99- const versionId = segments [ 4 ] ;
100- const versionSegmentLabel = ( this . breadcrumbLabels . versionLabel ( ) ?? '' ) . trim ( ) || `Version ${ versionId } ` ;
110+ if ( segments [ 4 ] === 'edit' ) {
111+ items . push ( { label : 'Edit' , routerLink : [ '/proposals' , proposalId , 'version' , versionId , 'edit' ] } ) ;
112+ return items ;
113+ }
114+ if ( segments [ 4 ] === 'overlap' ) {
101115 items . push ( {
102- label : versionSegmentLabel ,
103- routerLink : [ '/proposals/view ' , proposalId , 'version' , versionId ]
116+ label : 'Similar Modules' ,
117+ routerLink : [ '/proposals' , proposalId , 'version' , versionId , 'overlap' ]
104118 } ) ;
105-
106- if ( segments . length <= 5 ) return items ;
107-
108- if ( segments [ 5 ] === 'edit' ) {
109- items . push ( { label : 'Edit' , routerLink : [ '/proposals/view' , proposalId , 'version' , versionId , 'edit' ] } ) ;
110- return items ;
111- }
112- if ( segments [ 5 ] === 'overlap' ) {
113- items . push ( {
114- label : 'Similar Modules' ,
115- routerLink : [ '/proposals/view' , proposalId , 'version' , versionId , 'overlap' ]
116- } ) ;
117- return items ;
118- }
119+ return items ;
119120 }
120121 }
121122
0 commit comments