@@ -25,7 +25,10 @@ import {
2525 Subscription ,
2626} from 'rxjs' ;
2727import {
28+ distinctUntilChanged ,
29+ filter ,
2830 map ,
31+ startWith ,
2932 take ,
3033} from 'rxjs/operators' ;
3134
@@ -36,6 +39,7 @@ import { PaginatedList } from '../../../core/data/paginated-list.model';
3639import { RemoteData } from '../../../core/data/remote-data' ;
3740import { BrowseDefinition } from '../../../core/shared/browse-definition.model' ;
3841import { getFirstCompletedRemoteData } from '../../../core/shared/operators' ;
42+ import { isNotEmpty } from '../../empty.util' ;
3943
4044export interface ComColPageNavOption {
4145 id : string ;
@@ -122,13 +126,16 @@ export class ComcolPageBrowseByComponent implements OnDestroy, OnInit {
122126
123127 this . subs . push ( combineLatest ( [
124128 this . allOptions$ ,
125- this . router . events ,
126- ] ) . subscribe ( ( [ navOptions , scrollEvent ] : [ ComColPageNavOption [ ] , Scroll ] ) => {
127- if ( scrollEvent . type === EventType . Scroll ) {
128- for ( const option of navOptions ) {
129- if ( option . routerLink === scrollEvent . routerEvent . urlAfterRedirects . split ( '?' ) [ 0 ] ) {
130- this . currentOption$ . next ( option ) ;
131- }
129+ this . router . events . pipe (
130+ startWith ( this . router ) ,
131+ filter ( ( next : Router | Scroll ) => ( isNotEmpty ( ( next as Router ) ?. url ) || ( next as Scroll ) ?. type === EventType . Scroll ) ) ,
132+ map ( ( next : Router | Scroll ) => ( next as Router ) ?. url || ( next as Scroll ) . routerEvent . urlAfterRedirects ) ,
133+ distinctUntilChanged ( ) ,
134+ ) ,
135+ ] ) . subscribe ( ( [ navOptions , url ] : [ ComColPageNavOption [ ] , string ] ) => {
136+ for ( const option of navOptions ) {
137+ if ( option . routerLink === url ?. split ( '?' ) [ 0 ] ) {
138+ this . currentOption$ . next ( option ) ;
132139 }
133140 }
134141 } ) ) ;
0 commit comments