From 1f8b91654c99d2fb4b7f48f6cfa4589ab546a668 Mon Sep 17 00:00:00 2001 From: devaskim Date: Fri, 10 Feb 2023 13:26:23 +0500 Subject: [PATCH] Optionally update dashboard state when using navigate back API. --- .../states/default-state-controller.component.ts | 13 +++++++++---- .../states/entity-state-controller.component.ts | 7 +++++-- .../states/state-controller.component.ts | 2 +- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/dashboard-page/states/default-state-controller.component.ts b/ui-ngx/src/app/modules/home/components/dashboard-page/states/default-state-controller.component.ts index 2e3f070a45..1abf5b8acd 100644 --- a/ui-ngx/src/app/modules/home/components/dashboard-page/states/default-state-controller.component.ts +++ b/ui-ngx/src/app/modules/home/components/dashboard-page/states/default-state-controller.component.ts @@ -168,10 +168,15 @@ export class DefaultStateControllerComponent extends StateControllerComponent im } } - public navigatePrevState(index: number): void { - if (index < this.stateObject.length - 1) { - this.stateObject.splice(index + 1, this.stateObject.length - index - 1); - this.gotoState(this.stateObject[this.stateObject.length - 1].id, true); + public navigatePrevState(index: number, params?: StateParams): void { + let lastIndex: number = this.stateObject.length - 1; + if (index < lastIndex) { + this.stateObject.splice(index + 1, lastIndex - 1); + lastIndex = this.stateObject.length - 1; + if (params) { + this.stateObject[lastIndex].params = params; + } + this.gotoState(this.stateObject[lastIndex].id, true); } } diff --git a/ui-ngx/src/app/modules/home/components/dashboard-page/states/entity-state-controller.component.ts b/ui-ngx/src/app/modules/home/components/dashboard-page/states/entity-state-controller.component.ts index 0e2e3350d0..776363ed6b 100644 --- a/ui-ngx/src/app/modules/home/components/dashboard-page/states/entity-state-controller.component.ts +++ b/ui-ngx/src/app/modules/home/components/dashboard-page/states/entity-state-controller.component.ts @@ -195,11 +195,14 @@ export class EntityStateControllerComponent extends StateControllerComponent imp } } - public navigatePrevState(index: number): void { + public navigatePrevState(index: number, params?: StateParams): void { if (index < this.stateObject.length - 1) { this.stateObject.splice(index + 1, this.stateObject.length - index - 1); this.selectedStateIndex = this.stateObject.length - 1; - this.gotoState(this.stateObject[this.stateObject.length - 1].id, true); + if (params) { + this.stateObject[this.selectedStateIndex].params = params; + } + this.gotoState(this.stateObject[this.selectedStateIndex].id, true); } } diff --git a/ui-ngx/src/app/modules/home/components/dashboard-page/states/state-controller.component.ts b/ui-ngx/src/app/modules/home/components/dashboard-page/states/state-controller.component.ts index 07ac550f13..6a9991209f 100644 --- a/ui-ngx/src/app/modules/home/components/dashboard-page/states/state-controller.component.ts +++ b/ui-ngx/src/app/modules/home/components/dashboard-page/states/state-controller.component.ts @@ -199,7 +199,7 @@ export abstract class StateControllerComponent implements IStateControllerCompon public abstract getStateParamsByStateId(stateId: string): StateParams; - public abstract navigatePrevState(index: number): void; + public abstract navigatePrevState(index: number, params?: StateParams): void; public abstract openState(id: string, params?: StateParams, openRightLayout?: boolean): void;