Skip to content

Commit 445c1c3

Browse files
committed
fix(predefined-ranges): render conditionally
1 parent e0a934f commit 445c1c3

File tree

2 files changed

+19
-21
lines changed

2 files changed

+19
-21
lines changed

src/components/date-range-picker/date-range-picker.common.spec.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -586,15 +586,14 @@ describe('Date range picker - common tests for single and two inputs mode', () =
586586
},
587587
];
588588

589-
it('should not render any chips when usePredefinedRanges is false and there are no custom ranges added', async () => {
589+
it('should not render the predefined ranges in the DOM when usePredefinedRanges is false and there are no custom ranges added', async () => {
590590
picker.open = true;
591591
await elementUpdated(picker);
592592

593-
const predefinedArea = picker.renderRoot.querySelectorAll(
593+
const predefinedArea = picker.renderRoot.querySelector(
594594
'igc-predefined-ranges-area'
595595
);
596-
const allRanges = (predefinedArea[0] as any)._allRanges;
597-
expect(allRanges.length).to.equal(0);
596+
expect(predefinedArea).to.be.null;
598597
});
599598

600599
it('should emit igcChange when predefined date is selected and should close the picker - dropdown mode', async () => {

src/components/date-range-picker/date-range-picker.ts

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1056,20 +1056,26 @@ export default class IgcDateRangePickerComponent extends FormAssociatedRequiredM
10561056
`;
10571057
}
10581058

1059+
protected _renderPredefinedRanges() {
1060+
const hasRanges = this.usePredefinedRanges || !isEmpty(this.customRanges);
1061+
return html`${hasRanges
1062+
? html`<igc-predefined-ranges-area
1063+
.usePredefinedRanges=${this.usePredefinedRanges}
1064+
.customRanges=${this.customRanges}
1065+
.resourceStrings=${this.resourceStrings}
1066+
@rangeSelect=${(e: CustomEvent<DateRangeValue>) =>
1067+
this._select(e.detail, this._isDropDown)}
1068+
>
1069+
</igc-predefined-ranges-area>`
1070+
: nothing}`;
1071+
}
1072+
10591073
protected _renderPicker(id: string) {
10601074
return this._isDropDown
10611075
? html`
10621076
<igc-popover ?open=${this.open} anchor="${id}" flip shift>
10631077
<igc-focus-trap ?disabled=${!this.open || this.disabled}>
1064-
${this._renderCalendar(id)}
1065-
<igc-predefined-ranges-area
1066-
.usePredefinedRanges=${this.usePredefinedRanges}
1067-
.customRanges=${this.customRanges}
1068-
.resourceStrings=${this.resourceStrings}
1069-
@rangeSelect=${(e: CustomEvent<DateRangeValue>) =>
1070-
this._select(e.detail, true)}
1071-
>
1072-
</igc-predefined-ranges-area>
1078+
${this._renderCalendar(id)} ${this._renderPredefinedRanges()}
10731079
${this._renderActions()}
10741080
</igc-focus-trap>
10751081
</igc-popover>
@@ -1086,14 +1092,7 @@ export default class IgcDateRangePickerComponent extends FormAssociatedRequiredM
10861092
exportparts="base: dialog-base, title, footer, overlay"
10871093
>
10881094
${this._renderCalendar(id)} ${this._renderActions()}
1089-
<igc-predefined-ranges-area
1090-
.usePredefinedRanges=${this.usePredefinedRanges}
1091-
.customRanges=${this.customRanges}
1092-
.resourceStrings=${this.resourceStrings}
1093-
@rangeSelect=${(e: CustomEvent<DateRangeValue>) =>
1094-
this._select(e.detail)}
1095-
>
1096-
</igc-predefined-ranges-area>
1095+
${this._renderPredefinedRanges()}
10971096
<igc-button
10981097
slot="footer"
10991098
@click=${this._dialogCancel}

0 commit comments

Comments
 (0)