f-react-native-schedule
Version:
Flexible scheduling library with more built-in features and enhanced customization options
101 lines (81 loc) • 2.94 kB
JavaScript
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
;