Skip to content

Commit c1ad804

Browse files
committed
fix(datetime): clear out existing datetime data
Closes #6614
1 parent f7b1f37 commit c1ad804

File tree

4 files changed

+28
-2
lines changed

4 files changed

+28
-2
lines changed

src/components/datetime/test/basic/index.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,18 @@ class E2EPage {
2727
'l\u00f8r'
2828
];
2929

30-
onChange(ev) {
30+
onChange(ev: any) {
3131
console.log("Changed", ev);
3232
}
3333

34-
onCancel(ev) {
34+
onCancel(ev: any) {
3535
console.log("Canceled", ev);
3636
}
3737

38+
clearLeapYear() {
39+
this.leapYearsSummerMonths = null;
40+
}
41+
3842
}
3943

4044

src/components/datetime/test/basic/main.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,6 @@
6868
<code>Leap year, summer months: {{leapYearsSummerMonths}}</code><br>
6969
</p>
7070

71+
<button (click)="clearLeapYear()">Clear Leap Years</button>
72+
7173
</ion-content>

src/components/datetime/test/datetime.spec.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -442,6 +442,20 @@ describe('DateTime', () => {
442442
expect(datetime.getValue()).toEqual({});
443443
});
444444

445+
it('should clear out existing value with blank value', () => {
446+
datetime.setValue('1994-12-15T13:47:20.789Z');
447+
datetime.setValue(null);
448+
expect(datetime.getValue()).toEqual({});
449+
450+
datetime.setValue('1994-12-15T13:47:20.789Z');
451+
datetime.setValue(undefined);
452+
expect(datetime.getValue()).toEqual({});
453+
454+
datetime.setValue('1994-12-15T13:47:20.789Z');
455+
datetime.setValue('');
456+
expect(datetime.getValue()).toEqual({});
457+
});
458+
445459
it('should not parse a value with blank value', () => {
446460
datetime.setValue(null);
447461
expect(datetime.getValue()).toEqual({});

src/util/datetime-util.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,12 @@ export function updateDate(existingData: DateTimeData, newData: any) {
261261

262262
// eww, invalid data
263263
console.warn(`Error parsing date: "${newData}". Please provide a valid ISO 8601 datetime format: https://www.w3.org/TR/NOTE-datetime`);
264+
265+
} else {
266+
// blank data, clear everything out
267+
for (var k in existingData) {
268+
delete existingData[k];
269+
}
264270
}
265271
}
266272

0 commit comments

Comments
 (0)