Skip to content

Commit 0f86cf8

Browse files
refactor(date-range): workaround for igxInput setting required on AfterViewInit
1 parent 9161087 commit 0f86cf8

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

projects/igniteui-angular/src/lib/date-range-picker/date-range-picker.component.spec.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -775,19 +775,20 @@ export class DateRangeTestComponent implements OnInit {
775775
@Component({
776776
selector: 'igx-date-range-two-inputs-test',
777777
template: `
778-
<igx-date-range-picker [mode]="mode" [(ngModel)]="range">
778+
<igx-date-range-picker [mode]="mode" [(ngModel)]="range" required>
779779
<igx-date-range-start>
780-
<input igxInput igxDateTimeEditor type="text" required>
780+
<input igxInput igxDateTimeEditor type="text">
781781
</igx-date-range-start>
782782
<igx-date-range-end>
783-
<input igxInput igxDateTimeEditor type="text" required>
783+
<input igxInput igxDateTimeEditor type="text">
784784
</igx-date-range-end>
785785
</igx-date-range-picker>
786786
`
787787
})
788788
export class DateRangeTwoInputsTestComponent extends DateRangeTestComponent {
789789
startDate = new Date(2020, 1, 1);
790790
endDate = new Date(2020, 1, 4);
791+
range;
791792
}
792793

793794
@Component({

projects/igniteui-angular/src/lib/date-range-picker/date-range-picker.component.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ export class IgxDateRangePickerComponent extends DisplayDensityBase
394394
private get required(): boolean {
395395
if (this._ngControl && this._ngControl.control && this._ngControl.control.validator) {
396396
const error = this._ngControl.control.validator({} as AbstractControl);
397-
return error && error.required;
397+
return (error && error.required) ? true : false;
398398
}
399399

400400
return false;
@@ -609,7 +609,6 @@ export class IgxDateRangePickerComponent extends DisplayDensityBase
609609
subsToClicked();
610610

611611
this.setRequiredToInputs();
612-
// detect changes?
613612

614613
if (this._ngControl) {
615614
this._statusChanges$ = this._ngControl.statusChanges.subscribe(this.onStatusChanged.bind(this));
@@ -716,8 +715,11 @@ export class IgxDateRangePickerComponent extends DisplayDensityBase
716715
private setRequiredToInputs(): void {
717716
if (this.inputGroup && this.inputGroup.isRequired !== this.required) {
718717
this.inputGroup.isRequired = this.required;
719-
} else if (this.hasProjectedInputs) {
720-
this.projectedInputs.map(i => i.isRequired = this.required);
718+
} else if (this.hasProjectedInputs && this._ngControl) {
719+
// workaround for igxInput setting required
720+
Promise.resolve().then(() => {
721+
this.projectedInputs.map(i => i.isRequired = this.required);
722+
});
721723
}
722724
}
723725

0 commit comments

Comments
 (0)