react-native-ll-calendar 0.17.4 → 0.17.5

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.
@@ -6,6 +6,7 @@ import dayjs from 'dayjs';
6
6
  import { WeekPanel } from "./WeekPanel.js";
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  const HALF_PANEL_LENGTH = 120;
9
+ const EMPTY_EVENTS = [];
9
10
  function getWeekStart(date, weekStartsOn) {
10
11
  const djs = dayjs(date);
11
12
  if (weekStartsOn === 0) {
@@ -63,6 +64,34 @@ export const WeekResourcesCalendar = ({
63
64
  });
64
65
  return [...prevPanels, startOfDefaultWeek.format('YYYY-MM-DD'), ...nextPanels];
65
66
  }, [dateState, weekStartsOn]);
67
+ const eventsByWeek = useMemo(() => {
68
+ const map = new Map();
69
+ if (panels.length === 0) return map;
70
+ const panelSet = new Set(panels);
71
+ const firstWeek = dayjs(panels[0]);
72
+ const lastWeek = dayjs(panels[panels.length - 1]);
73
+ for (const event of events) {
74
+ const startWeek = getWeekStart(new Date(event.start), weekStartsOn);
75
+ const endWeek = getWeekStart(new Date(event.end), weekStartsOn);
76
+
77
+ // Clamp the iteration range to the available panels.
78
+ let cursor = startWeek.isBefore(firstWeek) ? firstWeek : startWeek;
79
+ const last = endWeek.isAfter(lastWeek) ? lastWeek : endWeek;
80
+ while (!cursor.isAfter(last)) {
81
+ const weekKey = cursor.format('YYYY-MM-DD');
82
+ if (panelSet.has(weekKey)) {
83
+ const list = map.get(weekKey);
84
+ if (list) {
85
+ list.push(event);
86
+ } else {
87
+ map.set(weekKey, [event]);
88
+ }
89
+ }
90
+ cursor = cursor.add(1, 'week');
91
+ }
92
+ }
93
+ return map;
94
+ }, [events, panels, weekStartsOn]);
66
95
  return /*#__PURE__*/_jsx(FlatList, {
67
96
  horizontal: true,
68
97
  pagingEnabled: true,
@@ -80,7 +109,7 @@ export const WeekResourcesCalendar = ({
80
109
  weekKey: item,
81
110
  width: width,
82
111
  resources: resources,
83
- events: events,
112
+ events: eventsByWeek.get(item) ?? EMPTY_EVENTS,
84
113
  eventHeight: eventHeight,
85
114
  onPressCell: onPressCell,
86
115
  onLongPressCell: onLongPressCell,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useMemo","FlatList","useWindowDimensions","dayjs","WeekPanel","jsx","_jsx","HALF_PANEL_LENGTH","getWeekStart","date","weekStartsOn","djs","startOf","day","subtract","WeekResourcesCalendar","defaultDate","onChangeDate","resources","events","eventHeight","onPressCell","onLongPressCell","delayLongPressCell","onPressEvent","onLongPressEvent","delayLongPressEvent","prioritizeCellInteraction","eventTextStyle","eventEllipsizeMode","allowFontScaling","renderEventOverlay","dateCellContainerStyle","cellContainerStyle","renderDateLabel","renderResourceNameLabel","onRefresh","refreshing","bottomSpacing","fixedRowCount","_activeIndex","setActiveIndex","dateState","width","panels","startOfDefaultWeek","prevPanels","Array","from","length","_","i","format","nextPanels","add","horizontal","pagingEnabled","data","keyExtractor","item","initialScrollIndex","getItemLayout","_data","index","offset","renderItem","weekKey","onMomentumScrollEnd","e","scrollX","nativeEvent","contentOffset","x","newIndex","Math","round","toDate","showsHorizontalScrollIndicator","decelerationRate","windowSize","initialNumToRender","maxToRenderPerBatch","removeClippedSubviews"],"sourceRoot":"../../../../src","sources":["calendar/week-resources-calendar/WeekResourcesCalendar.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","useMemo","FlatList","useWindowDimensions","dayjs","WeekPanel","jsx","_jsx","HALF_PANEL_LENGTH","EMPTY_EVENTS","getWeekStart","date","weekStartsOn","djs","startOf","day","subtract","WeekResourcesCalendar","defaultDate","onChangeDate","resources","events","eventHeight","onPressCell","onLongPressCell","delayLongPressCell","onPressEvent","onLongPressEvent","delayLongPressEvent","prioritizeCellInteraction","eventTextStyle","eventEllipsizeMode","allowFontScaling","renderEventOverlay","dateCellContainerStyle","cellContainerStyle","renderDateLabel","renderResourceNameLabel","onRefresh","refreshing","bottomSpacing","fixedRowCount","_activeIndex","setActiveIndex","dateState","width","panels","startOfDefaultWeek","prevPanels","Array","from","length","_","i","format","nextPanels","add","eventsByWeek","map","Map","panelSet","Set","firstWeek","lastWeek","event","startWeek","Date","start","endWeek","end","cursor","isBefore","last","isAfter","weekKey","has","list","get","push","set","horizontal","pagingEnabled","data","keyExtractor","item","initialScrollIndex","getItemLayout","_data","index","offset","renderItem","onMomentumScrollEnd","e","scrollX","nativeEvent","contentOffset","x","newIndex","Math","round","toDate","showsHorizontalScrollIndicator","decelerationRate","windowSize","initialNumToRender","maxToRenderPerBatch","removeClippedSubviews"],"sourceRoot":"../../../../src","sources":["calendar/week-resources-calendar/WeekResourcesCalendar.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"WeekResourcesCalendar.d.ts","sourceRoot":"","sources":["../../../../../src/calendar/week-resources-calendar/WeekResourcesCalendar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACd,MAAM,gCAAgC,CAAC;AAKxC,KAAK,0BAA0B,GAAG;IAChC,WAAW,EAAE,IAAI,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/D,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9C,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAClD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,SAAS,CAAC;IACrD,kBAAkB,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IACzD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,SAAS,CAAC;IACzD,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC;IACnD,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC;IAC3E,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IACpD,uBAAuB,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IAC5E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAcF,eAAO,MAAM,qBAAqB,GAAI,qaA0BnC,0BAA0B,4CAwF5B,CAAC"}
1
+ {"version":3,"file":"WeekResourcesCalendar.d.ts","sourceRoot":"","sources":["../../../../../src/calendar/week-resources-calendar/WeekResourcesCalendar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACd,MAAM,gCAAgC,CAAC;AAOxC,KAAK,0BAA0B,GAAG;IAChC,WAAW,EAAE,IAAI,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/D,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9C,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAClD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,SAAS,CAAC;IACrD,kBAAkB,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IACzD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,SAAS,CAAC;IACzD,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC;IACnD,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC;IAC3E,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IACpD,uBAAuB,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IAC5E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAcF,eAAO,MAAM,qBAAqB,GAAI,qaA0BnC,0BAA0B,4CAyH5B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-ll-calendar",
3
- "version": "0.17.4",
3
+ "version": "0.17.5",
4
4
  "description": "ReactNative Calendar Library",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -15,6 +15,8 @@ import { WeekPanel } from './WeekPanel';
15
15
 
16
16
  const HALF_PANEL_LENGTH = 120;
17
17
 
18
+ const EMPTY_EVENTS: CalendarEvent[] = [];
19
+
18
20
  type WeekResourcesCalendarProps = {
19
21
  defaultDate: Date;
20
22
  weekStartsOn?: WeekStartsOn;
@@ -117,6 +119,39 @@ export const WeekResourcesCalendar = ({
117
119
  ];
118
120
  }, [dateState, weekStartsOn]);
119
121
 
122
+ const eventsByWeek = useMemo(() => {
123
+ const map = new Map<string, CalendarEvent[]>();
124
+ if (panels.length === 0) return map;
125
+
126
+ const panelSet = new Set(panels);
127
+ const firstWeek = dayjs(panels[0]);
128
+ const lastWeek = dayjs(panels[panels.length - 1]!);
129
+
130
+ for (const event of events) {
131
+ const startWeek = getWeekStart(new Date(event.start), weekStartsOn);
132
+ const endWeek = getWeekStart(new Date(event.end), weekStartsOn);
133
+
134
+ // Clamp the iteration range to the available panels.
135
+ let cursor = startWeek.isBefore(firstWeek) ? firstWeek : startWeek;
136
+ const last = endWeek.isAfter(lastWeek) ? lastWeek : endWeek;
137
+
138
+ while (!cursor.isAfter(last)) {
139
+ const weekKey = cursor.format('YYYY-MM-DD');
140
+ if (panelSet.has(weekKey)) {
141
+ const list = map.get(weekKey);
142
+ if (list) {
143
+ list.push(event);
144
+ } else {
145
+ map.set(weekKey, [event]);
146
+ }
147
+ }
148
+ cursor = cursor.add(1, 'week');
149
+ }
150
+ }
151
+
152
+ return map;
153
+ }, [events, panels, weekStartsOn]);
154
+
120
155
  return (
121
156
  <FlatList
122
157
  horizontal
@@ -134,7 +169,7 @@ export const WeekResourcesCalendar = ({
134
169
  weekKey={item}
135
170
  width={width}
136
171
  resources={resources}
137
- events={events}
172
+ events={eventsByWeek.get(item) ?? EMPTY_EVENTS}
138
173
  eventHeight={eventHeight}
139
174
  onPressCell={onPressCell}
140
175
  onLongPressCell={onLongPressCell}