diff --git a/src/app/profile/edit/edit.component.html b/src/app/profile/edit/edit.component.html index a943e19c140178247ec330d9a744b35dad187058..62a0118b7deb7e705ac1e669e2f130b2170494ab 100644 --- a/src/app/profile/edit/edit.component.html +++ b/src/app/profile/edit/edit.component.html @@ -13,14 +13,14 @@ [iconName]="'delete'" [size]="'small'" [wide]="true" - (action)="showDeleteAccountModal()" + (action)="isDeleteAccountModalOpen.set(true)" /> <app-icon-button ariaLabel="Supprimer mon compte" class="hide-on-desktop" [variant]="'secondaryDelete'" [iconName]="'delete'" - (action)="showDeleteAccountModal()" + (action)="isDeleteAccountModalOpen.set(true)" /> </div> <!-- Navigation --> @@ -78,7 +78,7 @@ [iconName]="'email'" [size]="'small'" [wide]="true" - (action)="showEmailModal()" + (action)="isEmailModalOpen.set(true)" /> <app-button [variant]="'secondary'" @@ -86,7 +86,7 @@ [iconName]="'lock'" [size]="'small'" [wide]="true" - (action)="showPasswordModal()" + (action)="isPasswordModalOpen.set(true)" /> </div> </div> @@ -138,9 +138,9 @@ <app-modal [singleButton]="true" [title]="'ATTENTION'" - [opened]="appointmentModal" + [opened]="isAppointmentModalOpen()" [validateLabel]="'OK'" - (closed)="closeAppointmentModal()" + (closed)="isAppointmentModalOpen.set(false)" > <p class="modalContent emphasized"> Veuillez indiquer si vous souhaitez proposer la fonctionnalité 'Demander un rendez-vous' dans l'onglet 'Employeur @@ -151,7 +151,7 @@ <!-- Some modifications are pending, confirm leaving --> <app-modal [title]="'ATTENTION'" - [opened]="pendingChangesModal" + [opened]="isPendingChangesModalOpen()" [validateLabel]="'Continuer'" (closed)="hasPendingChangesRedirectionAccepted($event ? true : false)" > @@ -161,7 +161,7 @@ <!-- Modal: Email change --> <app-modal [title]="'Modifier mon email'" - [opened]="emailModal" + [opened]="isEmailModalOpen()" [validateLabel]="'Valider'" [validateDisabled]="!(emailValid(this.newEmail) && newEmail === newEmailConfirm)" (closed)="$event ? confirm() : closeModal()" @@ -198,7 +198,7 @@ <!-- Modal: Password change --> <app-modal [title]="'Modifier mon mot de passe'" - [opened]="passwordModal" + [opened]="isPasswordModalOpen()" [validateDisabled]="!isPageValid()" (closed)="$event ? confirm() : closeModal()" > @@ -248,7 +248,7 @@ <!-- Modal: Delete account --> <app-modal [title]="'Supprimer mon compte'" - [opened]="deleteAccountModal" + [opened]="isDeleteAccountModalOpen()" [validateLabel]="'Valider'" [validateDisabled]="!passwordValid(oldPassword)" (closed)="$event ? confirmDeleteAccount() : closeModal()" diff --git a/src/app/profile/edit/edit.component.ts b/src/app/profile/edit/edit.component.ts index 5dee197e5c7d43437b7fff6abfc6a80cb4cee57f..cf4779b71a4a225124bbcdba3ecee45fe86b5d11 100644 --- a/src/app/profile/edit/edit.component.ts +++ b/src/app/profile/edit/edit.component.ts @@ -1,5 +1,5 @@ import { HttpErrorResponse } from '@angular/common/http'; -import { Component, Input, OnInit } from '@angular/core'; +import { Component, Input, OnInit, signal } from '@angular/core'; import { Router } from '@angular/router'; import { lastValueFrom } from 'rxjs'; import { Employer } from '../../models/employer.model'; @@ -61,13 +61,13 @@ export class EditComponent implements OnInit { public statusCode = 200; // Modal canExit var - public emailModal = false; - public passwordModal = false; - public deleteAccountModal = false; - public pendingChangesModal = false; + public isEmailModalOpen = signal(false); + public isPasswordModalOpen = signal(false); + public isDeleteAccountModalOpen = signal(false); + public isPendingChangesModalOpen = signal(false); private resolve: CanExitResolver; private canDeactivate = false; - public appointmentModal = false; + public isAppointmentModalOpen = signal(false); constructor( public profileService: ProfileService, @@ -204,18 +204,6 @@ export class EditComponent implements OnInit { this.userProfile = { ...this.initialUserProfile }; } - public showEmailModal(): void { - this.emailModal = true; - } - - public showPasswordModal(): void { - this.passwordModal = true; - } - - public showDeleteAccountModal(): void { - this.deleteAccountModal = true; - } - public showPassword(key: showPasswordEnum): void { this.isShowPassword[key] = !this.isShowPassword[key]; } @@ -224,18 +212,18 @@ export class EditComponent implements OnInit { this.oldPassword = ''; this.newPassword = ''; this.newPasswordConfirm = ''; - this.emailModal = false; - this.passwordModal = false; - this.deleteAccountModal = false; + this.isEmailModalOpen.set(false); + this.isPasswordModalOpen.set(false); + this.isDeleteAccountModalOpen.set(false); } public isPageValid(): boolean { if (this.currentTab === tabsEnum.details) { return this.coordsHaveChanged() && this.phoneValid() && this.nameValid() && this.surnameValid(); } else if (this.currentTab === tabsEnum.credentials) { - if (this.emailModal) { + if (this.isEmailModalOpen()) { return this.emailValid(this.newEmail) && this.newEmail === this.newEmailConfirm; - } else if (this.passwordModal) { + } else if (this.isPasswordModalOpen()) { return this.passwordValid(this.newPassword) && this.newPassword === this.newPasswordConfirm; } } else if (this.currentTab === tabsEnum.employer) { @@ -250,9 +238,9 @@ export class EditComponent implements OnInit { if (this.currentTab === tabsEnum.details) { this.confirmDetails(); } else if (this.currentTab === tabsEnum.credentials) { - if (this.emailModal) { + if (this.isEmailModalOpen()) { this.confirmNewEmail(); - } else if (this.passwordModal) { + } else if (this.isPasswordModalOpen()) { this.confirmNewPassword(); } } else if (this.currentTab === tabsEnum.employer) { @@ -417,7 +405,7 @@ export class EditComponent implements OnInit { return new Promise((resolve) => this.showPendingChangesModal(resolve)); } if (this.hasPersonalOffer && this.selectedRdvChoice === undefined) { - return new Promise(() => this.showAppointmentModal()); + return new Promise(() => this.isAppointmentModalOpen.set(true)); } return Promise.resolve(true); } @@ -459,18 +447,11 @@ export class EditComponent implements OnInit { } public showPendingChangesModal(resolve: CanExitResolver): void { - this.pendingChangesModal = true; + this.isPendingChangesModalOpen.set(true); this.resolve = resolve; } public hasPendingChangesRedirectionAccepted(hasAccept: boolean): void { this.resolve(hasAccept); - this.pendingChangesModal = false; - } - - private showAppointmentModal(): void { - this.appointmentModal = true; - } - public closeAppointmentModal(): void { - this.appointmentModal = false; + this.isPendingChangesModalOpen.set(false); } }