@sunsama/event-calendar 0.5.5 → 0.7.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 +31 -29
- package/lib/commonjs/index.js +12 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +12 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +2 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +2 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.tsx +23 -1
package/README.md
CHANGED
|
@@ -64,39 +64,41 @@ 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 Y position the user has scrolled to. |
|
|
93
94
|
|
|
94
95
|
## Methods
|
|
95
96
|
The Event Calendar component exposes the following methods through the reference:
|
|
96
97
|
|
|
97
|
-
| Method
|
|
98
|
-
|
|
99
|
-
| `scrollToTime`
|
|
98
|
+
| Method | Description |
|
|
99
|
+
|------------------|-------------------------------------------------------------------------------------------|
|
|
100
|
+
| `scrollToTime` | Scrolls the calendar to the specified time (in minutes since midnight). |
|
|
101
|
+
| `scrollToOffset` | Scrolls the calendar to the specified Y position (useful in combination with `onScroll`). |
|
|
100
102
|
|
|
101
103
|
## Dependencies
|
|
102
104
|
Ensure you have the following dependencies installed for proper functionality:
|
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);
|
|
@@ -71,8 +72,17 @@ function EventCalendarContentInner({
|
|
|
71
72
|
y: time * zoomLevel.value - refScrollViewHeight.current / offset,
|
|
72
73
|
animated
|
|
73
74
|
});
|
|
75
|
+
},
|
|
76
|
+
scrollToOffset: (y, animated = true) => {
|
|
77
|
+
refScrollView.current?.scrollTo({
|
|
78
|
+
y,
|
|
79
|
+
animated
|
|
80
|
+
});
|
|
74
81
|
}
|
|
75
82
|
}), [zoomLevel]);
|
|
83
|
+
const onScrollFeedback = (0, _react.useCallback)(event => {
|
|
84
|
+
onScroll && onScroll(event.nativeEvent.contentOffset.y);
|
|
85
|
+
}, [onScroll]);
|
|
76
86
|
const {
|
|
77
87
|
eventsLayout
|
|
78
88
|
} = (0, _useEvents.useEvents)();
|
|
@@ -113,6 +123,7 @@ function EventCalendarContentInner({
|
|
|
113
123
|
keyboardShouldPersistTaps: "always",
|
|
114
124
|
style: [styles.scrollView, theme?.scrollView],
|
|
115
125
|
ref: refScrollView,
|
|
126
|
+
onScroll: onScrollFeedback,
|
|
116
127
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_useIsEditing.IsEditingProvider, {
|
|
117
128
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_zoomProvider.default, {
|
|
118
129
|
ref: refNewEvent,
|
|
@@ -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","borderTopWidth","hairlineWidth","borderTopColor","overflow","paddingTop","backgroundColor","position","left","top","width","borderLeftWidth","borderColor"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,0BAAA,GAAAH,OAAA;AACA,IAAAI,sBAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,YAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AASA,IAAAQ,eAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,MAAA,GAAAC,uBAAA,CAAAV,OAAA;AASA,IAAAW,aAAA,GAAAX,OAAA;AACA,IAAAY,UAAA,GAAAZ,OAAA;AAA+D,IAAAa,WAAA,GAAAb,OAAA;
|
|
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","scrollToOffset","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);
|
|
@@ -52,8 +53,17 @@ function EventCalendarContentInner({
|
|
|
52
53
|
y: time * zoomLevel.value - refScrollViewHeight.current / offset,
|
|
53
54
|
animated
|
|
54
55
|
});
|
|
56
|
+
},
|
|
57
|
+
scrollToOffset: (y, animated = true) => {
|
|
58
|
+
refScrollView.current?.scrollTo({
|
|
59
|
+
y,
|
|
60
|
+
animated
|
|
61
|
+
});
|
|
55
62
|
}
|
|
56
63
|
}), [zoomLevel]);
|
|
64
|
+
const onScrollFeedback = useCallback(event => {
|
|
65
|
+
onScroll && onScroll(event.nativeEvent.contentOffset.y);
|
|
66
|
+
}, [onScroll]);
|
|
57
67
|
const {
|
|
58
68
|
eventsLayout
|
|
59
69
|
} = useEvents();
|
|
@@ -94,6 +104,7 @@ function EventCalendarContentInner({
|
|
|
94
104
|
keyboardShouldPersistTaps: "always",
|
|
95
105
|
style: [styles.scrollView, theme?.scrollView],
|
|
96
106
|
ref: refScrollView,
|
|
107
|
+
onScroll: onScrollFeedback,
|
|
97
108
|
children: /*#__PURE__*/_jsx(IsEditingProvider, {
|
|
98
109
|
children: /*#__PURE__*/_jsxs(ZoomProvider, {
|
|
99
110
|
ref: refNewEvent,
|
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","borderTopWidth","hairlineWidth","borderTopColor","overflow","paddingTop","backgroundColor","position","left","top","width","borderLeftWidth","borderColor"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,OAAOC,YAAY,MAAM,gCAA6B;AACtD,SAASC,UAAU,QAAQ,8BAA8B;AACzD,SAASC,cAAc,QAAQ,yBAAyB;AACxD,OAAOC,YAAY,MAAM,+BAA4B;AACrD,OAAOC,WAAW,MAAM,8BAA2B;AACnD,SACEC,cAAc,EACdC,0BAA0B,EAC1BC,gBAAgB,EAChBC,gBAAgB,EAChBC,qBAAqB,EACrBC,mBAAmB,EACnBC,gBAAgB,QACX,oBAAiB;AACxB,OAAOC,MAAM,MAAuB,iBAAiB;AACrD,OAAOC,KAAK,IACVC,UAAU,EAEVC,WAAW,EACXC,mBAAmB,EACnBC,OAAO,EACPC,MAAM,QACD,OAAO;AAEd,SAASC,iBAAiB,QAAQ,2BAAwB;AAC1D,SAASC,cAAc,EAAEC,SAAS,QAAQ,uBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;
|
|
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","scrollToOffset","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?: (y: number) => void;
|
|
5
6
|
canCreateEvents?: boolean;
|
|
6
7
|
canEditEvent?: Config<T>["canEditEvent"];
|
|
7
8
|
dayDate: string;
|
|
@@ -29,6 +30,7 @@ type EventCalenderProps<T extends CalendarEvent> = {
|
|
|
29
30
|
};
|
|
30
31
|
export type EventCalendarMethods = {
|
|
31
32
|
scrollToTime: (minutes: number, animated?: boolean, offset?: number) => void;
|
|
33
|
+
scrollToOffset: (y: number, animated?: boolean) => void;
|
|
32
34
|
};
|
|
33
35
|
declare function EventCalendarInner<T extends CalendarEvent>({ timeFormat, dayDate, events, defaultZoomLevel, timezone, userCalendarId, maxAllDayEvents, minZoomLevel, maxZoomLevel, updateLocalStateAfterEdit, canCreateEvents, canEditEvent, ...props }: EventCalenderProps<T>, ref: Ref<EventCalendarMethods>): React.JSX.Element;
|
|
34
36
|
declare const EventCalendar: <T extends CalendarEvent>(props: EventCalenderProps<T> & {
|
|
@@ -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,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,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;IAC7E,cAAc,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACzD,CAAC;AAiIF,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?: (y: number) => void;
|
|
5
6
|
canCreateEvents?: boolean;
|
|
6
7
|
canEditEvent?: Config<T>["canEditEvent"];
|
|
7
8
|
dayDate: string;
|
|
@@ -29,6 +30,7 @@ type EventCalenderProps<T extends CalendarEvent> = {
|
|
|
29
30
|
};
|
|
30
31
|
export type EventCalendarMethods = {
|
|
31
32
|
scrollToTime: (minutes: number, animated?: boolean, offset?: number) => void;
|
|
33
|
+
scrollToOffset: (y: number, animated?: boolean) => void;
|
|
32
34
|
};
|
|
33
35
|
declare function EventCalendarInner<T extends CalendarEvent>({ timeFormat, dayDate, events, defaultZoomLevel, timezone, userCalendarId, maxAllDayEvents, minZoomLevel, maxZoomLevel, updateLocalStateAfterEdit, canCreateEvents, canEditEvent, ...props }: EventCalenderProps<T>, ref: Ref<EventCalendarMethods>): React.JSX.Element;
|
|
34
36
|
declare const EventCalendar: <T extends CalendarEvent>(props: EventCalenderProps<T> & {
|
|
@@ -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,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,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;IAC7E,cAAc,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACzD,CAAC;AAiIF,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?: (y: 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?: (y: number) => void;
|
|
61
67
|
canCreateEvents: boolean;
|
|
62
68
|
canEditEvent: Config<T>["canEditEvent"];
|
|
63
69
|
startCalendarDate: Moment;
|
|
@@ -84,6 +90,7 @@ type EventCalenderContentProps<T extends CalendarEvent> = {
|
|
|
84
90
|
|
|
85
91
|
export type EventCalendarMethods = {
|
|
86
92
|
scrollToTime: (minutes: number, animated?: boolean, offset?: number) => void;
|
|
93
|
+
scrollToOffset: (y: number, animated?: boolean) => void;
|
|
87
94
|
};
|
|
88
95
|
|
|
89
96
|
function EventCalendarContentInner<T extends CalendarEvent>(
|
|
@@ -110,6 +117,7 @@ function EventCalendarContentInner<T extends CalendarEvent>(
|
|
|
110
117
|
extraTimedComponents,
|
|
111
118
|
onZoomChange,
|
|
112
119
|
startCalendarDate,
|
|
120
|
+
onScroll,
|
|
113
121
|
}: EventCalenderContentProps<T>,
|
|
114
122
|
refMethods: Ref<EventCalendarMethods>
|
|
115
123
|
) {
|
|
@@ -134,10 +142,23 @@ function EventCalendarContentInner<T extends CalendarEvent>(
|
|
|
134
142
|
animated,
|
|
135
143
|
});
|
|
136
144
|
},
|
|
145
|
+
scrollToOffset: (y: number, animated = true) => {
|
|
146
|
+
refScrollView.current?.scrollTo({
|
|
147
|
+
y,
|
|
148
|
+
animated,
|
|
149
|
+
});
|
|
150
|
+
},
|
|
137
151
|
}),
|
|
138
152
|
[zoomLevel]
|
|
139
153
|
);
|
|
140
154
|
|
|
155
|
+
const onScrollFeedback = useCallback(
|
|
156
|
+
(event: NativeSyntheticEvent<NativeScrollEvent>) => {
|
|
157
|
+
onScroll && onScroll(event.nativeEvent.contentOffset.y);
|
|
158
|
+
},
|
|
159
|
+
[onScroll]
|
|
160
|
+
);
|
|
161
|
+
|
|
141
162
|
const { eventsLayout } = useEvents();
|
|
142
163
|
|
|
143
164
|
return (
|
|
@@ -179,6 +200,7 @@ function EventCalendarContentInner<T extends CalendarEvent>(
|
|
|
179
200
|
keyboardShouldPersistTaps="always"
|
|
180
201
|
style={[styles.scrollView, theme?.scrollView]}
|
|
181
202
|
ref={refScrollView}
|
|
203
|
+
onScroll={onScrollFeedback}
|
|
182
204
|
>
|
|
183
205
|
<IsEditingProvider>
|
|
184
206
|
<ZoomProvider ref={refNewEvent}>
|