UNPKG

f-react-native-schedule

Version:

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

67 lines (65 loc) 2.43 kB
import React, { useMemo } from 'react'; import { View, ScrollView } from 'react-native'; import Sidebar from './Sidebar'; import Content from './Content'; import styles from './styles'; import { DaysWeek, defaultCellDimensions, defaultCellSettings, defaultHeaderSettings, defaultSchedulingSettings, defaultSidebarSettings } from './constants'; import { getCellDimensions, getDays, getHours, getSchedulingSettings } from './utils'; import ScheduleContext from './ScheduleContext'; const Schedule = _ref => { let { schedules = [], currentView = 'week', selectedDate = new Date(), startHour = '00:00', endHour = '24:00', daysWeek = DaysWeek, cellDimensions = defaultCellDimensions, headerSettings = defaultHeaderSettings, sidebarSettings = defaultSidebarSettings, cellSettings = defaultCellSettings, schedulingSettings = defaultSchedulingSettings, onCellPress, onCellLongPress, onSchedulingPress, onSchedulingLongPress, style } = _ref; const value = useMemo(() => ({ schedules, currentView, selectedDate, rawSchedules: schedules, startHour, endHour, days: getDays(selectedDate, currentView, daysWeek), hours: getHours(startHour, endHour), daysWeek, headerSettings: { ...defaultHeaderSettings, ...headerSettings }, sidebarSettings: { ...defaultSidebarSettings, ...sidebarSettings }, schedulingSettings: getSchedulingSettings(schedulingSettings), cellDimensions: getCellDimensions(currentView, { ...defaultCellDimensions, ...cellDimensions }), cellSettings, onCellPress, onCellLongPress, onSchedulingPress, onSchedulingLongPress }), [schedules, startHour, endHour, daysWeek, selectedDate, currentView, cellDimensions, headerSettings, sidebarSettings, cellSettings, schedulingSettings, onCellPress, onCellLongPress, onSchedulingPress, onSchedulingLongPress]); return /*#__PURE__*/React.createElement(ScheduleContext.Provider, { value: value }, /*#__PURE__*/React.createElement(ScrollView, { style: [styles.container, style], showsVerticalScrollIndicator: true, showsHorizontalScrollIndicator: true }, /*#__PURE__*/React.createElement(View, { style: styles.content }, /*#__PURE__*/React.createElement(Sidebar, null), /*#__PURE__*/React.createElement(Content, null)))); }; export default Schedule; //# sourceMappingURL=index.js.map