UNPKG

react-native-booking-calendar

Version:
88 lines (84 loc) 2.35 kB
import React, { useEffect, useState } from 'react'; import { Dimensions, StyleSheet, Text, View } from 'react-native'; import Row from './Row'; const { width: windowWidth } = Dimensions.get('window'); const Time = ({ defaultRow, startTime, endTime, intervalMinutes, dateTime, date, fontColor, borderColor }) => { const [time, setTime] = useState(); useEffect(() => { const arr = []; const datetime = startTime; const startHour = startTime.getHours(); const endHour = endTime.getHours(); const endMinute = endTime.getMinutes(); arr.push(startTime.toTimeString().slice(0, 5)); const loop = (endHour - startHour) * 60 / intervalMinutes + endMinute; for (let i = 0; i < loop; i++) { datetime.setMinutes(datetime.getMinutes() + intervalMinutes); arr.push(datetime.toTimeString().slice(0, 5)); } setTime(arr); }, [startTime, endTime, intervalMinutes, dateTime]); return /*#__PURE__*/React.createElement(View, { style: TimeStyles.timeRowWrapper }, /*#__PURE__*/React.createElement(View, { style: TimeStyles.timeWrapper }, time === null || time === void 0 ? void 0 : time.map(item => /*#__PURE__*/React.createElement(View, { key: item, style: [TimeStyles.time, { borderColor: borderColor }] }, /*#__PURE__*/React.createElement(Text, { style: [TimeStyles.timeText, { color: fontColor }] }, item)))), /*#__PURE__*/React.createElement(View, { style: TimeStyles.markRows }, time === null || time === void 0 ? void 0 : time.map(t => /*#__PURE__*/React.createElement(View, { key: t, style: TimeStyles.rowWrapper }, date.map(eachDate => /*#__PURE__*/React.createElement(Row, { defaultRow: defaultRow, key: eachDate.date.toFormat('L/dd') + t, dateTimeObj: dateTime, date: eachDate.date, timeString: t, borderColor: borderColor })))))); }; const TimeStyles = StyleSheet.create({ timeRowWrapper: { flexDirection: 'row' }, timeWrapper: { width: windowWidth * 0.11 }, time: { borderTopWidth: 1, borderRightWidth: 1, height: 50, justifyContent: 'center', alignItems: 'center' }, timeText: { fontSize: 12 }, rowWrapper: { flexDirection: 'row' }, markRows: { flexDirection: 'column' } }); export default Time; //# sourceMappingURL=Time.js.map