@sunsama/event-calendar 0.10.2 → 0.10.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/lib/commonjs/components/drag-bar.js +6 -2
- package/lib/commonjs/components/drag-bar.js.map +1 -1
- package/lib/commonjs/components/edit-event-container.js +34 -6
- package/lib/commonjs/components/edit-event-container.js.map +1 -1
- package/lib/commonjs/hooks/use-is-editing.js +2 -26
- package/lib/commonjs/hooks/use-is-editing.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils/pan-edit-event-gesture.js +1 -1
- package/lib/module/components/drag-bar.js +6 -2
- package/lib/module/components/drag-bar.js.map +1 -1
- package/lib/module/components/edit-event-container.js +35 -7
- package/lib/module/components/edit-event-container.js.map +1 -1
- package/lib/module/hooks/use-is-editing.js +3 -27
- package/lib/module/hooks/use-is-editing.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/pan-edit-event-gesture.js +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/hooks/use-is-editing.d.ts +3 -6
- package/lib/typescript/commonjs/hooks/use-is-editing.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +16 -14
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/types.d.ts +6 -2
- package/lib/typescript/commonjs/types.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/hooks/use-is-editing.d.ts +3 -6
- package/lib/typescript/module/hooks/use-is-editing.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +16 -14
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/types.d.ts +6 -2
- package/lib/typescript/module/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/drag-bar.tsx +8 -12
- package/src/components/edit-event-container.tsx +57 -5
- package/src/hooks/use-is-editing.tsx +4 -40
- package/src/index.tsx +29 -35
- package/src/types.ts +9 -2
- package/src/utils/pan-edit-event-gesture.ts +1 -1
package/src/index.tsx
CHANGED
|
@@ -23,12 +23,15 @@ import React, {
|
|
|
23
23
|
useRef,
|
|
24
24
|
} from "react";
|
|
25
25
|
import { GestureRef } from "react-native-gesture-handler/lib/typescript/handlers/gestures/gesture";
|
|
26
|
-
import {
|
|
27
|
-
IsEditingProvider,
|
|
28
|
-
type IsEditingProviderInnerMethods,
|
|
29
|
-
} from "./hooks/use-is-editing";
|
|
26
|
+
import { IsEditingProvider } from "./hooks/use-is-editing";
|
|
30
27
|
import { EventsProvider, useEvents } from "./hooks/use-events";
|
|
31
|
-
import type {
|
|
28
|
+
import type {
|
|
29
|
+
CalendarEvent,
|
|
30
|
+
Config,
|
|
31
|
+
IsEditingProviderInnerMethods,
|
|
32
|
+
onCreateEvent,
|
|
33
|
+
ThemeStyle,
|
|
34
|
+
} from "./types";
|
|
32
35
|
import {
|
|
33
36
|
LayoutChangeEvent,
|
|
34
37
|
NativeSyntheticEvent,
|
|
@@ -37,19 +40,11 @@ import type { NativeScrollEvent } from "react-native/Libraries/Components/Scroll
|
|
|
37
40
|
|
|
38
41
|
export * from "./types";
|
|
39
42
|
|
|
40
|
-
|
|
43
|
+
interface BaseProps<T extends CalendarEvent = CalendarEvent> {
|
|
41
44
|
initialEventEdit?: string;
|
|
42
45
|
onScroll?: (y: number) => void;
|
|
43
|
-
canCreateEvents?: boolean;
|
|
44
|
-
canEditEvent?: Config<T>["canEditEvent"];
|
|
45
|
-
dayDate: string;
|
|
46
|
-
events: T[];
|
|
47
46
|
fiveMinuteInterval?: boolean;
|
|
48
47
|
initialZoomLevel?: number;
|
|
49
|
-
defaultZoomLevel?: number;
|
|
50
|
-
maxZoomLevel?: number;
|
|
51
|
-
minZoomLevel?: number;
|
|
52
|
-
maxAllDayEvents?: number;
|
|
53
48
|
onCreateEvent?: onCreateEvent;
|
|
54
49
|
onEventEdit?: Config<T>["onEventEdit"];
|
|
55
50
|
onPressEvent?: Config<T>["onPressEvent"];
|
|
@@ -58,47 +53,46 @@ export type EventCalenderProps<T extends CalendarEvent> = {
|
|
|
58
53
|
renderNewEventContainer?: Config<T>["renderNewEventContainer"];
|
|
59
54
|
showTimeIndicator?: boolean;
|
|
60
55
|
theme?: ThemeStyle;
|
|
56
|
+
extraTimedComponents?: Config<T>["extraTimedComponents"];
|
|
57
|
+
onZoomChange?: Config<T>["onZoomChange"];
|
|
58
|
+
canCreateEvents?: boolean;
|
|
59
|
+
canEditEvent?: Config<T>["canEditEvent"];
|
|
60
|
+
defaultZoomLevel?: number;
|
|
61
|
+
maxZoomLevel?: number;
|
|
62
|
+
minZoomLevel?: number;
|
|
63
|
+
maxAllDayEvents?: number;
|
|
61
64
|
timeFormat?: string;
|
|
62
65
|
timezone?: string;
|
|
63
66
|
updateLocalStateAfterEdit?: boolean;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export interface EventCalenderProps<T extends CalendarEvent = CalendarEvent>
|
|
70
|
+
extends BaseProps<T> {
|
|
71
|
+
dayDate: string;
|
|
72
|
+
events: T[];
|
|
64
73
|
userCalendarId?: string;
|
|
65
|
-
|
|
66
|
-
onZoomChange?: Config<T>["onZoomChange"];
|
|
67
|
-
};
|
|
74
|
+
}
|
|
68
75
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
onScroll?: (y: number) => void;
|
|
76
|
+
interface EventCalenderContentProps<T extends CalendarEvent = CalendarEvent>
|
|
77
|
+
extends BaseProps<T> {
|
|
72
78
|
canCreateEvents: boolean;
|
|
73
79
|
canEditEvent: Config<T>["canEditEvent"];
|
|
74
80
|
startCalendarDate: Moment;
|
|
75
|
-
fiveMinuteInterval?: boolean;
|
|
76
|
-
initialZoomLevel?: number;
|
|
77
81
|
defaultZoomLevel: number;
|
|
78
82
|
maxZoomLevel: number;
|
|
79
83
|
minZoomLevel: number;
|
|
80
84
|
maxAllDayEvents: number;
|
|
81
|
-
onCreateEvent?: onCreateEvent;
|
|
82
|
-
onEventEdit?: Config<T>["onEventEdit"];
|
|
83
|
-
onPressEvent?: Config<T>["onPressEvent"];
|
|
84
|
-
renderDragBars?: Config<T>["renderDragBars"];
|
|
85
|
-
renderEvent: Config<T>["renderEvent"];
|
|
86
|
-
renderNewEventContainer?: Config<T>["renderNewEventContainer"];
|
|
87
|
-
showTimeIndicator?: boolean;
|
|
88
|
-
theme?: ThemeStyle;
|
|
89
85
|
timeFormat: string;
|
|
90
86
|
timezone: string;
|
|
91
87
|
updateLocalStateAfterEdit: boolean;
|
|
92
|
-
|
|
93
|
-
onZoomChange?: Config<T>["onZoomChange"];
|
|
94
|
-
};
|
|
88
|
+
}
|
|
95
89
|
|
|
96
|
-
export
|
|
90
|
+
export interface EventCalendarMethods {
|
|
97
91
|
scrollToTime: (minutes: number, animated?: boolean, offset?: number) => void;
|
|
98
92
|
scrollToOffset: (y: number, animated?: boolean) => void;
|
|
99
93
|
startEditMode: (eventId: string) => void;
|
|
100
94
|
endEditMode: () => void;
|
|
101
|
-
}
|
|
95
|
+
}
|
|
102
96
|
|
|
103
97
|
function EventCalendarContentInner<T extends CalendarEvent>(
|
|
104
98
|
{
|
package/src/types.ts
CHANGED
|
@@ -97,7 +97,7 @@ export interface OnEventEditParams<T extends CalendarEvent> {
|
|
|
97
97
|
};
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
export
|
|
100
|
+
export interface Config<T extends CalendarEvent> {
|
|
101
101
|
initialEventEdit?: string;
|
|
102
102
|
timezone: string;
|
|
103
103
|
timeFormat: string;
|
|
@@ -136,7 +136,7 @@ export type Config<T extends CalendarEvent> = {
|
|
|
136
136
|
updateLocalStateAfterEdit: boolean;
|
|
137
137
|
extraTimedComponents?: (zoomLevel: SharedValue<number>) => ReactNode;
|
|
138
138
|
onZoomChange?: (zoomLevel: number) => void;
|
|
139
|
-
}
|
|
139
|
+
}
|
|
140
140
|
|
|
141
141
|
export type PrefabHour = {
|
|
142
142
|
increment: number;
|
|
@@ -169,3 +169,10 @@ export enum EditStatus {
|
|
|
169
169
|
Finish,
|
|
170
170
|
Delete,
|
|
171
171
|
}
|
|
172
|
+
|
|
173
|
+
export interface IsEditingProviderInnerMethods<
|
|
174
|
+
T extends CalendarEvent = CalendarEvent,
|
|
175
|
+
> {
|
|
176
|
+
startEditing: (layout: PartDayEventLayoutType<T>) => void;
|
|
177
|
+
endEditing: () => void;
|
|
178
|
+
}
|
|
@@ -34,7 +34,7 @@ const gesturePan = <T extends CalendarEvent>(
|
|
|
34
34
|
let freshUpdatedStartTime;
|
|
35
35
|
|
|
36
36
|
if (fiveMinuteInterval) {
|
|
37
|
-
// Set the updated time in
|
|
37
|
+
// Set the updated time in 5 minute increments but make sure we never go lower
|
|
38
38
|
// than the first minute of the day
|
|
39
39
|
freshUpdatedStartTime = Math.max(
|
|
40
40
|
0,
|