txend-react-native-ui-datepicker
Version:
Customizable multi-date range datetime picker for React Native
76 lines (75 loc) • 3.34 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireWildcard(require("react"));
var _reactNative = require("react-native");
var _CalendarContext = require("../CalendarContext");
var _enums = require("../enums");
var _datetimepicker = _interopRequireDefault(require("@react-native-community/datetimepicker"));
var _utils = require("../utils");
var _dayjs = _interopRequireDefault(require("dayjs"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
const TimeSelector = () => {
const {
selectedDateTo,
selectedDate,
currentDate,
onSelectDateTo,
onSelectDate
} = (0, _CalendarContext.useCalendarContext)();
const [initialTime, setInitialTime] = (0, _react.useState)(new Date());
const handleTimeChange = time => {
setInitialTime(new Date(time));
const parsedTime = (0, _dayjs.default)(time);
const hours = parsedTime.hour();
const minutes = parsedTime.minute();
const newDate = (0, _utils.getDate)(selectedDate ? selectedDate : currentDate).hour(hours).minute(minutes);
const newDateTo = (0, _utils.getDate)(selectedDateTo ? selectedDateTo : currentDate).hour(hours).minute(minutes);
onSelectDate((0, _utils.getFormated)(newDate));
onSelectDateTo((0, _utils.getFormated)(newDateTo), selectedDate);
};
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
style: styles.container,
testID: "time-selector"
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
style: styles.timePickerContainer
}, /*#__PURE__*/_react.default.createElement(_datetimepicker.default, {
textColor: "white",
style: styles.timePickerStyle,
testID: "dateTimePicker",
themeVariant: "dark",
value: initialTime,
mode: "time",
display: "spinner",
is24Hour: true,
onChange: value => {
handleTimeChange(value.nativeEvent.timestamp);
}
})));
};
const styles = _reactNative.StyleSheet.create({
container: {
flex: 1,
alignItems: 'center',
justifyContent: 'center'
},
timePickerContainer: {
backgroundColor: 'rgba(118, 118, 128, 0.24)',
borderRadius: 10,
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'center',
width: 180,
height: _enums.CALENDAR_HEIGHT / 2
},
timePickerStyle: {
flex: 1,
height: _enums.CALENDAR_HEIGHT / 2
}
});
var _default = exports.default = TimeSelector;
//# sourceMappingURL=TimeSelector.js.map