Merge remote-tracking branch 'origin/uate' into uate

This commit is contained in:
2026-07-28 10:53:26 +05:30
23 changed files with 305 additions and 101 deletions
@@ -111,6 +111,12 @@ export class CreateClientComponent {
this.route.data.subscribe((data: { clientTemplate: any; clientAddressFieldConfig: any }) => {
this.clientTemplate = data.clientTemplate;
this.clientAddressFieldConfig = data.clientAddressFieldConfig;
// This app's RouteReusableStrategy keeps this SAME component instance alive across
// repeat visits to /clients/create, so ngOnInit/constructor won't re-run for a second
// "create new client" session — reset transient state here instead, since `route.data`
// re-emits on every navigation regardless of whether the component was reused. Must run
// BEFORE setDatatables(), which reads legalFormType to filter clientTemplate.datatables.
this.resetForNewClient();
this.setDatatables();
});
// Read pre-fill data set by "Create as Client" from a manual family member
@@ -121,6 +127,20 @@ export class CreateClientComponent {
}
}
/** Resets session state that could otherwise leak between clients when the route is reused. */
private resetForNewClient(): void {
this.legalFormType = 1;
this.selectedTabIndex = 0;
this.createdClientId = '';
this.savingClient = false;
this.saveProgress = 0;
this.tabEditMode = {};
this.highestTabReached = 0;
this.validationError = '';
this.prefillData = null;
this.clientGeneralStep?.resetForNewClient();
}
/** Check if a tab is in read-only mode (completed tab navigated back to) */
isTabReadOnly(tabIndex: number): boolean {
// Only tabs that have been passed (below highest reached) AND not explicitly set to edit mode