diff --git a/src/app/form/footer-form/footer-form.component.ts b/src/app/form/footer-form/footer-form.component.ts index f74cea5bb71f617948053df17934d94b62660fd9..42f1c9a4e3449b821bc1fafd3f740be7187de921 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 c6d69a41d236a6c4ed5ee2464f1a1f501b5db3ae..4c8b83fadb82ef05343c76feffd26c5f35c04fa5 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 f944c1b249714b7acedabdf786a72b151f8468ec..a16940f4a85b39947fed0016dfcbc71be8e0350a 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 25656d5750eb5f2f829abc49ff06147b8860c183..b72dd38756c724eadba48ce907057e5d97495cdb 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 952d50bd8112cd4e819266599ec7a99929e4ff19..64c37f011c53d3395363cf828cfe3d94affc20c8 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 4b92517b4b06dc7d6204922485af368002596050..8c3a89528ec34991b8a449a29576fae58b35498d 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 fd71532bec513c49b336d141c10fcc3eff2da56f..bbff09df452667b65488264d2fc4405f7f43c33f 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({