@sunsama/event-calendar 0.7.0 → 0.8.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.
@@ -30,8 +30,10 @@ const AllDayEvents = /*#__PURE__*/(0, _react.memo)(() => {
30
30
  if (!newState) {
31
31
  measuredHeight.value = (0, _reactNativeReanimated.withTiming)(originalHeight.value, {
32
32
  duration: 250
33
- }, () => {
34
- (0, _reactNativeReanimated.runOnJS)(setShowAllDayEvents)(newState);
33
+ }, finished => {
34
+ if (finished) {
35
+ (0, _reactNativeReanimated.runOnJS)(setShowAllDayEvents)(newState);
36
+ }
35
37
  });
36
38
  } else {
37
39
  setShowAllDayEvents(newState);
@@ -46,6 +48,8 @@ const AllDayEvents = /*#__PURE__*/(0, _react.memo)(() => {
46
48
  }, [canCreateEvents, onCreateEvent]);
47
49
  const allDayEvents = showAllDayEvents ? layout.allDayEventsLayout : layout.allDayEventsLayout.slice(0, maxAllDayEvents);
48
50
  const restEventAmount = layout.allDayEventsLayout.length - allDayEvents.length;
51
+ const moreAvailable = layout.allDayEventsLayout.length > maxAllDayEvents;
52
+ const refView = (0, _reactNativeReanimated.useAnimatedRef)();
49
53
  const onContentLayout = (0, _react.useCallback)(e => {
50
54
  const {
51
55
  height
@@ -57,27 +61,50 @@ const AllDayEvents = /*#__PURE__*/(0, _react.memo)(() => {
57
61
  }
58
62
  measuredHeight.value = (0, _reactNativeReanimated.withTiming)(height, {
59
63
  duration: 250
64
+ }, () => {
65
+ if (moreAvailable) {
66
+ return;
67
+ }
68
+
69
+ // Once we have done the animation we need to measure the height as
70
+ // the height might have changed due to the amount of events
71
+ const measured = (0, _reactNativeReanimated.measure)(refView);
72
+ if (measured?.height && measured.height !== originalHeight.value) {
73
+ originalHeight.value = measured.height;
74
+ }
60
75
  });
61
- }, [measuredHeight, originalHeight]);
62
- const animatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
76
+ }, [originalHeight, measuredHeight, refView, moreAvailable]);
77
+ const animatedStyleRight = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
63
78
  return {
64
79
  minHeight: 1,
65
80
  height: measuredHeight.value
66
81
  };
67
82
  });
68
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
83
+ const animatedStyleLeft = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
84
+ return {
85
+ width: 50,
86
+ height: measuredHeight.value + _globals.DEFAULT_MINUTE_HEIGHT * 24
87
+ };
88
+ });
89
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
69
90
  style: [styles.container, theme?.allDayContainer],
70
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
91
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.Pressable, {
92
+ onPress: onPressCreateEvent,
93
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
94
+ style: [animatedStyleLeft]
95
+ })
96
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
71
97
  style: [styles.eventContainer, theme?.allDayEventContainer],
72
98
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
73
- style: animatedStyle,
99
+ style: animatedStyleRight,
100
+ ref: refView,
74
101
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
75
102
  onLayout: onContentLayout,
76
103
  children: allDayEvents.map(allDayLayout => /*#__PURE__*/(0, _jsxRuntime.jsx)(_eventContainer.default, {
77
104
  layout: allDayLayout
78
105
  }, allDayLayout.event.id))
79
106
  })
80
- }), layout.allDayEventsLayout.length > maxAllDayEvents ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.Pressable, {
107
+ }), moreAvailable ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.Pressable, {
81
108
  onPress: onPressShowMore,
82
109
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
83
110
  style: [styles.moreContainer, theme?.allDayShowMoreContainer],
@@ -92,17 +119,18 @@ const AllDayEvents = /*#__PURE__*/(0, _react.memo)(() => {
92
119
  style: [styles.deadSpace, theme?.allDayDeadSpace]
93
120
  })
94
121
  })]
95
- })
122
+ })]
96
123
  });
97
124
  }, () => true);
98
125
  var _default = exports.default = AllDayEvents;
99
126
  const styles = _reactNative.StyleSheet.create({
100
127
  container: {
128
+ flexDirection: "row",
101
129
  borderBottomWidth: _reactNative.StyleSheet.hairlineWidth,
102
130
  borderColor: "black"
103
131
  },
104
132
  eventContainer: {
105
- marginLeft: 50,
133
+ flex: 1,
106
134
  marginRight: 10,
107
135
  borderLeftWidth: _reactNative.StyleSheet.hairlineWidth,
108
136
  borderColor: "black"
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_globals","_reactNative","_eventContainer","_interopRequireDefault","_reactNativeGestureHandler","_reactNativeReanimated","_interopRequireWildcard","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","AllDayEvents","memo","layout","theme","maxAllDayEvents","onCreateEvent","canCreateEvents","useContext","ConfigProvider","showAllDayEvents","setShowAllDayEvents","useState","measuredHeight","useSharedValue","originalHeight","onPressShowMore","useCallback","newState","value","withTiming","duration","runOnJS","onPressCreateEvent","isAllDay","allDayEvents","allDayEventsLayout","slice","restEventAmount","length","onContentLayout","height","nativeEvent","animatedStyle","useAnimatedStyle","minHeight","jsx","View","style","styles","container","allDayContainer","children","jsxs","eventContainer","allDayEventContainer","onLayout","map","allDayLayout","event","id","Pressable","onPress","moreContainer","allDayShowMoreContainer","Text","moreContainerText","allDayShowMoreText","deadSpace","allDayDeadSpace","_default","exports","StyleSheet","create","borderBottomWidth","hairlineWidth","borderColor","marginLeft","marginRight","borderLeftWidth","padding","fontSize","fontWeight","color","DEFAULT_MINUTE_HEIGHT"],"sourceRoot":"../../../src","sources":["components/all-day-events.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_globals","_reactNative","_eventContainer","_interopRequireDefault","_reactNativeGestureHandler","_reactNativeReanimated","_interopRequireWildcard","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","AllDayEvents","memo","layout","theme","maxAllDayEvents","onCreateEvent","canCreateEvents","useContext","ConfigProvider","showAllDayEvents","setShowAllDayEvents","useState","measuredHeight","useSharedValue","originalHeight","onPressShowMore","useCallback","newState","value","withTiming","duration","finished","runOnJS","onPressCreateEvent","isAllDay","allDayEvents","allDayEventsLayout","slice","restEventAmount","length","moreAvailable","refView","useAnimatedRef","onContentLayout","height","nativeEvent","measured","measure","animatedStyleRight","useAnimatedStyle","minHeight","animatedStyleLeft","width","DEFAULT_MINUTE_HEIGHT","jsxs","View","style","styles","container","allDayContainer","children","jsx","Pressable","onPress","eventContainer","allDayEventContainer","ref","onLayout","map","allDayLayout","event","id","moreContainer","allDayShowMoreContainer","Text","moreContainerText","allDayShowMoreText","deadSpace","allDayDeadSpace","_default","exports","StyleSheet","create","flexDirection","borderBottomWidth","hairlineWidth","borderColor","flex","marginRight","borderLeftWidth","padding","fontSize","fontWeight","color"],"sourceRoot":"../../../src","sources":["components/all-day-events.tsx"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ import { ConfigProvider, DEFAULT_MINUTE_HEIGHT } from "../utils/globals.js";
5
5
  import { StyleSheet, Text, View } from "react-native";
6
6
  import EventContainer from "../components/event-container.js";
7
7
  import { Pressable } from "react-native-gesture-handler";
8
- import Animated, { runOnJS, useAnimatedStyle, useSharedValue, withTiming } from "react-native-reanimated";
8
+ import Animated, { measure, runOnJS, useAnimatedRef, useAnimatedStyle, useSharedValue, withTiming } from "react-native-reanimated";
9
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
10
  const AllDayEvents = /*#__PURE__*/memo(() => {
11
11
  const {
@@ -23,8 +23,10 @@ const AllDayEvents = /*#__PURE__*/memo(() => {
23
23
  if (!newState) {
24
24
  measuredHeight.value = withTiming(originalHeight.value, {
25
25
  duration: 250
26
- }, () => {
27
- runOnJS(setShowAllDayEvents)(newState);
26
+ }, finished => {
27
+ if (finished) {
28
+ runOnJS(setShowAllDayEvents)(newState);
29
+ }
28
30
  });
29
31
  } else {
30
32
  setShowAllDayEvents(newState);
@@ -39,6 +41,8 @@ const AllDayEvents = /*#__PURE__*/memo(() => {
39
41
  }, [canCreateEvents, onCreateEvent]);
40
42
  const allDayEvents = showAllDayEvents ? layout.allDayEventsLayout : layout.allDayEventsLayout.slice(0, maxAllDayEvents);
41
43
  const restEventAmount = layout.allDayEventsLayout.length - allDayEvents.length;
44
+ const moreAvailable = layout.allDayEventsLayout.length > maxAllDayEvents;
45
+ const refView = useAnimatedRef();
42
46
  const onContentLayout = useCallback(e => {
43
47
  const {
44
48
  height
@@ -50,27 +54,50 @@ const AllDayEvents = /*#__PURE__*/memo(() => {
50
54
  }
51
55
  measuredHeight.value = withTiming(height, {
52
56
  duration: 250
57
+ }, () => {
58
+ if (moreAvailable) {
59
+ return;
60
+ }
61
+
62
+ // Once we have done the animation we need to measure the height as
63
+ // the height might have changed due to the amount of events
64
+ const measured = measure(refView);
65
+ if (measured?.height && measured.height !== originalHeight.value) {
66
+ originalHeight.value = measured.height;
67
+ }
53
68
  });
54
- }, [measuredHeight, originalHeight]);
55
- const animatedStyle = useAnimatedStyle(() => {
69
+ }, [originalHeight, measuredHeight, refView, moreAvailable]);
70
+ const animatedStyleRight = useAnimatedStyle(() => {
56
71
  return {
57
72
  minHeight: 1,
58
73
  height: measuredHeight.value
59
74
  };
60
75
  });
61
- return /*#__PURE__*/_jsx(View, {
76
+ const animatedStyleLeft = useAnimatedStyle(() => {
77
+ return {
78
+ width: 50,
79
+ height: measuredHeight.value + DEFAULT_MINUTE_HEIGHT * 24
80
+ };
81
+ });
82
+ return /*#__PURE__*/_jsxs(View, {
62
83
  style: [styles.container, theme?.allDayContainer],
63
- children: /*#__PURE__*/_jsxs(View, {
84
+ children: [/*#__PURE__*/_jsx(Pressable, {
85
+ onPress: onPressCreateEvent,
86
+ children: /*#__PURE__*/_jsx(Animated.View, {
87
+ style: [animatedStyleLeft]
88
+ })
89
+ }), /*#__PURE__*/_jsxs(View, {
64
90
  style: [styles.eventContainer, theme?.allDayEventContainer],
65
91
  children: [/*#__PURE__*/_jsx(Animated.View, {
66
- style: animatedStyle,
92
+ style: animatedStyleRight,
93
+ ref: refView,
67
94
  children: /*#__PURE__*/_jsx(View, {
68
95
  onLayout: onContentLayout,
69
96
  children: allDayEvents.map(allDayLayout => /*#__PURE__*/_jsx(EventContainer, {
70
97
  layout: allDayLayout
71
98
  }, allDayLayout.event.id))
72
99
  })
73
- }), layout.allDayEventsLayout.length > maxAllDayEvents ? /*#__PURE__*/_jsx(Pressable, {
100
+ }), moreAvailable ? /*#__PURE__*/_jsx(Pressable, {
74
101
  onPress: onPressShowMore,
75
102
  children: /*#__PURE__*/_jsx(View, {
76
103
  style: [styles.moreContainer, theme?.allDayShowMoreContainer],
@@ -85,17 +112,18 @@ const AllDayEvents = /*#__PURE__*/memo(() => {
85
112
  style: [styles.deadSpace, theme?.allDayDeadSpace]
86
113
  })
87
114
  })]
88
- })
115
+ })]
89
116
  });
90
117
  }, () => true);
91
118
  export default AllDayEvents;
92
119
  const styles = StyleSheet.create({
93
120
  container: {
121
+ flexDirection: "row",
94
122
  borderBottomWidth: StyleSheet.hairlineWidth,
95
123
  borderColor: "black"
96
124
  },
97
125
  eventContainer: {
98
- marginLeft: 50,
126
+ flex: 1,
99
127
  marginRight: 10,
100
128
  borderLeftWidth: StyleSheet.hairlineWidth,
101
129
  borderColor: "black"
@@ -1 +1 @@
1
- {"version":3,"names":["memo","useCallback","useContext","useState","ConfigProvider","DEFAULT_MINUTE_HEIGHT","StyleSheet","Text","View","EventContainer","Pressable","Animated","runOnJS","useAnimatedStyle","useSharedValue","withTiming","jsx","_jsx","jsxs","_jsxs","AllDayEvents","layout","theme","maxAllDayEvents","onCreateEvent","canCreateEvents","showAllDayEvents","setShowAllDayEvents","measuredHeight","originalHeight","onPressShowMore","newState","value","duration","onPressCreateEvent","isAllDay","allDayEvents","allDayEventsLayout","slice","restEventAmount","length","onContentLayout","e","height","nativeEvent","animatedStyle","minHeight","style","styles","container","allDayContainer","children","eventContainer","allDayEventContainer","onLayout","map","allDayLayout","event","id","onPress","moreContainer","allDayShowMoreContainer","moreContainerText","allDayShowMoreText","deadSpace","allDayDeadSpace","create","borderBottomWidth","hairlineWidth","borderColor","marginLeft","marginRight","borderLeftWidth","padding","fontSize","fontWeight","color"],"sourceRoot":"../../../src","sources":["components/all-day-events.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["memo","useCallback","useContext","useState","ConfigProvider","DEFAULT_MINUTE_HEIGHT","StyleSheet","Text","View","EventContainer","Pressable","Animated","measure","runOnJS","useAnimatedRef","useAnimatedStyle","useSharedValue","withTiming","jsx","_jsx","jsxs","_jsxs","AllDayEvents","layout","theme","maxAllDayEvents","onCreateEvent","canCreateEvents","showAllDayEvents","setShowAllDayEvents","measuredHeight","originalHeight","onPressShowMore","newState","value","duration","finished","onPressCreateEvent","isAllDay","allDayEvents","allDayEventsLayout","slice","restEventAmount","length","moreAvailable","refView","onContentLayout","e","height","nativeEvent","measured","animatedStyleRight","minHeight","animatedStyleLeft","width","style","styles","container","allDayContainer","children","onPress","eventContainer","allDayEventContainer","ref","onLayout","map","allDayLayout","event","id","moreContainer","allDayShowMoreContainer","moreContainerText","allDayShowMoreText","deadSpace","allDayDeadSpace","create","flexDirection","borderBottomWidth","hairlineWidth","borderColor","flex","marginRight","borderLeftWidth","padding","fontSize","fontWeight","color"],"sourceRoot":"../../../src","sources":["components/all-day-events.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"all-day-events.d.ts","sourceRoot":"","sources":["../../../../src/components/all-day-events.tsx"],"names":[],"mappings":"AAaA,QAAA,MAAM,YAAY,wEAgGjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"all-day-events.d.ts","sourceRoot":"","sources":["../../../../src/components/all-day-events.tsx"],"names":[],"mappings":"AAeA,QAAA,MAAM,YAAY,wEA2HjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"all-day-events.d.ts","sourceRoot":"","sources":["../../../../src/components/all-day-events.tsx"],"names":[],"mappings":"AAaA,QAAA,MAAM,YAAY,wEAgGjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"all-day-events.d.ts","sourceRoot":"","sources":["../../../../src/components/all-day-events.tsx"],"names":[],"mappings":"AAeA,QAAA,MAAM,YAAY,wEA2HjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sunsama/event-calendar",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "Event calendar.",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",
@@ -4,7 +4,9 @@ import { LayoutChangeEvent, StyleSheet, Text, View } from "react-native";
4
4
  import EventContainer from "../components/event-container";
5
5
  import { Pressable } from "react-native-gesture-handler";
6
6
  import Animated, {
7
+ measure,
7
8
  runOnJS,
9
+ useAnimatedRef,
8
10
  useAnimatedStyle,
9
11
  useSharedValue,
10
12
  withTiming,
@@ -29,8 +31,10 @@ const AllDayEvents = memo(
29
31
  {
30
32
  duration: 250,
31
33
  },
32
- () => {
33
- runOnJS(setShowAllDayEvents)(newState);
34
+ (finished) => {
35
+ if (finished) {
36
+ runOnJS(setShowAllDayEvents)(newState);
37
+ }
34
38
  }
35
39
  );
36
40
  } else {
@@ -50,6 +54,9 @@ const AllDayEvents = memo(
50
54
  const restEventAmount =
51
55
  layout.allDayEventsLayout.length - allDayEvents.length;
52
56
 
57
+ const moreAvailable = layout.allDayEventsLayout.length > maxAllDayEvents;
58
+
59
+ const refView = useAnimatedRef();
53
60
  const onContentLayout = useCallback(
54
61
  (e: LayoutChangeEvent) => {
55
62
  const { height } = e.nativeEvent.layout;
@@ -60,22 +67,44 @@ const AllDayEvents = memo(
60
67
  return;
61
68
  }
62
69
 
63
- measuredHeight.value = withTiming(height, { duration: 250 });
70
+ measuredHeight.value = withTiming(height, { duration: 250 }, () => {
71
+ if (moreAvailable) {
72
+ return;
73
+ }
74
+
75
+ // Once we have done the animation we need to measure the height as
76
+ // the height might have changed due to the amount of events
77
+ const measured = measure(refView);
78
+
79
+ if (measured?.height && measured.height !== originalHeight.value) {
80
+ originalHeight.value = measured.height;
81
+ }
82
+ });
64
83
  },
65
- [measuredHeight, originalHeight]
84
+ [originalHeight, measuredHeight, refView, moreAvailable]
66
85
  );
67
86
 
68
- const animatedStyle = useAnimatedStyle(() => {
87
+ const animatedStyleRight = useAnimatedStyle(() => {
69
88
  return {
70
89
  minHeight: 1,
71
90
  height: measuredHeight.value,
72
91
  };
73
92
  });
74
93
 
94
+ const animatedStyleLeft = useAnimatedStyle(() => {
95
+ return {
96
+ width: 50,
97
+ height: measuredHeight.value + DEFAULT_MINUTE_HEIGHT * 24,
98
+ };
99
+ });
100
+
75
101
  return (
76
102
  <View style={[styles.container, theme?.allDayContainer]}>
103
+ <Pressable onPress={onPressCreateEvent}>
104
+ <Animated.View style={[animatedStyleLeft]} />
105
+ </Pressable>
77
106
  <View style={[styles.eventContainer, theme?.allDayEventContainer]}>
78
- <Animated.View style={animatedStyle}>
107
+ <Animated.View style={animatedStyleRight} ref={refView}>
79
108
  <View onLayout={onContentLayout}>
80
109
  {allDayEvents.map((allDayLayout: AllDayEventLayoutType<any>) => (
81
110
  <EventContainer
@@ -85,7 +114,7 @@ const AllDayEvents = memo(
85
114
  ))}
86
115
  </View>
87
116
  </Animated.View>
88
- {layout.allDayEventsLayout.length > maxAllDayEvents ? (
117
+ {moreAvailable ? (
89
118
  <Pressable onPress={onPressShowMore}>
90
119
  <View
91
120
  style={[styles.moreContainer, theme?.allDayShowMoreContainer]}
@@ -113,11 +142,12 @@ export default AllDayEvents;
113
142
 
114
143
  const styles = StyleSheet.create({
115
144
  container: {
145
+ flexDirection: "row",
116
146
  borderBottomWidth: StyleSheet.hairlineWidth,
117
147
  borderColor: "black",
118
148
  },
119
149
  eventContainer: {
120
- marginLeft: 50,
150
+ flex: 1,
121
151
  marginRight: 10,
122
152
  borderLeftWidth: StyleSheet.hairlineWidth,
123
153
  borderColor: "black",