UNPKG

f-react-native-schedule

Version:

Flexible scheduling library with more built-in features and enhanced customization options

101 lines (81 loc) 2.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getCellDimensions = getCellDimensions; exports.getDays = getDays; exports.getHours = getHours; exports.getSchedulingSettings = getSchedulingSettings; exports.getScrollViewContainerWidth = getScrollViewContainerWidth; exports.isUndefined = isUndefined; var _dayjs = _interopRequireDefault(require("dayjs")); var _constants = require("./constants"); var _isSameOrAfter = _interopRequireDefault(require("dayjs/plugin/isSameOrAfter")); var _isSameOrBefore = _interopRequireDefault(require("dayjs/plugin/isSameOrBefore")); var _reactNative = require("react-native"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } _dayjs.default.extend(_isSameOrAfter.default); _dayjs.default.extend(_isSameOrBefore.default); function getHours(startHourRaw, endHourRaw) { const [startHour, startMinute = '00'] = startHourRaw.split(':'); const [endHour, endMinute = '00'] = endHourRaw.split(':'); const start = (0, _dayjs.default)().hour(parseInt(startHour, 10)).minute(parseInt(startMinute, 10)); const end = (0, _dayjs.default)().hour(parseInt(endHour, 10)).minute(parseInt(endMinute, 10)); const hours = _constants.Hours; _constants.Hours.forEach((hour, key) => { const hourMoment = (0, _dayjs.default)().hour(hour); if (!hourMoment.isSameOrAfter(start, 'hour')) { delete hours[key]; } if (!hourMoment.isSameOrBefore(end, 'hour')) { delete hours[key]; } }); return hours; } function getDays(selectedDate, currentView, daysWeek) { if (currentView === 'day') return [(0, _dayjs.default)(selectedDate).day()]; return daysWeek; } function getCellDimensions(view, settings) { if (view === 'day') { return { width: _reactNative.Dimensions.get('window').width - 50, height: settings.height }; } return settings; } function getScrollViewContainerWidth(view, days, cellWidth) { if (view === 'day') return _reactNative.Dimensions.get('window').width - 80; return cellWidth * days.length; } function isUndefined(value) { return value === undefined; } function getSchedulingSettings(settings) { const { fields, style, render } = settings; return { fields: { subject: { ..._constants.defaultSchedulingSettings.fields.subject, ...((fields === null || fields === void 0 ? void 0 : fields.subject) && { ...fields.subject }) }, startTime: { ..._constants.defaultSchedulingSettings.fields.startTime, ...((fields === null || fields === void 0 ? void 0 : fields.startTime) && { ...fields.startTime }) }, endTime: { ..._constants.defaultSchedulingSettings.fields.endTime, ...((fields === null || fields === void 0 ? void 0 : fields.endTime) && { ...fields.endTime }) } }, style, render }; } //# sourceMappingURL=utils.js.map