diff --git a/core/src/components/datetime/readme.md b/core/src/components/datetime/readme.md index 4aa0882152..bf2709dfe7 100644 --- a/core/src/components/datetime/readme.md +++ b/core/src/components/datetime/readme.md @@ -276,10 +276,7 @@ interface DatetimeCustomEvent extends CustomEvent { -``` -**component.html** -```html @@ -287,17 +284,52 @@ interface DatetimeCustomEvent extends CustomEvent { Reset + + + + Date + {{ dateValue }} + + + + + + + + + + + + + + + + + + + ``` -**component.ts** ```typescript - import { Component, ViewChild } from '@angular/core'; import { IonDatetime } from '@ionic/angular'; +import { format, parseISO } from 'date-fns'; @Component({…}) export class MyComponent { @ViewChild(IonDatetime, { static: true }) datetime: IonDatetime; + + dateValue = ''; + dateValue2 = ''; + constructor() {} confirm() { @@ -307,6 +339,10 @@ export class MyComponent { reset() { this.datetime.nativeEl.reset(); } + + formatDate(value: string) { + return format(parseISO(value), 'MMM dd yyyy'); + } } ``` @@ -374,16 +410,51 @@ export class MyComponent { + + + Date + + + + + + + + + + + + + + + + +``` + ```javascript +import { format, parseISO } from 'date-fns'; + const datetime = document.querySelector('#custom-datetime'); const confirm = () => { datetime.confirm(); -} +}; const reset = () => { datetime.reset(); -} +}; + +const formatDate = (value: string) => { + return format(parseISO(value), 'MMM dd yyyy'); +}; + +const popoverDatetime = document.querySelector('#popover-datetime'); +const dateInput = document.querySelector('#date-input'); +popoverDatetime.addEventListener('ionChange', ev => dateInput.innerText = formatDate(ev.detail.value)); + +const popoverDatetime2 = document.querySelector('#popover-datetime-2'); +const dateInput2 = document.querySelector('#date-input-2'); +popoverDatetime2.addEventListener('ionChange', ev => dateInput2.value = formatDate(ev.detail.value)); ``` @@ -396,24 +467,36 @@ import { IonButtons, IonContent, IonDatetime, + IonInput, + IonItem, IonModal, - IonPage + IonPage, + IonPopover } from '@ionic/react'; +import { calendar } from 'ionicons/icons'; +import { format, parseISO } from 'date-fns'; export const DateTimeExamples: React.FC = () => { - const [selectedDate, setSelectedDate] = useState('2012-12-15T13:47:20.789'); + const [selectedDate, setSelectedDate] = useState('2012-12-15T13:47:20.789'); + const [popoverDate, setPopoverDate] = useState(''); + const [popoverDate2, setPopoverDate2] = useState(''); + const customDatetime = useRef(); const confirm = () => { if (customDatetime === undefined) return; customDatetime.confirm(); - } + }; const reset = () => { if (customDatetime === undefined) return; customDatetime.reset(); - } + }; + + const formatDate = (value: string) => { + return format(parseISO(value), 'MMM dd yyyy'); + }; return ( @@ -476,6 +559,32 @@ export const DateTimeExamples: React.FC = () => { + + {/* Datetime in popover with cover element */} + + Date + {popoverDate} + + setPopoverDate(formatDate(ev.detail.value!))} + /> + + + + {/* Datetime in popover with input */} + + + + + + + setPopoverDate2(formatDate(ev.detail.value!))} + /> + + ) } @@ -486,6 +595,7 @@ export const DateTimeExamples: React.FC = () => { ```javascript import { Component, h } from '@stencil/core'; +import { format, parseISO } from 'date-fns'; @Component({ tag: 'datetime-example', @@ -493,6 +603,8 @@ import { Component, h } from '@stencil/core'; }) export class DatetimeExample { private customDatetime?: HTMLElement; + private dateInput?: HTMLElement; + private dateInput2?: HTMLElement; private confirm() { const { customDatetime } = this; @@ -507,6 +619,10 @@ export class DatetimeExample { customDatetime.reset(); } + + private formatDate(value: string) { + return format(parseISO(value), 'MMM dd yyyy'); + } render() { return [ @@ -569,6 +685,32 @@ export class DatetimeExample { + + {/* Datetime in popover with cover element */} + + Date + this.dateInput = el}> + + this.dateInput.innerText = formatDate(ev.detail.value)} + /> + + + + {/* Datetime in popover with input */} + + this.dateInput2 = el}> + + + + + this.dateInput2.value = formatDate(ev.detail.value)} + /> + + ] } } @@ -638,6 +780,32 @@ export class DatetimeExample { + + + + Date + {{ date1 }} + + + + + + + + + + + + + + +