Skip to content

Commit 3777a33

Browse files
authored
Merge pull request #153 from raj-rathod/rajesh
feat:<Next Previous Route> #152 next and previous route feature add
2 parents dd7411d + 03a1a45 commit 3777a33

File tree

8 files changed

+90
-3
lines changed

8 files changed

+90
-3
lines changed

src/app/app.component.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@
66
<router-outlet></router-outlet>
77
</div>
88
</div>
9+
<app-previous-next-route></app-previous-next-route>
910
<app-footer></app-footer>
1011
</div>

src/app/app.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { PageNotFoundComponent } from './layout/page-not-found/page-not-found.co
1414
import { ServiceWorkerModule } from '@angular/service-worker';
1515
import { environment } from '../environments/environment';
1616
import { BreadcrumbsComponent } from './layout/breadcrumbs/breadcrumbs.component';
17+
import { PreviousNextRouteComponent } from './layout/previous-next-route/previous-next-route.component';
1718

1819

1920
@NgModule({
@@ -26,6 +27,7 @@ import { BreadcrumbsComponent } from './layout/breadcrumbs/breadcrumbs.component
2627
NavbarComponent,
2728
PageNotFoundComponent,
2829
BreadcrumbsComponent,
30+
PreviousNextRouteComponent,
2931
],
3032
imports: [
3133
FormsModule,

src/app/layout/breadcrumbs/breadcrumbs.component.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Component, ElementRef, OnInit } from '@angular/core';
1+
import { Component, OnInit } from '@angular/core';
22
import { NavigationEnd, Router, Event as NavigationEvent } from '@angular/router';
33
import { Helper } from 'src/app/helper/helper';
44
import { RouterLinkData } from 'src/app/shared/interfaces/meta-data.interface';
@@ -13,7 +13,6 @@ export class BreadcrumbsComponent implements OnInit {
1313
selectedRoute = -1;
1414
constructor(
1515
private router: Router,
16-
private elRef: ElementRef,
1716
) { }
1817

1918
ngOnInit(): void {

src/app/layout/footer/footer.component.css

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
.margin-top{
2-
margin-top: 90px;
2+
margin-top: 20px;
33
}
44
.social-media{
55
background: white;
@@ -23,6 +23,7 @@
2323
color: black !important;
2424
text-decoration: none;
2525
}
26+
2627
@media(max-width:992px) {
2728
.image-size{
2829
width: 150px;
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.margin-top{
2+
margin-top: 70px;
3+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<div class="container margin-top">
2+
<div class="d-flex justify-content-between" *ngIf="selectedRoute > -1">
3+
<div class="box p-lg-2 p-1 px-lg-3 px-2 tab" (click)="previousRoute()">
4+
<p class="m-0">Previous</p>
5+
</div>
6+
<div class="box p-lg-2 p-1 px-lg-3 px-2 tab" (click)="nextRoute()">
7+
<p class="m-0">Next</p>
8+
</div>
9+
</div>
10+
</div>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { ComponentFixture, TestBed } from '@angular/core/testing';
2+
3+
import { PreviousNextRouteComponent } from './previous-next-route.component';
4+
5+
describe('PreviousNextRouteComponent', () => {
6+
let component: PreviousNextRouteComponent;
7+
let fixture: ComponentFixture<PreviousNextRouteComponent>;
8+
9+
beforeEach(async () => {
10+
await TestBed.configureTestingModule({
11+
declarations: [ PreviousNextRouteComponent ]
12+
})
13+
.compileComponents();
14+
});
15+
16+
beforeEach(() => {
17+
fixture = TestBed.createComponent(PreviousNextRouteComponent);
18+
component = fixture.componentInstance;
19+
fixture.detectChanges();
20+
});
21+
22+
it('should create', () => {
23+
expect(component).toBeTruthy();
24+
});
25+
});
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import { Component, OnInit } from '@angular/core';
2+
import { NavigationEnd, Router, Event as NavigationEvent } from '@angular/router';
3+
import { Helper } from 'src/app/helper/helper';
4+
import { RouterLinkData } from 'src/app/shared/interfaces/meta-data.interface';
5+
6+
@Component({
7+
selector: 'app-previous-next-route',
8+
templateUrl: './previous-next-route.component.html',
9+
styleUrls: ['./previous-next-route.component.css']
10+
})
11+
export class PreviousNextRouteComponent implements OnInit {
12+
routersData: RouterLinkData[] = Helper.allRoutesData();
13+
selectedRoute = -1;
14+
constructor(
15+
private router: Router,
16+
) { }
17+
18+
ngOnInit(): void {
19+
this.router.events
20+
.subscribe(
21+
(event: NavigationEvent) => {
22+
if(event instanceof NavigationEnd) {
23+
const url = event.url;
24+
const index = this.routersData.findIndex(data => data.route === url);
25+
this.selectedRoute = index;
26+
}
27+
});
28+
}
29+
30+
previousRoute(): void{
31+
if(this.selectedRoute-1 > -1){
32+
this.router.navigate([this.routersData[this.selectedRoute-1].route]);
33+
}else{
34+
this.router.navigate(['/']);
35+
}
36+
}
37+
38+
nextRoute(): void{
39+
if((this.selectedRoute + 1) < this.routersData.length){
40+
this.router.navigate([this.routersData[this.selectedRoute+1].route]);
41+
}else{
42+
this.router.navigate([this.routersData[this.selectedRoute].route]);
43+
}
44+
}
45+
46+
}

0 commit comments

Comments
 (0)