diff --git a/src/DatePicker/__stories__/__snapshots__/DatePicker.stories.storyshot b/src/DatePicker/__stories__/__snapshots__/DatePicker.stories.storyshot index ea620b4cf..8e0c10d5d 100644 --- a/src/DatePicker/__stories__/__snapshots__/DatePicker.stories.storyshot +++ b/src/DatePicker/__stories__/__snapshots__/DatePicker.stories.storyshot @@ -628,7 +628,7 @@ Array [ onKeyPress={[Function]} placeholder="DD/MM/YYYY - DD/MM/YYYY" type="text" - value="14/06/2020 - 18/06/2020" + value="" /> { let time = {}; - let timeArray = value.split(':'); + let timeArray = []; + if (value.includes(this.props.localizedText.meridiemAM) || value.includes(this.props.localizedText.meridiemPM)) { + let splitBySpace = value.trim().match(/^(\S+)\s(.*)/).slice(1); + let timeMerideim = splitBySpace[1]; + timeArray = splitBySpace[0].split(':'); + timeArray.push(timeMerideim); + } else { + timeArray = value.trim().split(':'); + } if (typeof timeArray[0] !== 'undefined' && this.props.showHour) { time.hour = this.formatWithLeadingZero(timeArray[0]); } @@ -93,9 +101,15 @@ class TimePicker extends Component { time.minute = this.formatWithLeadingZero(timeArray[1]); } if (typeof timeArray[2] !== 'undefined' && this.props.showSecond) { - time.second = this.formatWithLeadingZero(timeArray[2].match(/\d+/)[0]); + if ((timeArray[2] !== this.props.localizedText.meridiemPM) && timeArray[2] !== this.props.localizedText.meridiemAM) { + time.second = this.formatWithLeadingZero(timeArray[2].match(/\d+/)[0]); + } + if (this.props.format12Hours) { + time.meridiem = timeArray[timeArray.length - 1].indexOf(this.props.localizedText.meridiemAM) !== -1 ? 0 : 1; + } + } else { if (this.props.format12Hours) { - time.meridiem = timeArray[2].indexOf(this.props.localizedText.meridiemAM) !== -1 ? 0 : 1; + time.meridiem = timeArray[timeArray.length - 1].indexOf(this.props.localizedText.meridiemAM) !== -1 ? 0 : 1; } } return time; diff --git a/src/TimePicker/TimePicker.test.js b/src/TimePicker/TimePicker.test.js index ed8a842cc..5c29762bc 100644 --- a/src/TimePicker/TimePicker.test.js +++ b/src/TimePicker/TimePicker.test.js @@ -96,6 +96,20 @@ describe('', () => { expect(wrapper.children().state('value')).toEqual('00:24:00 am'); + // just hour and minute, 12 hr format with pm + wrapper = mount( + + ); + wrapper + .find('input[type="text"]') + .at(0) + .simulate('change', { target: { value: '10:30 pm' } }); + + expect(wrapper.children().state('value')).toEqual('10:30 pm'); // just hour and minute, no 12 hr format wrapper = mount(