@sunsama/event-calendar 0.5.2 → 0.5.4
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 +3 -3
- package/lib/commonjs/components/all-day-events.js +1 -3
- package/lib/commonjs/components/all-day-events.js.map +1 -1
- package/lib/commonjs/components/drag-bar.js +42 -30
- package/lib/commonjs/components/drag-bar.js.map +1 -1
- package/lib/commonjs/components/edit-event-container.js +15 -6
- package/lib/commonjs/components/edit-event-container.js.map +1 -1
- package/lib/commonjs/components/timed-event-container.js +5 -2
- package/lib/commonjs/components/timed-event-container.js.map +1 -1
- package/lib/commonjs/index.js +7 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils/globals.js +2 -1
- package/lib/commonjs/utils/globals.js.map +1 -1
- package/lib/module/components/all-day-events.js +1 -3
- package/lib/module/components/all-day-events.js.map +1 -1
- package/lib/module/components/drag-bar.js +42 -30
- package/lib/module/components/drag-bar.js.map +1 -1
- package/lib/module/components/edit-event-container.js +16 -7
- package/lib/module/components/edit-event-container.js.map +1 -1
- package/lib/module/components/timed-event-container.js +6 -3
- package/lib/module/components/timed-event-container.js.map +1 -1
- package/lib/module/index.js +8 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/globals.js +1 -0
- package/lib/module/utils/globals.js.map +1 -1
- package/lib/typescript/commonjs/components/all-day-events.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/drag-bar.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/edit-event-container.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/timed-event-container.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +1 -1
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/utils/globals.d.ts +1 -0
- package/lib/typescript/commonjs/utils/globals.d.ts.map +1 -1
- package/lib/typescript/module/components/all-day-events.d.ts.map +1 -1
- package/lib/typescript/module/components/drag-bar.d.ts.map +1 -1
- package/lib/typescript/module/components/edit-event-container.d.ts.map +1 -1
- package/lib/typescript/module/components/timed-event-container.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +1 -1
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/utils/globals.d.ts +1 -0
- package/lib/typescript/module/utils/globals.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/all-day-events.tsx +0 -2
- package/src/components/drag-bar.tsx +96 -53
- package/src/components/edit-event-container.tsx +22 -8
- package/src/components/timed-event-container.tsx +7 -3
- package/src/index.tsx +11 -3
- package/src/utils/globals.ts +1 -0
|
@@ -4,7 +4,7 @@ import Animated, {
|
|
|
4
4
|
useAnimatedStyle,
|
|
5
5
|
useSharedValue,
|
|
6
6
|
} from "react-native-reanimated";
|
|
7
|
-
import { ConfigProvider } from "../utils/globals";
|
|
7
|
+
import { ConfigProvider, MIN_EVENT_HEIGHT_PX } from "../utils/globals";
|
|
8
8
|
import { RefObject, useCallback, useContext, useMemo } from "react";
|
|
9
9
|
import { Gesture, GestureDetector } from "react-native-gesture-handler";
|
|
10
10
|
import { StyleSheet, View } from "react-native";
|
|
@@ -74,9 +74,13 @@ const TimedEventContainer = <T extends CalendarEvent>({
|
|
|
74
74
|
useAnimatedReaction(
|
|
75
75
|
() => zoomLevel.value,
|
|
76
76
|
(newZoomLevel) => {
|
|
77
|
-
|
|
77
|
+
const start = new Date(layout.event.start);
|
|
78
|
+
const end = new Date(layout.event.end);
|
|
79
|
+
const diff = (end.valueOf() - start.valueOf()) / 60_000;
|
|
80
|
+
|
|
81
|
+
height.value = Math.max(MIN_EVENT_HEIGHT_PX, newZoomLevel * diff);
|
|
78
82
|
},
|
|
79
|
-
[layout.
|
|
83
|
+
[layout.event]
|
|
80
84
|
);
|
|
81
85
|
|
|
82
86
|
useAnimatedReaction(
|
package/src/index.tsx
CHANGED
|
@@ -17,6 +17,7 @@ import moment, { type Moment } from "moment-timezone";
|
|
|
17
17
|
import React, {
|
|
18
18
|
forwardRef,
|
|
19
19
|
type Ref,
|
|
20
|
+
useCallback,
|
|
20
21
|
useImperativeHandle,
|
|
21
22
|
useMemo,
|
|
22
23
|
useRef,
|
|
@@ -25,6 +26,7 @@ import { GestureRef } from "react-native-gesture-handler/lib/typescript/handlers
|
|
|
25
26
|
import { IsEditingProvider } from "./hooks/use-is-editing";
|
|
26
27
|
import { EventsProvider, useEvents } from "./hooks/use-events";
|
|
27
28
|
import type { CalendarEvent, Config, onCreateEvent, ThemeStyle } from "./types";
|
|
29
|
+
import { LayoutChangeEvent } from "react-native/Libraries/Types/CoreEventTypes";
|
|
28
30
|
|
|
29
31
|
export * from "./types";
|
|
30
32
|
|
|
@@ -81,7 +83,7 @@ type EventCalenderContentProps<T extends CalendarEvent> = {
|
|
|
81
83
|
};
|
|
82
84
|
|
|
83
85
|
export type EventCalendarMethods = {
|
|
84
|
-
scrollToTime: (minutes: number, animated?: boolean) => void;
|
|
86
|
+
scrollToTime: (minutes: number, animated?: boolean, offset?: number) => void;
|
|
85
87
|
};
|
|
86
88
|
|
|
87
89
|
function EventCalendarContentInner<T extends CalendarEvent>(
|
|
@@ -117,13 +119,18 @@ function EventCalendarContentInner<T extends CalendarEvent>(
|
|
|
117
119
|
|
|
118
120
|
const refNewEvent = useRef<GestureRef>(null);
|
|
119
121
|
const refScrollView = useRef<ScrollView>(null);
|
|
122
|
+
const refScrollViewHeight = useRef<number>(0);
|
|
123
|
+
|
|
124
|
+
const onLayoutScrollView = useCallback((event: LayoutChangeEvent) => {
|
|
125
|
+
refScrollViewHeight.current = event.nativeEvent.layout.height;
|
|
126
|
+
}, []);
|
|
120
127
|
|
|
121
128
|
useImperativeHandle(
|
|
122
129
|
refMethods,
|
|
123
130
|
() => ({
|
|
124
|
-
scrollToTime: (time: number, animated = true) => {
|
|
131
|
+
scrollToTime: (time: number, animated = true, offset = 2.5) => {
|
|
125
132
|
refScrollView.current?.scrollTo({
|
|
126
|
-
y: time * zoomLevel.value,
|
|
133
|
+
y: time * zoomLevel.value - refScrollViewHeight.current / offset,
|
|
127
134
|
animated,
|
|
128
135
|
});
|
|
129
136
|
},
|
|
@@ -167,6 +174,7 @@ function EventCalendarContentInner<T extends CalendarEvent>(
|
|
|
167
174
|
>
|
|
168
175
|
<AllDayEvents />
|
|
169
176
|
<ScrollView
|
|
177
|
+
onLayout={onLayoutScrollView}
|
|
170
178
|
bounces={false}
|
|
171
179
|
keyboardShouldPersistTaps="always"
|
|
172
180
|
style={[styles.scrollView, theme?.scrollView]}
|
package/src/utils/globals.ts
CHANGED