From 7dbcaeea1b0b8e2350e5cac8f333ff53dd926f62 Mon Sep 17 00:00:00 2001 From: Alex Martzios Date: Wed, 17 Apr 2024 13:37:13 +0300 Subject: [PATCH] [master | DONE | ADDED] create custom route reuse strategy to avoid re-rendering component (MonitorComponent in this case) when not necessary --- src/app/app.module.ts | 3 +++ src/app/shared/custom-route-reuse-strategy.ts | 7 +++++++ src/assets/common-assets | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 src/app/shared/custom-route-reuse-strategy.ts diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 86d0fb3..d9c2ed0 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -18,6 +18,8 @@ import {SearchResearchResultsServiceModule} from "./openaireLibrary/services/sea import {SearchOrcidService} from "./openaireLibrary/claims/claim-utils/service/searchOrcid.service"; import {SearchOrcidServiceModule} from "./openaireLibrary/claims/claim-utils/service/searchOrcidService.module"; import {HelpPopUpModule} from './shared/help-pop-up/help-pop-up.module'; +import {RouteReuseStrategy} from '@angular/router'; +import {CustomRouteReuseStrategy} from './shared/custom-route-reuse-strategy'; @NgModule({ declarations: [ @@ -40,6 +42,7 @@ import {HelpPopUpModule} from './shared/help-pop-up/help-pop-up.module'; ], providers: [ SearchOrcidService, + {provide: RouteReuseStrategy, useClass: CustomRouteReuseStrategy}, {provide: APP_ID, useValue: 'irish-monitor'}, { provide: HTTP_INTERCEPTORS, diff --git a/src/app/shared/custom-route-reuse-strategy.ts b/src/app/shared/custom-route-reuse-strategy.ts new file mode 100644 index 0000000..05bc263 --- /dev/null +++ b/src/app/shared/custom-route-reuse-strategy.ts @@ -0,0 +1,7 @@ +import {ActivatedRouteSnapshot, BaseRouteReuseStrategy} from "@angular/router"; + +export class CustomRouteReuseStrategy extends BaseRouteReuseStrategy { + shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean { + return future.routeConfig === curr.routeConfig || (!!future.routeConfig?.component && future.routeConfig?.component === curr.routeConfig?.component) + } +} \ No newline at end of file diff --git a/src/assets/common-assets b/src/assets/common-assets index 8d2f834..4d41ba3 160000 --- a/src/assets/common-assets +++ b/src/assets/common-assets @@ -1 +1 @@ -Subproject commit 8d2f8348d8a601fad14844d920791fe7370bd4a2 +Subproject commit 4d41ba373dfb2dfd09ada4061bb1450dadb96993