fix(datetime): warn when parsing an invalid date value (#25049)

This commit is contained in:
Sean Perkins
2022-04-05 12:12:13 -04:00
committed by GitHub
parent 83186598ed
commit 982dc853be
2 changed files with 24 additions and 9 deletions

View File

@ -1,5 +1,6 @@
import type { ComponentInterface, EventEmitter } from '@stencil/core';
import { Component, Element, Event, Host, Method, Prop, State, Watch, h, writeTask } from '@stencil/core';
import { printIonWarning } from '@utils/logging';
import { caretDownSharp, caretUpSharp, chevronBack, chevronDown, chevronForward } from 'ionicons/icons';
import { getIonMode } from '../../global/ionic-global';
@ -298,15 +299,20 @@ export class Datetime implements ComponentInterface {
* This allows us to update the current value's date/time display without
* refocusing or shifting the user's display (leaves the user in place).
*/
const { month, day, year, hour, minute } = parseDate(this.value);
this.activePartsClone = {
...this.activeParts,
month,
day,
year,
hour,
minute,
};
const valueDateParts = parseDate(this.value);
if (valueDateParts) {
const { month, day, year, hour, minute } = valueDateParts;
this.activePartsClone = {
...this.activeParts,
month,
day,
year,
hour,
minute,
};
} else {
printIonWarning(`Unable to parse date string: ${this.value}. Please provide a valid ISO 8601 datetime string.`);
}
}
this.emitStyle();

View File

@ -0,0 +1,9 @@
/**
* Logs a warning to the console with an Ionic prefix
* to indicate the library that is warning the developer.
*
* @param message - The string message to be logged to the console.
*/
export const printIonWarning = (message: string) => {
return console.warn(`[Ionic Warning]: ${message}`);
};