From bb4df7eff32aba6149ca9ddff7c29c002905c7fc Mon Sep 17 00:00:00 2001 From: Dave Smith Date: Fri, 25 Jan 2019 15:54:55 +0000 Subject: [PATCH] Fixes propagating invalid dates as queryFilter change MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously strings such as “InvalidDate” were being propagated upwards with `onQueryFiltersChange`. This caused logic errors further up the component tree. Fixed by checking date validity prior to propagating. --- .../media-library/external-media-header.jsx | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/client/my-sites/media-library/external-media-header.jsx b/client/my-sites/media-library/external-media-header.jsx index f658c25e77e71..71c4c5c576c4d 100644 --- a/client/my-sites/media-library/external-media-header.jsx +++ b/client/my-sites/media-library/external-media-header.jsx @@ -115,16 +115,25 @@ class MediaLibraryExternalHeader extends React.Component { } ); }; - onDateChange = ( startDate, endDate ) => { + onDateChange = ( startDate = null, endDate = null ) => { const requiredDateFormat = 'YYYY-MM-DD'; - const filterStartDate = this.props.moment( startDate ).format( requiredDateFormat ); - const filterEndDate = this.props.moment( endDate ).format( requiredDateFormat ); + const dateRange = {}; + + // Parse both dates into Moment + const momentStartDate = this.props.moment( startDate ); + const momentEndDate = this.props.moment( endDate ); + + // Only add date to range if it is valid - can be null + if ( momentStartDate && momentStartDate.isValid() ) { + dateRange.from = momentStartDate.format( requiredDateFormat ); + } + + if ( momentEndDate && momentEndDate.isValid() ) { + dateRange.to = momentEndDate.format( requiredDateFormat ); + } this.props.onQueryFiltersChange( { - dateRange: { - from: filterStartDate, - to: filterEndDate, - }, + dateRange, } ); };