mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-20 04:14:21 +08:00
fix(datetime): warn when parsing an invalid date value (#25049)
This commit is contained in:
@ -1,5 +1,6 @@
|
|||||||
import type { ComponentInterface, EventEmitter } from '@stencil/core';
|
import type { ComponentInterface, EventEmitter } from '@stencil/core';
|
||||||
import { Component, Element, Event, Host, Method, Prop, State, Watch, h, writeTask } 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 { caretDownSharp, caretUpSharp, chevronBack, chevronDown, chevronForward } from 'ionicons/icons';
|
||||||
|
|
||||||
import { getIonMode } from '../../global/ionic-global';
|
import { getIonMode } from '../../global/ionic-global';
|
||||||
@ -298,7 +299,9 @@ export class Datetime implements ComponentInterface {
|
|||||||
* This allows us to update the current value's date/time display without
|
* 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).
|
* refocusing or shifting the user's display (leaves the user in place).
|
||||||
*/
|
*/
|
||||||
const { month, day, year, hour, minute } = parseDate(this.value);
|
const valueDateParts = parseDate(this.value);
|
||||||
|
if (valueDateParts) {
|
||||||
|
const { month, day, year, hour, minute } = valueDateParts;
|
||||||
this.activePartsClone = {
|
this.activePartsClone = {
|
||||||
...this.activeParts,
|
...this.activeParts,
|
||||||
month,
|
month,
|
||||||
@ -307,6 +310,9 @@ export class Datetime implements ComponentInterface {
|
|||||||
hour,
|
hour,
|
||||||
minute,
|
minute,
|
||||||
};
|
};
|
||||||
|
} else {
|
||||||
|
printIonWarning(`Unable to parse date string: ${this.value}. Please provide a valid ISO 8601 datetime string.`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.emitStyle();
|
this.emitStyle();
|
||||||
|
9
core/src/utils/logging/index.ts
Normal file
9
core/src/utils/logging/index.ts
Normal 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}`);
|
||||||
|
};
|
Reference in New Issue
Block a user