@sunsama/event-calendar 0.5.4 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -26
- package/lib/commonjs/index.js +6 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +6 -2
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +1 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +1 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.tsx +16 -2
package/README.md
CHANGED
|
@@ -64,32 +64,33 @@ Edit mode:
|
|
|
64
64
|
- Tap event: Stops edit mode.
|
|
65
65
|
|
|
66
66
|
## Props
|
|
67
|
-
| Prop | Type | Required | Default | Description
|
|
68
|
-
|
|
69
|
-
| `events` | `CalendarEvent[]` | Yes | | List of event objects.
|
|
70
|
-
| `dayDate` | `String` | Yes | | The current date of the calendar in ISO string.
|
|
71
|
-
| `renderEvent` | `Function` | Yes | | Custom renderer for event components.
|
|
72
|
-
| `onCreateEvent` | `Function` | No | | Callback triggered when a new event is created.
|
|
73
|
-
| `onPressEvent` | `Function` | No | | Callback triggered when an event is pressed.
|
|
74
|
-
| `userCalendarId` | `String` | No | | The primary calendar ID for event sorting.
|
|
75
|
-
| `timeFormat` | `String` | No | HH:mm | Defines the time format used in the calendar. See [moment.js](https://momentjs.com/docs/#/displaying/) documentation for examples.
|
|
76
|
-
| `showTimeIndicator` | `Boolean` | No | False | Displays a line showing the current time.
|
|
77
|
-
| `canCreateEvents` | `Boolean` | No | True | Allows users to create new events.
|
|
78
|
-
| `canEditEvent` | `Function` or `Boolean` | No | True | Determines if an event is editable. You can supply a function to do this deterministically.
|
|
79
|
-
| `maxAllDayEvents` | `Number` | No | 2 | Sets the maximum number of all-day events displayed before showing a 'show more' option.
|
|
80
|
-
| `timezone` | `String` | No | UTC | Defines the timezone for event times.
|
|
81
|
-
| `renderDragBars` | `Object` | No | | Custom drag handles for resizing events.
|
|
82
|
-
| `onEventEdit` | `Function` | No | | Callback triggered when an event is edited.
|
|
83
|
-
| `theme` | `Object` | No | | Allows overriding default calendar themes.
|
|
84
|
-
| `initialZoomLevel` | `Number` | No | 0.8 | Defines the initial zoom level of the calendar.
|
|
85
|
-
| `defaultZoomLevel` | `Number` | No | 0.8 | Defines the default zoom level of the calendar. This is used to determine the zoom level when you double-tap the calendar and the height of all-day events.
|
|
86
|
-
| `minZoomLevel` | `Number` | No | 0.54 | Defines the minimum zoom level of the calendar.
|
|
87
|
-
| `maxZoomLevel` | `Number` | No | 3 | Defines the maximum zoom level of the calendar.
|
|
88
|
-
| `renderNewEventContainer` | `Function` | No | | Custom UI for new event creation. If none supplied it will show a semi-transparent bar you can theme.
|
|
89
|
-
| `fiveMinuteInterval` | `Boolean` | No | False | Ensures event snapping to 5-minute increments.
|
|
90
|
-
| `updateLocalStateAfterEdit` | `Boolean` | No | True | Optimistically updates local state after event editing.
|
|
91
|
-
| `extraTimedComponents` | `Function` | No | | Allows rendering extra components in the calendar. These will be rendered before all the timed events.
|
|
92
|
-
| `onZoomChange` | `Function` | No | | Callback triggered when the zoom level changes.
|
|
67
|
+
| Prop | Type | Required | Default | Description |
|
|
68
|
+
|-----------------------------|-------------------------|----------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
69
|
+
| `events` | `CalendarEvent[]` | Yes | | List of event objects. |
|
|
70
|
+
| `dayDate` | `String` | Yes | | The current date of the calendar in ISO string. |
|
|
71
|
+
| `renderEvent` | `Function` | Yes | | Custom renderer for event components. |
|
|
72
|
+
| `onCreateEvent` | `Function` | No | | Callback triggered when a new event is created. |
|
|
73
|
+
| `onPressEvent` | `Function` | No | | Callback triggered when an event is pressed. |
|
|
74
|
+
| `userCalendarId` | `String` | No | | The primary calendar ID for event sorting. |
|
|
75
|
+
| `timeFormat` | `String` | No | HH:mm | Defines the time format used in the calendar. See [moment.js](https://momentjs.com/docs/#/displaying/) documentation for examples. |
|
|
76
|
+
| `showTimeIndicator` | `Boolean` | No | False | Displays a line showing the current time. |
|
|
77
|
+
| `canCreateEvents` | `Boolean` | No | True | Allows users to create new events. |
|
|
78
|
+
| `canEditEvent` | `Function` or `Boolean` | No | True | Determines if an event is editable. You can supply a function to do this deterministically. |
|
|
79
|
+
| `maxAllDayEvents` | `Number` | No | 2 | Sets the maximum number of all-day events displayed before showing a 'show more' option. |
|
|
80
|
+
| `timezone` | `String` | No | UTC | Defines the timezone for event times. |
|
|
81
|
+
| `renderDragBars` | `Object` | No | | Custom drag handles for resizing events. |
|
|
82
|
+
| `onEventEdit` | `Function` | No | | Callback triggered when an event is edited. |
|
|
83
|
+
| `theme` | `Object` | No | | Allows overriding default calendar themes. |
|
|
84
|
+
| `initialZoomLevel` | `Number` | No | 0.8 | Defines the initial zoom level of the calendar. |
|
|
85
|
+
| `defaultZoomLevel` | `Number` | No | 0.8 | Defines the default zoom level of the calendar. This is used to determine the zoom level when you double-tap the calendar and the height of all-day events. |
|
|
86
|
+
| `minZoomLevel` | `Number` | No | 0.54 | Defines the minimum zoom level of the calendar. |
|
|
87
|
+
| `maxZoomLevel` | `Number` | No | 3 | Defines the maximum zoom level of the calendar. |
|
|
88
|
+
| `renderNewEventContainer` | `Function` | No | | Custom UI for new event creation. If none supplied it will show a semi-transparent bar you can theme. |
|
|
89
|
+
| `fiveMinuteInterval` | `Boolean` | No | False | Ensures event snapping to 5-minute increments. |
|
|
90
|
+
| `updateLocalStateAfterEdit` | `Boolean` | No | True | Optimistically updates local state after event editing. |
|
|
91
|
+
| `extraTimedComponents` | `Function` | No | | Allows rendering extra components in the calendar. These will be rendered before all the timed events. |
|
|
92
|
+
| `onZoomChange` | `Function` | No | | Callback triggered when the zoom level changes. |
|
|
93
|
+
| `onScroll` | `Function` | No | | Callback returning the current minutes the user has scrolled to. |
|
|
93
94
|
|
|
94
95
|
## Methods
|
|
95
96
|
The Event Calendar component exposes the following methods through the reference:
|
package/lib/commonjs/index.js
CHANGED
|
@@ -54,7 +54,8 @@ function EventCalendarContentInner({
|
|
|
54
54
|
updateLocalStateAfterEdit,
|
|
55
55
|
extraTimedComponents,
|
|
56
56
|
onZoomChange,
|
|
57
|
-
startCalendarDate
|
|
57
|
+
startCalendarDate,
|
|
58
|
+
onScroll
|
|
58
59
|
}, refMethods) {
|
|
59
60
|
const zoomLevel = (0, _reactNativeReanimated.useSharedValue)(initialZoomLevel || defaultZoomLevel);
|
|
60
61
|
const createY = (0, _reactNativeReanimated.useSharedValue)(-1);
|
|
@@ -73,6 +74,9 @@ function EventCalendarContentInner({
|
|
|
73
74
|
});
|
|
74
75
|
}
|
|
75
76
|
}), [zoomLevel]);
|
|
77
|
+
const onScrollFeedback = (0, _react.useCallback)(event => {
|
|
78
|
+
onScroll && onScroll(event.nativeEvent.contentOffset.y / zoomLevel.value);
|
|
79
|
+
}, [zoomLevel, onScroll]);
|
|
76
80
|
const {
|
|
77
81
|
eventsLayout
|
|
78
82
|
} = (0, _useEvents.useEvents)();
|
|
@@ -113,6 +117,7 @@ function EventCalendarContentInner({
|
|
|
113
117
|
keyboardShouldPersistTaps: "always",
|
|
114
118
|
style: [styles.scrollView, theme?.scrollView],
|
|
115
119
|
ref: refScrollView,
|
|
120
|
+
onScroll: onScrollFeedback,
|
|
116
121
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_useIsEditing.IsEditingProvider, {
|
|
117
122
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_zoomProvider.default, {
|
|
118
123
|
ref: refNewEvent,
|
|
@@ -176,7 +181,6 @@ var _default = exports.default = EventCalendar;
|
|
|
176
181
|
const styles = _reactNative.StyleSheet.create({
|
|
177
182
|
container: {
|
|
178
183
|
flex: 1,
|
|
179
|
-
marginTop: 8,
|
|
180
184
|
borderTopWidth: _reactNative.StyleSheet.hairlineWidth,
|
|
181
185
|
borderTopColor: "#F0F0F0",
|
|
182
186
|
overflow: "hidden"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_allDayEvents","_interopRequireDefault","_reactNativeGestureHandler","_reactNativeReanimated","_zoomProvider","_timedEvents","_globals","_momentTimezone","_react","_interopRequireWildcard","_useIsEditing","_useEvents","_jsxRuntime","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set","EventCalendarContentInner","canCreateEvents","canEditEvent","fiveMinuteInterval","initialZoomLevel","defaultZoomLevel","minZoomLevel","maxZoomLevel","maxAllDayEvents","onCreateEvent","onEventEdit","onPressEvent","renderDragBars","renderEvent","renderNewEventContainer","showTimeIndicator","theme","timeFormat","timezone","updateLocalStateAfterEdit","extraTimedComponents","onZoomChange","startCalendarDate","refMethods","zoomLevel","useSharedValue","createY","maximumHour","refNewEvent","useRef","refScrollView","refScrollViewHeight","onLayoutScrollView","useCallback","event","current","nativeEvent","layout","height","useImperativeHandle","scrollToTime","time","animated","offset","scrollTo","y","value","eventsLayout","useEvents","jsx","View","style","styles","container","children","jsxs","ConfigProvider","Provider","dayDate","ScrollView","onLayout","bounces","keyboardShouldPersistTaps","scrollView","ref","IsEditingProvider","borderContainer","EventCalendarContent","forwardRef","EventCalendarInner","DEFAULT_TIME_FORMAT","events","DEFAULT_MINUTE_HEIGHT","DEFAULT_TIMEZONE","userCalendarId","DEFAULT_MAX_ALL_DAY_EVENTS","DEFAULT_MIN_ZOOM","DEFAULT_MAX_ZOOM","props","useMemo","moment","tz","startOf","EventsProvider","initialProps","format","calendarViewInterval","endCalendarDate","startDayOfWeekOffset","EventCalendar","_default","StyleSheet","create","flex","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_allDayEvents","_interopRequireDefault","_reactNativeGestureHandler","_reactNativeReanimated","_zoomProvider","_timedEvents","_globals","_momentTimezone","_react","_interopRequireWildcard","_useIsEditing","_useEvents","_jsxRuntime","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set","EventCalendarContentInner","canCreateEvents","canEditEvent","fiveMinuteInterval","initialZoomLevel","defaultZoomLevel","minZoomLevel","maxZoomLevel","maxAllDayEvents","onCreateEvent","onEventEdit","onPressEvent","renderDragBars","renderEvent","renderNewEventContainer","showTimeIndicator","theme","timeFormat","timezone","updateLocalStateAfterEdit","extraTimedComponents","onZoomChange","startCalendarDate","onScroll","refMethods","zoomLevel","useSharedValue","createY","maximumHour","refNewEvent","useRef","refScrollView","refScrollViewHeight","onLayoutScrollView","useCallback","event","current","nativeEvent","layout","height","useImperativeHandle","scrollToTime","time","animated","offset","scrollTo","y","value","onScrollFeedback","contentOffset","eventsLayout","useEvents","jsx","View","style","styles","container","children","jsxs","ConfigProvider","Provider","dayDate","ScrollView","onLayout","bounces","keyboardShouldPersistTaps","scrollView","ref","IsEditingProvider","borderContainer","EventCalendarContent","forwardRef","EventCalendarInner","DEFAULT_TIME_FORMAT","events","DEFAULT_MINUTE_HEIGHT","DEFAULT_TIMEZONE","userCalendarId","DEFAULT_MAX_ALL_DAY_EVENTS","DEFAULT_MIN_ZOOM","DEFAULT_MAX_ZOOM","props","useMemo","moment","tz","startOf","EventsProvider","initialProps","format","calendarViewInterval","endCalendarDate","startDayOfWeekOffset","EventCalendar","_default","StyleSheet","create","flex","borderTopWidth","hairlineWidth","borderTopColor","overflow","paddingTop","backgroundColor","position","left","top","width","borderLeftWidth","borderColor"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -35,7 +35,8 @@ function EventCalendarContentInner({
|
|
|
35
35
|
updateLocalStateAfterEdit,
|
|
36
36
|
extraTimedComponents,
|
|
37
37
|
onZoomChange,
|
|
38
|
-
startCalendarDate
|
|
38
|
+
startCalendarDate,
|
|
39
|
+
onScroll
|
|
39
40
|
}, refMethods) {
|
|
40
41
|
const zoomLevel = useSharedValue(initialZoomLevel || defaultZoomLevel);
|
|
41
42
|
const createY = useSharedValue(-1);
|
|
@@ -54,6 +55,9 @@ function EventCalendarContentInner({
|
|
|
54
55
|
});
|
|
55
56
|
}
|
|
56
57
|
}), [zoomLevel]);
|
|
58
|
+
const onScrollFeedback = useCallback(event => {
|
|
59
|
+
onScroll && onScroll(event.nativeEvent.contentOffset.y / zoomLevel.value);
|
|
60
|
+
}, [zoomLevel, onScroll]);
|
|
57
61
|
const {
|
|
58
62
|
eventsLayout
|
|
59
63
|
} = useEvents();
|
|
@@ -94,6 +98,7 @@ function EventCalendarContentInner({
|
|
|
94
98
|
keyboardShouldPersistTaps: "always",
|
|
95
99
|
style: [styles.scrollView, theme?.scrollView],
|
|
96
100
|
ref: refScrollView,
|
|
101
|
+
onScroll: onScrollFeedback,
|
|
97
102
|
children: /*#__PURE__*/_jsx(IsEditingProvider, {
|
|
98
103
|
children: /*#__PURE__*/_jsxs(ZoomProvider, {
|
|
99
104
|
ref: refNewEvent,
|
|
@@ -157,7 +162,6 @@ export default EventCalendar;
|
|
|
157
162
|
const styles = StyleSheet.create({
|
|
158
163
|
container: {
|
|
159
164
|
flex: 1,
|
|
160
|
-
marginTop: 8,
|
|
161
165
|
borderTopWidth: StyleSheet.hairlineWidth,
|
|
162
166
|
borderTopColor: "#F0F0F0",
|
|
163
167
|
overflow: "hidden"
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","View","AllDayEvents","ScrollView","useSharedValue","ZoomProvider","TimedEvents","ConfigProvider","DEFAULT_MAX_ALL_DAY_EVENTS","DEFAULT_MAX_ZOOM","DEFAULT_MIN_ZOOM","DEFAULT_MINUTE_HEIGHT","DEFAULT_TIME_FORMAT","DEFAULT_TIMEZONE","moment","React","forwardRef","useCallback","useImperativeHandle","useMemo","useRef","IsEditingProvider","EventsProvider","useEvents","jsx","_jsx","jsxs","_jsxs","EventCalendarContentInner","canCreateEvents","canEditEvent","fiveMinuteInterval","initialZoomLevel","defaultZoomLevel","minZoomLevel","maxZoomLevel","maxAllDayEvents","onCreateEvent","onEventEdit","onPressEvent","renderDragBars","renderEvent","renderNewEventContainer","showTimeIndicator","theme","timeFormat","timezone","updateLocalStateAfterEdit","extraTimedComponents","onZoomChange","startCalendarDate","refMethods","zoomLevel","createY","maximumHour","refNewEvent","refScrollView","refScrollViewHeight","onLayoutScrollView","event","current","nativeEvent","layout","height","scrollToTime","time","animated","offset","scrollTo","y","value","eventsLayout","style","styles","container","children","Provider","dayDate","onLayout","bounces","keyboardShouldPersistTaps","scrollView","ref","borderContainer","EventCalendarContent","EventCalendarInner","events","userCalendarId","props","tz","startOf","initialProps","format","calendarViewInterval","endCalendarDate","startDayOfWeekOffset","EventCalendar","create","flex","
|
|
1
|
+
{"version":3,"names":["StyleSheet","View","AllDayEvents","ScrollView","useSharedValue","ZoomProvider","TimedEvents","ConfigProvider","DEFAULT_MAX_ALL_DAY_EVENTS","DEFAULT_MAX_ZOOM","DEFAULT_MIN_ZOOM","DEFAULT_MINUTE_HEIGHT","DEFAULT_TIME_FORMAT","DEFAULT_TIMEZONE","moment","React","forwardRef","useCallback","useImperativeHandle","useMemo","useRef","IsEditingProvider","EventsProvider","useEvents","jsx","_jsx","jsxs","_jsxs","EventCalendarContentInner","canCreateEvents","canEditEvent","fiveMinuteInterval","initialZoomLevel","defaultZoomLevel","minZoomLevel","maxZoomLevel","maxAllDayEvents","onCreateEvent","onEventEdit","onPressEvent","renderDragBars","renderEvent","renderNewEventContainer","showTimeIndicator","theme","timeFormat","timezone","updateLocalStateAfterEdit","extraTimedComponents","onZoomChange","startCalendarDate","onScroll","refMethods","zoomLevel","createY","maximumHour","refNewEvent","refScrollView","refScrollViewHeight","onLayoutScrollView","event","current","nativeEvent","layout","height","scrollToTime","time","animated","offset","scrollTo","y","value","onScrollFeedback","contentOffset","eventsLayout","style","styles","container","children","Provider","dayDate","onLayout","bounces","keyboardShouldPersistTaps","scrollView","ref","borderContainer","EventCalendarContent","EventCalendarInner","events","userCalendarId","props","tz","startOf","initialProps","format","calendarViewInterval","endCalendarDate","startDayOfWeekOffset","EventCalendar","create","flex","borderTopWidth","hairlineWidth","borderTopColor","overflow","paddingTop","backgroundColor","position","left","top","width","borderLeftWidth","borderColor"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,6 +2,7 @@ import React, { type Ref } from "react";
|
|
|
2
2
|
import type { CalendarEvent, Config, onCreateEvent, ThemeStyle } from "./types";
|
|
3
3
|
export * from "./types";
|
|
4
4
|
type EventCalenderProps<T extends CalendarEvent> = {
|
|
5
|
+
onScroll?: (minutes: number) => void;
|
|
5
6
|
canCreateEvents?: boolean;
|
|
6
7
|
canEditEvent?: Config<T>["canEditEvent"];
|
|
7
8
|
dayDate: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,EAEZ,KAAK,GAAG,EAKT,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,EAEZ,KAAK,GAAG,EAKT,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAOhF,cAAc,SAAS,CAAC;AAExB,KAAK,kBAAkB,CAAC,CAAC,SAAS,aAAa,IAAI;IACjD,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC7C,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACtC,uBAAuB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC;IAC/D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;CAC1C,CAAC;AA4BF,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9E,CAAC;AA2HF,iBAAS,kBAAkB,CAAC,CAAC,SAAS,aAAa,EACjD,EACE,UAAgC,EAChC,OAAO,EACP,MAAM,EACN,gBAAwC,EACxC,QAA2B,EAC3B,cAAmB,EACnB,eAA4C,EAC5C,YAA+B,EAC/B,YAA+B,EAC/B,yBAAgC,EAChC,eAAsB,EACtB,YAAmB,EACnB,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,CAAC,CAAC,EACxB,GAAG,EAAE,GAAG,CAAC,oBAAoB,CAAC,qBAoC/B;AAED,QAAA,MAAM,aAAa,EAAqC,CACtD,CAAC,SAAS,aAAa,EAEvB,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAA;CAAE,KAC/D,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE3C,eAAe,aAAa,CAAC"}
|
|
@@ -2,6 +2,7 @@ import React, { type Ref } from "react";
|
|
|
2
2
|
import type { CalendarEvent, Config, onCreateEvent, ThemeStyle } from "./types";
|
|
3
3
|
export * from "./types";
|
|
4
4
|
type EventCalenderProps<T extends CalendarEvent> = {
|
|
5
|
+
onScroll?: (minutes: number) => void;
|
|
5
6
|
canCreateEvents?: boolean;
|
|
6
7
|
canEditEvent?: Config<T>["canEditEvent"];
|
|
7
8
|
dayDate: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,EAEZ,KAAK,GAAG,EAKT,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,EAEZ,KAAK,GAAG,EAKT,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAOhF,cAAc,SAAS,CAAC;AAExB,KAAK,kBAAkB,CAAC,CAAC,SAAS,aAAa,IAAI;IACjD,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC7C,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACtC,uBAAuB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC;IAC/D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;CAC1C,CAAC;AA4BF,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9E,CAAC;AA2HF,iBAAS,kBAAkB,CAAC,CAAC,SAAS,aAAa,EACjD,EACE,UAAgC,EAChC,OAAO,EACP,MAAM,EACN,gBAAwC,EACxC,QAA2B,EAC3B,cAAmB,EACnB,eAA4C,EAC5C,YAA+B,EAC/B,YAA+B,EAC/B,yBAAgC,EAChC,eAAsB,EACtB,YAAmB,EACnB,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,CAAC,CAAC,EACxB,GAAG,EAAE,GAAG,CAAC,oBAAoB,CAAC,qBAoC/B;AAED,QAAA,MAAM,aAAa,EAAqC,CACtD,CAAC,SAAS,aAAa,EAEvB,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAA;CAAE,KAC/D,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE3C,eAAe,aAAa,CAAC"}
|
package/package.json
CHANGED
package/src/index.tsx
CHANGED
|
@@ -26,11 +26,16 @@ import { GestureRef } from "react-native-gesture-handler/lib/typescript/handlers
|
|
|
26
26
|
import { IsEditingProvider } from "./hooks/use-is-editing";
|
|
27
27
|
import { EventsProvider, useEvents } from "./hooks/use-events";
|
|
28
28
|
import type { CalendarEvent, Config, onCreateEvent, ThemeStyle } from "./types";
|
|
29
|
-
import {
|
|
29
|
+
import {
|
|
30
|
+
LayoutChangeEvent,
|
|
31
|
+
NativeSyntheticEvent,
|
|
32
|
+
} from "react-native/Libraries/Types/CoreEventTypes";
|
|
33
|
+
import type { NativeScrollEvent } from "react-native/Libraries/Components/ScrollView/ScrollView";
|
|
30
34
|
|
|
31
35
|
export * from "./types";
|
|
32
36
|
|
|
33
37
|
type EventCalenderProps<T extends CalendarEvent> = {
|
|
38
|
+
onScroll?: (minutes: number) => void;
|
|
34
39
|
canCreateEvents?: boolean;
|
|
35
40
|
canEditEvent?: Config<T>["canEditEvent"];
|
|
36
41
|
dayDate: string;
|
|
@@ -58,6 +63,7 @@ type EventCalenderProps<T extends CalendarEvent> = {
|
|
|
58
63
|
};
|
|
59
64
|
|
|
60
65
|
type EventCalenderContentProps<T extends CalendarEvent> = {
|
|
66
|
+
onScroll?: (minutes: number) => void;
|
|
61
67
|
canCreateEvents: boolean;
|
|
62
68
|
canEditEvent: Config<T>["canEditEvent"];
|
|
63
69
|
startCalendarDate: Moment;
|
|
@@ -110,6 +116,7 @@ function EventCalendarContentInner<T extends CalendarEvent>(
|
|
|
110
116
|
extraTimedComponents,
|
|
111
117
|
onZoomChange,
|
|
112
118
|
startCalendarDate,
|
|
119
|
+
onScroll,
|
|
113
120
|
}: EventCalenderContentProps<T>,
|
|
114
121
|
refMethods: Ref<EventCalendarMethods>
|
|
115
122
|
) {
|
|
@@ -138,6 +145,13 @@ function EventCalendarContentInner<T extends CalendarEvent>(
|
|
|
138
145
|
[zoomLevel]
|
|
139
146
|
);
|
|
140
147
|
|
|
148
|
+
const onScrollFeedback = useCallback(
|
|
149
|
+
(event: NativeSyntheticEvent<NativeScrollEvent>) => {
|
|
150
|
+
onScroll && onScroll(event.nativeEvent.contentOffset.y / zoomLevel.value);
|
|
151
|
+
},
|
|
152
|
+
[zoomLevel, onScroll]
|
|
153
|
+
);
|
|
154
|
+
|
|
141
155
|
const { eventsLayout } = useEvents();
|
|
142
156
|
|
|
143
157
|
return (
|
|
@@ -179,6 +193,7 @@ function EventCalendarContentInner<T extends CalendarEvent>(
|
|
|
179
193
|
keyboardShouldPersistTaps="always"
|
|
180
194
|
style={[styles.scrollView, theme?.scrollView]}
|
|
181
195
|
ref={refScrollView}
|
|
196
|
+
onScroll={onScrollFeedback}
|
|
182
197
|
>
|
|
183
198
|
<IsEditingProvider>
|
|
184
199
|
<ZoomProvider ref={refNewEvent}>
|
|
@@ -263,7 +278,6 @@ export default EventCalendar;
|
|
|
263
278
|
const styles = StyleSheet.create({
|
|
264
279
|
container: {
|
|
265
280
|
flex: 1,
|
|
266
|
-
marginTop: 8,
|
|
267
281
|
borderTopWidth: StyleSheet.hairlineWidth,
|
|
268
282
|
borderTopColor: "#F0F0F0",
|
|
269
283
|
overflow: "hidden",
|