sacg-cronogramas/src/app/utils/custom-route-reuse-strategy.ts
2025-05-05 12:41:48 -04:00

42 lines
1.3 KiB
TypeScript

import { RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router';
/**
* Estrategia personalizada que evita la reutilización de rutas
* para asegurar que los componentes se vuelvan a crear en cada navegación
*/
export class CustomRouteReuseStrategy implements RouteReuseStrategy {
/**
* No almacenar ninguna ruta al desactivarse
*/
shouldDetach(route: ActivatedRouteSnapshot): boolean {
return false;
}
/**
* No hay rutas almacenadas, así que esto nunca se llama
*/
store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle | null): void {}
/**
* No recuperar rutas almacenadas
*/
shouldAttach(route: ActivatedRouteSnapshot): boolean {
return false;
}
/**
* No hay rutas almacenadas, así que esto nunca se llama
*/
retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null {
return null;
}
/**
* No reutilizar rutas para forzar la recreación de componentes
*/
shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {
// Solo reutilizar si es la misma ruta exactamente (evita problemas con rutas anidadas)
return future.routeConfig === curr.routeConfig &&
JSON.stringify(future.params) === JSON.stringify(curr.params);
}
}