mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-19 21:06:06 +00:00
53 lines
999 B
TypeScript
53 lines
999 B
TypeScript
import { Injectable } from '@angular/core';
|
|
import { NavigationEnd, Router, NavigationStart } from '@angular/router';
|
|
|
|
|
|
@Injectable({
|
|
providedIn: 'root'
|
|
})
|
|
export class RouteService {
|
|
|
|
history: any = [];
|
|
isGoBack = false;
|
|
|
|
constructor(
|
|
private router: Router,
|
|
) {
|
|
this.router.events.forEach((event) => {
|
|
if (event instanceof NavigationEnd) {
|
|
|
|
const lastRoute = this.history.slice(-1)
|
|
|
|
if(event.url != lastRoute) {
|
|
this.history.push(event.url)
|
|
}
|
|
|
|
}
|
|
});
|
|
|
|
window['RouteService'] = this
|
|
|
|
}
|
|
|
|
/**
|
|
* @param url [string] incase no history to go back
|
|
* @param option [Object] some options to the url
|
|
*/
|
|
goBack(url = null, option: object = {}) {
|
|
if(this.history.length >= 2) {
|
|
this.history.pop();
|
|
const goTo = this.history.pop();
|
|
this.isGoBack = true;
|
|
this.router.navigate([goTo]);
|
|
} else if(url) {
|
|
this.goTo({url})
|
|
}
|
|
|
|
}
|
|
|
|
goTo({url}) {
|
|
this.router.navigate([url]);
|
|
}
|
|
|
|
}
|