Skip to content

Commit

Permalink
Merge 4da8dc4 into f3f79a6
Browse files Browse the repository at this point in the history
  • Loading branch information
dineeek committed May 19, 2023
2 parents f3f79a6 + 4da8dc4 commit 2b6ef2c
Showing 1 changed file with 11 additions and 8 deletions.
19 changes: 11 additions & 8 deletions libs/ngx-pass-code/src/lib/component/pass-code.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {
OnInit
} from '@angular/core'
import {
AbstractControl,
ControlValueAccessor,
FormArray,
FormControl,
Expand Down Expand Up @@ -110,8 +111,12 @@ export class PassCodeComponent
return errors.length ? errors : null
}

private get parentControl(): AbstractControl<any, any> {
return this.controlDirective.control as AbstractControl<any, any>
}

private setSyncValidatorsFromParent(): void {
const parentValidators = this.controlDirective.control.validator
const parentValidators = this.parentControl.validator

if (!parentValidators) {
return
Expand All @@ -124,14 +129,12 @@ export class PassCodeComponent
}

private updateParentControlValidation(): void {
const parentControl = this.controlDirective.control

if (!parentControl) {
if (!this.parentControl) {
return
}

parentControl.setValidators(this.validate.bind(this))
parentControl.updateValueAndValidity({ emitEvent: false })
this.parentControl.setValidators(this.validate.bind(this))
this.parentControl.updateValueAndValidity({ emitEvent: false })
}

private propagateModelValueToView(value: string): void {
Expand Down Expand Up @@ -187,14 +190,14 @@ export class PassCodeComponent
private updateCodeValidity(): void {
const allControlsAreInvalid = this.validate()?.['length'] === this.length
this.isCodeInvalid = allControlsAreInvalid && this.passCodes.dirty
this.controlDirective.control.updateValueAndValidity({ emitEvent: false })
this.parentControl.updateValueAndValidity({ emitEvent: false })
}

private disableControls(isDisabled: boolean): void {
isDisabled
? this.passCodes.disable({ emitEvent: false })
: this.passCodes.enable({ emitEvent: false })

this.controlDirective.control.updateValueAndValidity({ emitEvent: false })
this.parentControl.updateValueAndValidity({ emitEvent: false })
}
}

0 comments on commit 2b6ef2c

Please sign in to comment.