Skip to content

Commit

Permalink
- showOnlyTime, select time only
Browse files Browse the repository at this point in the history
  • Loading branch information
edwardxiao committed Sep 25, 2020
1 parent f64a35d commit d4587ed
Show file tree
Hide file tree
Showing 13 changed files with 64 additions and 26 deletions.
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ import 'react-minimal-datetime-range/lib/react-minimal-datetime-range.min.css';
onClear={() => console.log('onClear')}
style={{ width: '300px', margin: '0 auto' }}
placeholder={['Start Time', 'End Time']}
showOnlyTime={false} // default is false, only select time
////////////////////
// IMPORTANT DESC //
////////////////////
Expand Down Expand Up @@ -103,6 +104,8 @@ By providing ```window.REACT_MINIMAL_DATETIME_RANGE['customLocale']```, you can
date: 'Select date',
time: 'Select time',
confirm: 'Confirm',
start: 'Start',
end: 'End',
}
}
}
Expand Down
2 changes: 2 additions & 0 deletions example/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ import 'react-minimal-datetime-range/lib/react-minimal-datetime-range.min.css';
onConfirm={res => console.log(res)}
onClose={() => console.log('closed')}
style={{ width: '300px', margin: '0 auto' }}
// showOnlyTime={true} // default is false
/>
</div>
</div>
Expand All @@ -144,6 +145,7 @@ import 'react-minimal-datetime-range/lib/react-minimal-datetime-range.min.css';
show={false} // default is false
disabled={false} // default is false
allowPageClickToClose={true} // default is true
showOnlyTime={false} // default is false, only select time
onConfirm={res => console.log(res)}
onClose={() => console.log('onClose')}
onClear={() => console.log('onClear')}
Expand Down
8 changes: 5 additions & 3 deletions lib/components/RangeTime.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,16 @@ var Index = (0, _react.memo)(function (_ref) {
handleChooseEndTimeHour = _ref.handleChooseEndTimeHour,
handleChooseEndTimeMinute = _ref.handleChooseEndTimeMinute,
startTimePickedArray = _ref.startTimePickedArray,
endTimePickedArray = _ref.endTimePickedArray;
endTimePickedArray = _ref.endTimePickedArray,
showOnlyTime = _ref.showOnlyTime,
LOCALE_DATA = _ref.LOCALE_DATA;
return /*#__PURE__*/_react["default"].createElement("div", {
className: "react-minimal-datetime-range__time-select-wrapper"
}, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
className: "react-minimal-datetime-range__date"
}, startDatePickedArray.join('-')), /*#__PURE__*/_react["default"].createElement("div", {
}, showOnlyTime ? LOCALE_DATA['start'] : startDatePickedArray.join('-')), /*#__PURE__*/_react["default"].createElement("div", {
className: "react-minimal-datetime-range__date"
}, endDatePickedArray.join('-'))), /*#__PURE__*/_react["default"].createElement("div", {
}, showOnlyTime ? LOCALE_DATA['end'] : endDatePickedArray.join('-'))), /*#__PURE__*/_react["default"].createElement("div", {
className: "react-minimal-datetime-range__time-select-options-wrapper"
}, HOURS.map(function (i) {
var item = (0, _const.formatDateString)(i);
Expand Down
28 changes: 20 additions & 8 deletions lib/components/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -298,7 +298,9 @@ var RangePicker = (0, _react.memo)(function (_ref3) {
_ref3$onClose = _ref3.onClose,
onClose = _ref3$onClose === void 0 ? function () {} : _ref3$onClose,
_ref3$style = _ref3.style,
style = _ref3$style === void 0 ? {} : _ref3$style;
style = _ref3$style === void 0 ? {} : _ref3$style,
_ref3$showOnlyTime = _ref3.showOnlyTime,
showOnlyTime = _ref3$showOnlyTime === void 0 ? false : _ref3$showOnlyTime;
// ['YYYY-MM-DD', 'YYYY-MM-DD'] // ['hh:mm', 'hh:mm']
var isDefaultDatesValid = (0, _utils.isValidDates)(defaultDates);
var isInitialDatesValid = (0, _utils.isValidDates)(initialDates);
Expand Down Expand Up @@ -500,6 +502,12 @@ var RangePicker = (0, _react.memo)(function (_ref3) {
var isEmpty = (0, _react.useMemo)(function () {
return !start && !end;
}, [start, end]);
var valueStart = (0, _react.useMemo)(function () {
return showOnlyTime ? start.split(' ')[1] : start;
}, [showOnlyTime, start]);
var valueEnd = (0, _react.useMemo)(function () {
return showOnlyTime ? end.split(' ')[1] : end;
}, [showOnlyTime, end]);
return /*#__PURE__*/_react["default"].createElement("div", {
className: "react-minimal-datetime-range__range",
style: style
Expand All @@ -512,14 +520,14 @@ var RangePicker = (0, _react.memo)(function (_ref3) {
readOnly: true,
placeholder: placeholder[0],
className: "react-minimal-datetime-range__range-input ".concat(disabled && 'disabled'),
value: start
value: valueStart
}), /*#__PURE__*/_react["default"].createElement("span", {
className: "react-minimal-datetime-range__range-input-separator"
}, " ~ "), /*#__PURE__*/_react["default"].createElement("input", {
readOnly: true,
placeholder: placeholder[1],
className: "react-minimal-datetime-range__range-input ".concat(disabled && 'disabled'),
value: end
value: valueEnd
}), !isInitial && !isEmpty ? /*#__PURE__*/_react["default"].createElement("svg", {
className: "react-minimal-datetime-range__clear ".concat(disabled && 'disabled'),
width: "15",
Expand Down Expand Up @@ -568,7 +576,8 @@ var RangePicker = (0, _react.memo)(function (_ref3) {
currentDateObjStart: currentDateObjStart,
setCurrentDateObjStart: setCurrentDateObjStart,
currentDateObjEnd: currentDateObjEnd,
setCurrentDateObjEnd: setCurrentDateObjEnd
setCurrentDateObjEnd: setCurrentDateObjEnd,
showOnlyTime: showOnlyTime
})));
});
exports.RangePicker = RangePicker;
Expand Down Expand Up @@ -596,7 +605,8 @@ var RangePickerComponent = (0, _react.memo)(function (_ref6) {
currentDateObjStart = _ref6.currentDateObjStart,
setCurrentDateObjStart = _ref6.setCurrentDateObjStart,
currentDateObjEnd = _ref6.currentDateObjEnd,
setCurrentDateObjEnd = _ref6.setCurrentDateObjEnd;
setCurrentDateObjEnd = _ref6.setCurrentDateObjEnd,
showOnlyTime = _ref6.showOnlyTime;

var _useState31 = (0, _react.useState)(false),
_useState32 = _slicedToArray(_useState31, 2),
Expand Down Expand Up @@ -652,7 +662,7 @@ var RangePickerComponent = (0, _react.memo)(function (_ref6) {
setCurrentDateObjStart: setCurrentDateObjStart,
currentDateObjEnd: currentDateObjEnd,
setCurrentDateObjEnd: setCurrentDateObjEnd
}), type === TYPES[1] && /*#__PURE__*/_react["default"].createElement("div", {
}), (showOnlyTime || type === TYPES[1]) && /*#__PURE__*/_react["default"].createElement("div", {
className: "react-minimal-datetime-range__time-piker"
}, /*#__PURE__*/_react["default"].createElement(_RangeTime["default"], {
defaultTimeStart: times[0],
Expand All @@ -664,10 +674,12 @@ var RangePickerComponent = (0, _react.memo)(function (_ref6) {
handleChooseEndTimeHour: handleChooseEndTimeHour,
handleChooseEndTimeMinute: handleChooseEndTimeMinute,
startTimePickedArray: startTimePickedArray,
endTimePickedArray: endTimePickedArray
endTimePickedArray: endTimePickedArray,
showOnlyTime: showOnlyTime,
LOCALE_DATA: LOCALE_DATA
}))), /*#__PURE__*/_react["default"].createElement("div", {
className: "react-minimal-datetime-range__button-wrapper"
}, /*#__PURE__*/_react["default"].createElement("div", {
}, !showOnlyTime && /*#__PURE__*/_react["default"].createElement("div", {
className: (0, _utils.cx)('react-minimal-datetime-range__button', 'react-minimal-datetime-range__button--type', !selected && 'disabled'),
onClick: selected ? handleOnChangeType : function () {}
}, type === TYPES[0] ? LOCALE_DATA[TYPES[1]] : LOCALE_DATA[TYPES[0]]), /*#__PURE__*/_react["default"].createElement("div", {
Expand Down
8 changes: 6 additions & 2 deletions lib/components/locale.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ var locale = {
months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
date: 'Select date',
time: 'Select time',
confirm: 'Confirm'
confirm: 'Confirm',
start: 'Start',
end: 'End'
},
'zh-cn': {
today: '今天',
Expand All @@ -30,7 +32,9 @@ var locale = {
months: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
date: '选择日期',
time: '选择时间',
confirm: '确定'
confirm: '确定',
start: '开始',
end: '结束'
}
};

Expand Down
2 changes: 1 addition & 1 deletion lib/react-minimal-datetime-range.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion lib/react-minimal-datetime-range.js.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion lib/react-minimal-datetime-range.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion lib/react-minimal-datetime-range.min.js.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "react-minimal-datetime-range",
"version": "1.5.0",
"version": "1.6.0",
"description": "A react component for date time range picker.",
"main": "index.js",
"repository": {
Expand Down
6 changes: 4 additions & 2 deletions src/js/component/RangeTime.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,14 @@ const Index = memo(
handleChooseEndTimeMinute,
startTimePickedArray,
endTimePickedArray,
showOnlyTime,
LOCALE_DATA,
}) => {
return (
<div className="react-minimal-datetime-range__time-select-wrapper">
<div>
<div className="react-minimal-datetime-range__date">{startDatePickedArray.join('-')}</div>
<div className="react-minimal-datetime-range__date">{endDatePickedArray.join('-')}</div>
<div className="react-minimal-datetime-range__date">{showOnlyTime ? LOCALE_DATA['start'] : startDatePickedArray.join('-')}</div>
<div className="react-minimal-datetime-range__date">{showOnlyTime ? LOCALE_DATA['end'] : endDatePickedArray.join('-')}</div>
</div>
<div className="react-minimal-datetime-range__time-select-options-wrapper">
{HOURS.map(i => {
Expand Down
21 changes: 15 additions & 6 deletions src/js/component/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@ export const RangePicker = memo(
onClear = () => {},
onClose = () => {},
style = {},
showOnlyTime = false,
}) => {
// ['YYYY-MM-DD', 'YYYY-MM-DD'] // ['hh:mm', 'hh:mm']
const isDefaultDatesValid = isValidDates(defaultDates);
Expand Down Expand Up @@ -294,12 +295,14 @@ export const RangePicker = memo(
);
const isInitial = useMemo(() => start === `${initialDates[0]} ${initialTimes[0]}` && end === `${initialDates[1]} ${initialTimes[1]}`, [initialDates, initialTimes, start, end]);
const isEmpty = useMemo(() => !start && !end, [start, end]);
const valueStart = useMemo(() => (showOnlyTime ? start.split(' ')[1] : start), [showOnlyTime, start]);
const valueEnd = useMemo(() => (showOnlyTime ? end.split(' ')[1] : end), [showOnlyTime, end]);
return (
<div className="react-minimal-datetime-range__range" style={style}>
<span className={`react-minimal-datetime-range__range-input-wrapper ${disabled && 'disabled'}`} onClick={() => !disabled && setInternalShow(!internalShow)}>
<input readOnly={true} placeholder={placeholder[0]} className={`react-minimal-datetime-range__range-input ${disabled && 'disabled'}`} value={start} />
<input readOnly={true} placeholder={placeholder[0]} className={`react-minimal-datetime-range__range-input ${disabled && 'disabled'}`} value={valueStart} />
<span className="react-minimal-datetime-range__range-input-separator"> ~ </span>
<input readOnly={true} placeholder={placeholder[1]} className={`react-minimal-datetime-range__range-input ${disabled && 'disabled'}`} value={end} />
<input readOnly={true} placeholder={placeholder[1]} className={`react-minimal-datetime-range__range-input ${disabled && 'disabled'}`} value={valueEnd} />
{!isInitial && !isEmpty ? (
<svg className={`react-minimal-datetime-range__clear ${disabled && 'disabled'}`} width="15" height="15" viewBox="0 0 24 24" onClick={handleOnClear}>
<path
Expand Down Expand Up @@ -344,6 +347,7 @@ export const RangePicker = memo(
setCurrentDateObjStart={setCurrentDateObjStart}
currentDateObjEnd={currentDateObjEnd}
setCurrentDateObjEnd={setCurrentDateObjEnd}
showOnlyTime={showOnlyTime}
/>
)}
</div>
Expand Down Expand Up @@ -378,6 +382,7 @@ const RangePickerComponent = memo(
setCurrentDateObjStart,
currentDateObjEnd,
setCurrentDateObjEnd,
showOnlyTime,
}) => {
const [internalShow, setInternalShow] = useState(false);
useEffect(() => {
Expand Down Expand Up @@ -425,7 +430,7 @@ const RangePickerComponent = memo(
currentDateObjEnd={currentDateObjEnd}
setCurrentDateObjEnd={setCurrentDateObjEnd}
/>
{type === TYPES[1] && (
{(showOnlyTime || type === TYPES[1]) && (
<div className="react-minimal-datetime-range__time-piker">
<RangeTime
defaultTimeStart={times[0]}
Expand All @@ -438,14 +443,18 @@ const RangePickerComponent = memo(
handleChooseEndTimeMinute={handleChooseEndTimeMinute}
startTimePickedArray={startTimePickedArray}
endTimePickedArray={endTimePickedArray}
showOnlyTime={showOnlyTime}
LOCALE_DATA={LOCALE_DATA}
/>
</div>
)}
</div>
<div className="react-minimal-datetime-range__button-wrapper">
<div className={cx('react-minimal-datetime-range__button', 'react-minimal-datetime-range__button--type', !selected && 'disabled')} onClick={selected ? handleOnChangeType : () => {}}>
{type === TYPES[0] ? LOCALE_DATA[TYPES[1]] : LOCALE_DATA[TYPES[0]]}
</div>
{!showOnlyTime && (
<div className={cx('react-minimal-datetime-range__button', 'react-minimal-datetime-range__button--type', !selected && 'disabled')} onClick={selected ? handleOnChangeType : () => {}}>
{type === TYPES[0] ? LOCALE_DATA[TYPES[1]] : LOCALE_DATA[TYPES[0]]}
</div>
)}
<div className={cx('react-minimal-datetime-range__button', 'react-minimal-datetime-range__button--confirm', !selected && 'disabled')} onClick={selected ? handleOnConfirm : () => {}}>
{LOCALE_DATA['confirm']}
</div>
Expand Down
4 changes: 4 additions & 0 deletions src/js/component/locale.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ let locale = {
date: 'Select date',
time: 'Select time',
confirm: 'Confirm',
start: 'Start',
end: 'End',
},
'zh-cn': {
today: '今天',
Expand All @@ -22,6 +24,8 @@ let locale = {
date: '选择日期',
time: '选择时间',
confirm: '确定',
start: '开始',
end: '结束',
},
};

Expand Down

0 comments on commit d4587ed

Please sign in to comment.