From b68b85cad2bcc8bfb69e7af1b8a9029a9e018977 Mon Sep 17 00:00:00 2001 From: Adel LAKHDAR <alakhdar@grandlyon.com> Date: Mon, 22 Apr 2024 09:04:14 +0000 Subject: [PATCH] fix(UI): fix newsletter form --- src/app/form/footer-form/footer-form.component.ts | 3 +-- .../form-view/account-form/account-form.component.html | 6 +----- .../form/form-view/account-form/account-form.component.ts | 5 +---- .../account-newsletter/account-newsletter.component.html | 4 ++-- .../account-newsletter/account-newsletter.component.ts | 7 +++---- src/app/form/form-view/form-view.component.html | 2 -- src/app/form/form-view/form-view.component.ts | 6 +----- 7 files changed, 9 insertions(+), 24 deletions(-) diff --git a/src/app/form/footer-form/footer-form.component.ts b/src/app/form/footer-form/footer-form.component.ts index f74cea5bb..42f1c9a4e 100644 --- a/src/app/form/footer-form/footer-form.component.ts +++ b/src/app/form/footer-form/footer-form.component.ts @@ -25,7 +25,6 @@ export class FooterFormComponent { @Input() nbPagesForm: number; @Input() form: UntypedFormGroup; @Input() linkedStructureId: string[] = null; - @Input() acceptNewsletter: boolean; @Input() currentStep: stepType; @Input() hasOtherPersonalOffer: boolean; @Input() isPersonalOfferProfile: boolean; @@ -102,7 +101,7 @@ export class FooterFormComponent { user.structuresLink = this.linkedStructureId; try { await firstValueFrom(this.authService.register(user)); - if (this.acceptNewsletter) { + if (this.form.value.hasAcceptedNewsletter) { this.newsletterService.subscribe(user.email).subscribe(); } document.getElementsByClassName('page')[0].scrollTo(0, 0); diff --git a/src/app/form/form-view/account-form/account-form.component.html b/src/app/form/form-view/account-form/account-form.component.html index c6d69a41d..4c8b83fad 100644 --- a/src/app/form/form-view/account-form/account-form.component.html +++ b/src/app/form/form-view/account-form/account-form.component.html @@ -12,11 +12,7 @@ /> </ng-container> <ng-container *ngIf="currentStep === accountFormStepEnum.accountNewsletter"> - <app-account-newsletter - [accountForm]="accountForm" - [profile]="profile" - (acceptNewsletter)="acceptReceiveNewsletter($event)" - /> + <app-account-newsletter [accountForm]="accountForm" [profile]="profile" (validateForm)="setValidationsForm()" /> </ng-container> <ng-container *ngIf="currentStep === accountFormStepEnum.confirmEmailSentInfo"> <app-information-step [step]="accountFormStepEnum.confirmEmailSentInfo" [formType]="formType.account" /> diff --git a/src/app/form/form-view/account-form/account-form.component.ts b/src/app/form/form-view/account-form/account-form.component.ts index f944c1b24..a16940f4a 100644 --- a/src/app/form/form-view/account-form/account-form.component.ts +++ b/src/app/form/form-view/account-form/account-form.component.ts @@ -50,7 +50,7 @@ export class AccountFormComponent implements OnInit, OnChanges { this.accountForm.get('confirmPassword').valid, }; this.pagesValidation[accountFormStep.accountNewsletter] = { - valid: true, + valid: this.accountForm.get('hasAcceptedNewsletter').value !== null, }; this.pagesValidation[accountFormStep.confirmEmailSentInfo] = { valid: true, @@ -74,7 +74,4 @@ export class AccountFormComponent implements OnInit, OnChanges { const isPageValid = this.pagesValidation[this.currentStep].valid; this.pageValid.emit(isPageValid); } - public acceptReceiveNewsletter(accept: boolean): void { - this.acceptNewsletter.emit(accept); - } } diff --git a/src/app/form/form-view/account-form/account-newsletter/account-newsletter.component.html b/src/app/form/form-view/account-form/account-newsletter/account-newsletter.component.html index 25656d575..b72dd3875 100644 --- a/src/app/form/form-view/account-form/account-newsletter/account-newsletter.component.html +++ b/src/app/form/form-view/account-form/account-newsletter/account-newsletter.component.html @@ -8,14 +8,14 @@ [id]="'yes'" [label]="'Oui'" [value]="true" - [selected]="userAcceptNewsletter" + [selected]="accountForm.get('hasAcceptedNewsletter').value === true" (click)="acceptReceiveNewsletter(true)" /> <app-radio-option [id]="'no'" [label]="'Non'" [value]="false" - [selected]="!userAcceptNewsletter" + [selected]="accountForm.get('hasAcceptedNewsletter').value === false" (click)="acceptReceiveNewsletter(false)" /> </div> diff --git a/src/app/form/form-view/account-form/account-newsletter/account-newsletter.component.ts b/src/app/form/form-view/account-form/account-newsletter/account-newsletter.component.ts index 952d50bd8..64c37f011 100644 --- a/src/app/form/form-view/account-form/account-newsletter/account-newsletter.component.ts +++ b/src/app/form/form-view/account-form/account-newsletter/account-newsletter.component.ts @@ -9,11 +9,10 @@ import { User } from '../../../../models/user.model'; export class AccountNewsletterComponent { @Input() accountForm: UntypedFormGroup; @Input() profile: User; - @Output() acceptNewsletter = new EventEmitter<any>(); - public userAcceptNewsletter = false; + @Output() validateForm = new EventEmitter<any>(); public acceptReceiveNewsletter(accepts: boolean): void { - this.userAcceptNewsletter = accepts; - this.acceptNewsletter.emit(accepts); + this.accountForm.get('hasAcceptedNewsletter').setValue(accepts); + this.validateForm.emit(); } } diff --git a/src/app/form/form-view/form-view.component.html b/src/app/form/form-view/form-view.component.html index 4b92517b4..8c3a89528 100644 --- a/src/app/form/form-view/form-view.component.html +++ b/src/app/form/form-view/form-view.component.html @@ -25,7 +25,6 @@ [isAccountMode]="isAccountMode" (goNext)="nextPage()" (pageValid)="validatePage($event)" - (acceptNewsletter)="acceptReceiveNewsletter($event)" /> <app-profile-form *ngIf="formType[routeParam] === formType.profile" @@ -66,7 +65,6 @@ [form]="currentForm" [linkedStructureId]="linkedStructureId" [isValid]="isPageValid" - [acceptNewsletter]="userAcceptNewsletter" [hasOtherPersonalOffer]="hasOtherPersonalOffer" [isPersonalOfferProfile]="isPersonalOfferProfile" [isEditMode]="isEditMode" diff --git a/src/app/form/form-view/form-view.component.ts b/src/app/form/form-view/form-view.component.ts index fd71532be..bbff09df4 100644 --- a/src/app/form/form-view/form-view.component.ts +++ b/src/app/form/form-view/form-view.component.ts @@ -37,7 +37,6 @@ export class FormViewComponent implements OnInit, AfterViewInit { public formUtils = new FormUtils(); // Account Form public accountForm: UntypedFormGroup; - public userAcceptNewsletter: boolean; // Profile Form public profileForm: UntypedFormGroup; public isPersonalOfferProfile = false; @@ -214,6 +213,7 @@ export class FormViewComponent implements OnInit, AfterViewInit { Validators.pattern(CustomRegExp.PASSWORD), // NOSONAR ]), confirmPassword: new UntypedFormControl(''), + hasAcceptedNewsletter: new UntypedFormControl(null), }, [MustMatch('password', 'confirmPassword')], ); @@ -235,10 +235,6 @@ export class FormViewComponent implements OnInit, AfterViewInit { }); } - public acceptReceiveNewsletter(isAccepted: boolean): void { - this.userAcceptNewsletter = isAccepted; - } - private createPersonalOfferForm(personalOffer: PersonalOffer): void { this.personalOfferForm = new UntypedFormGroup({ categories: new UntypedFormGroup({ -- GitLab