/**
* External dependencies.
*/
import { format } from '@wordpress/date';
import { Component } from '@wordpress/element';
import { addFilter } from '@wordpress/hooks';
import { __ } from '@wordpress/i18n';
/**
* Internal dependencies.
*/
import './style.scss';
class DateTimeField extends Component {
/**
* Handles the change.
*
* @param {Date[]} selectedDates
* @param {string} selectedDateStr
* @return {void}
*/
handleChange = ( selectedDates, selectedDateStr ) => {
const {
id,
onChange,
value,
field
} = this.props;
const formattedDate = format( field.storage_format, selectedDateStr );
if ( formattedDate !== value ) {
onChange( id, formattedDate );
}
}
/**
* Renders the component.
*
* @return {Object}
*/
render() {
const { handleChange } = this;
const { children } = this.props;
return children( {
handleChange
} );
}
}
addFilter( 'carbon-fields.date_time.block', 'carbon-fields/blocks', ( OriginalDateTimeField ) => ( props ) => {
return (
{ ( {
handleChange
} ) => (
) }
);
} );
addFilter( 'carbon-fields.date.block', 'carbon-fields/blocks', ( OriginalDateField ) => ( props ) => {
return (
{ ( {
handleChange
} ) => (
) }
);
} );
addFilter( 'carbon-fields.time.block', 'carbon-fields/blocks', ( OriginalTimeField ) => ( props ) => {
return (
{ ( {
handleChange
} ) => (
) }
);
} );