UNPKG

react-native-full-calendars

Version:

React Native Full Calendar (RNFC) is an intuitive and powerful calendar component library designed for React Native.

102 lines (101 loc) 3.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Day = void 0; var _dateFns = require("date-fns"); var _lodash = require("lodash"); var _react = _interopRequireWildcard(require("react")); var _reactNative = require("react-native"); var _computedWeeks = require("../../utils/computed-weeks"); var _Item = require("./Item"); var _jsxRuntime = require("react/jsx-runtime"); 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 && {}.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 Day = exports.Day = /*#__PURE__*/_react.default.memo(({ date, isDisabled, isToday, items, weekStartDay, theme, renderMoreItemText, maxVisibleCount, isSelected }) => { const weeks = (0, _computedWeeks.computedWeeksOfMonth)(date, isDisabled); const renderDayText = () => { const dayNumberTextStyle = [{ fontSize: 48 / weeks }, theme.dayNumberTextStyle]; const dayNumberStyle = [styleSheet.dayNumberStyle, theme.dayNumberStyle]; if (isToday) { dayNumberTextStyle.push(theme.dayTodayTextStyle); dayNumberStyle.push(theme.dayTodayStyle); } return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, { style: dayNumberStyle, children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, { style: dayNumberTextStyle, children: (0, _dateFns.format)(date, theme.dayTextForamt) }) }); }; const dayContainerStyle = [styleSheet.dayContainerStyle, theme.dayContainerStyle]; const isOverFlow = (0, _react.useMemo)(() => items.length >= maxVisibleCount + 1, [maxVisibleCount, items.length]); if (isDisabled) { dayContainerStyle.push({ opacity: theme.disableOpacity }); } if (isSelected) { dayContainerStyle.push(theme.daySelectedStyle); } return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, { style: dayContainerStyle, children: [renderDayText(), items.map((item, index) => { if (index >= maxVisibleCount) { return null; } return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Item.Item, { date: date, isDisabled: isDisabled, theme: theme, item: item, index: index, weekStartDay: weekStartDay, maxVisibleCount: maxVisibleCount }, item?.id ? item?.id : index); }), isOverFlow ? renderMoreItemText ? renderMoreItemText({ count: items.slice(maxVisibleCount).filter(v => v).length }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, { style: [styleSheet.moreItemText, { fontSize: 48 / weeks }], children: ["+", items.slice(maxVisibleCount).filter(v => v).length || '0'] }) : null] }); }, (prev, next) => { return (0, _lodash.isEqual)(prev, next); }); const styleSheet = _reactNative.StyleSheet.create({ dayContainerStyle: { flex: 1, borderColor: '#F5F5F5', borderTopWidth: 1, borderBottomWidth: 1 }, dayNumberStyle: { justifyContent: 'center', alignItems: 'center', alignSelf: 'center', height: '16%', width: '40%', marginVertical: '1%' }, moreItemText: { paddingStart: 4, textAlign: 'center' } }); //# sourceMappingURL=Day.js.map