react-native-ll-calendar 0.3.0 → 0.4.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 +43 -32
- package/lib/module/calendar/month-calendar/MonthCalendar.js +20 -38
- package/lib/module/calendar/month-calendar/MonthCalendar.js.map +1 -1
- package/lib/module/calendar/month-calendar/logic/useEvents.js +3 -7
- package/lib/module/calendar/month-calendar/logic/useEvents.js.map +1 -1
- package/lib/module/calendar/month-calendar/view/MonthCalendarViewItem.js +24 -42
- package/lib/module/calendar/month-calendar/view/MonthCalendarViewItem.js.map +1 -1
- package/lib/module/calendar/month-calendar/view/MonthCalendarWeekDayRow.js +62 -0
- package/lib/module/calendar/month-calendar/view/MonthCalendarWeekDayRow.js.map +1 -0
- package/lib/module/calendar/month-calendar/view/MonthCalendarWeekRow.js +47 -52
- package/lib/module/calendar/month-calendar/view/MonthCalendarWeekRow.js.map +1 -1
- package/lib/typescript/src/calendar/month-calendar/MonthCalendar.d.ts +3 -1
- package/lib/typescript/src/calendar/month-calendar/MonthCalendar.d.ts.map +1 -1
- package/lib/typescript/src/calendar/month-calendar/logic/useEvents.d.ts.map +1 -1
- package/lib/typescript/src/calendar/month-calendar/view/MonthCalendarViewItem.d.ts +3 -1
- package/lib/typescript/src/calendar/month-calendar/view/MonthCalendarViewItem.d.ts.map +1 -1
- package/lib/typescript/src/calendar/month-calendar/view/MonthCalendarWeekDayRow.d.ts +11 -0
- package/lib/typescript/src/calendar/month-calendar/view/MonthCalendarWeekDayRow.d.ts.map +1 -0
- package/lib/typescript/src/calendar/month-calendar/view/MonthCalendarWeekRow.d.ts +4 -4
- package/lib/typescript/src/calendar/month-calendar/view/MonthCalendarWeekRow.d.ts.map +1 -1
- package/lib/typescript/src/types/month-calendar.d.ts +3 -0
- package/lib/typescript/src/types/month-calendar.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/calendar/month-calendar/MonthCalendar.tsx +23 -39
- package/src/calendar/month-calendar/logic/useEvents.tsx +3 -5
- package/src/calendar/month-calendar/view/MonthCalendarViewItem.tsx +36 -41
- package/src/calendar/month-calendar/view/MonthCalendarWeekDayRow.tsx +79 -0
- package/src/calendar/month-calendar/view/MonthCalendarWeekRow.tsx +68 -81
- package/src/types/month-calendar.ts +3 -0
|
@@ -1,43 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import dayjs from 'dayjs';
|
|
4
|
-
import en from 'dayjs/locale/en';
|
|
5
4
|
import { StyleSheet, useWindowDimensions } from 'react-native';
|
|
6
5
|
import { Text, TouchableOpacity, View } from 'react-native';
|
|
7
6
|
import { CELL_BORDER_WIDTH, EVENT_GAP } from "../../../constants/size.js";
|
|
8
7
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
8
|
export const MonthCalendarWeekRow = props => {
|
|
10
|
-
const {
|
|
11
|
-
dates,
|
|
12
|
-
isWeekdayHeader,
|
|
13
|
-
events = [],
|
|
14
|
-
eventPosition,
|
|
15
|
-
onPressEvent,
|
|
16
|
-
onPressCell,
|
|
17
|
-
onLongPressCell,
|
|
18
|
-
delayLongPress = 500,
|
|
19
|
-
dayCellContainerStyle,
|
|
20
|
-
dayCellTextStyle,
|
|
21
|
-
locale = en,
|
|
22
|
-
weekdayCellContainerStyle,
|
|
23
|
-
weekdayCellTextStyle,
|
|
24
|
-
weekRowMinHeight,
|
|
25
|
-
todayCellTextStyle
|
|
26
|
-
} = props;
|
|
27
9
|
const eventHeight = 26;
|
|
28
10
|
const {
|
|
29
11
|
width: screenWidth
|
|
30
12
|
} = useWindowDimensions();
|
|
31
13
|
const dateColumnWidth = screenWidth / 7;
|
|
32
|
-
const weekId = dates[0]?.format('YYYY-MM-DD');
|
|
33
|
-
if (weekId && eventPosition) {
|
|
34
|
-
eventPosition.resetResource(weekId);
|
|
14
|
+
const weekId = props.dates[0]?.format('YYYY-MM-DD');
|
|
15
|
+
if (weekId && props.eventPosition) {
|
|
16
|
+
props.eventPosition.resetResource(weekId);
|
|
35
17
|
}
|
|
36
18
|
return /*#__PURE__*/_jsx(View, {
|
|
37
19
|
style: styles.container,
|
|
38
|
-
children: dates.map((djs, dateIndex) => {
|
|
39
|
-
const text =
|
|
40
|
-
const filteredEvents =
|
|
20
|
+
children: props.dates.map((djs, dateIndex) => {
|
|
21
|
+
const text = djs.format('D');
|
|
22
|
+
const filteredEvents = props.events?.filter(event => {
|
|
41
23
|
const startDjs = dayjs(event.start);
|
|
42
24
|
return startDjs.format('YYYY-MM-DD') === djs.format('YYYY-MM-DD') || dateIndex === 0 && startDjs.isBefore(djs);
|
|
43
25
|
}).sort((a, b) => {
|
|
@@ -49,9 +31,9 @@ export const MonthCalendarWeekRow = props => {
|
|
|
49
31
|
const bDiffDays = bEndDjs.diff(bStartDjs, 'day');
|
|
50
32
|
return bDiffDays - aDiffDays;
|
|
51
33
|
});
|
|
52
|
-
const
|
|
53
|
-
if (weekId && eventPosition) {
|
|
54
|
-
const rowNums = eventPosition.getRowNums({
|
|
34
|
+
const events = [];
|
|
35
|
+
if (weekId && props.eventPosition) {
|
|
36
|
+
const rowNums = props.eventPosition.getRowNums({
|
|
55
37
|
weekId,
|
|
56
38
|
date: djs.toDate()
|
|
57
39
|
});
|
|
@@ -59,11 +41,11 @@ export const MonthCalendarWeekRow = props => {
|
|
|
59
41
|
let eventIndex = 0;
|
|
60
42
|
for (let ii = 1; ii <= rowsLength; ii++) {
|
|
61
43
|
if (rowNums.includes(ii)) {
|
|
62
|
-
|
|
44
|
+
events.push(ii);
|
|
63
45
|
} else {
|
|
64
46
|
const event = filteredEvents[eventIndex];
|
|
65
47
|
if (event) {
|
|
66
|
-
|
|
48
|
+
events.push(event);
|
|
67
49
|
}
|
|
68
50
|
eventIndex++;
|
|
69
51
|
}
|
|
@@ -71,46 +53,46 @@ export const MonthCalendarWeekRow = props => {
|
|
|
71
53
|
}
|
|
72
54
|
return /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
73
55
|
style: [styles.dayCellCountainer, {
|
|
74
|
-
minHeight:
|
|
56
|
+
minHeight: props.weekRowMinHeight
|
|
75
57
|
}, {
|
|
76
58
|
zIndex: 7 - dateIndex
|
|
77
59
|
}],
|
|
78
60
|
onPress: () => {
|
|
79
|
-
onPressCell?.(djs.toDate());
|
|
61
|
+
props.onPressCell?.(djs.toDate());
|
|
80
62
|
},
|
|
81
63
|
onLongPress: () => {
|
|
82
|
-
onLongPressCell?.(djs.toDate());
|
|
64
|
+
props.onLongPressCell?.(djs.toDate());
|
|
83
65
|
},
|
|
84
|
-
delayLongPress:
|
|
66
|
+
delayLongPress: props.delayLongPressCell,
|
|
85
67
|
children: [/*#__PURE__*/_jsx(View, {
|
|
86
|
-
style: [styles.dayCellInner,
|
|
68
|
+
style: [styles.dayCellInner, props.dayCellContainerStyle?.(djs.toDate())]
|
|
87
69
|
}), /*#__PURE__*/_jsx(View, {
|
|
88
70
|
style: styles.dayCellLabel,
|
|
89
71
|
children: /*#__PURE__*/_jsx(Text, {
|
|
90
|
-
style: [styles.dayCellText,
|
|
72
|
+
style: [styles.dayCellText, props.dayCellTextStyle?.(djs.toDate()), dayjs(djs).isSame(dayjs(), 'day') ? props.todayCellTextStyle : {}],
|
|
91
73
|
children: text
|
|
92
74
|
})
|
|
93
|
-
}),
|
|
94
|
-
if (typeof
|
|
75
|
+
}), events.map((event, rowIndex) => {
|
|
76
|
+
if (typeof event === 'number') {
|
|
95
77
|
return /*#__PURE__*/_jsx(View, {
|
|
96
78
|
style: {
|
|
97
79
|
height: eventHeight,
|
|
98
80
|
marginBottom: EVENT_GAP
|
|
99
81
|
}
|
|
100
|
-
},
|
|
82
|
+
}, event);
|
|
101
83
|
}
|
|
102
|
-
const rawStartDjs = dayjs(
|
|
103
|
-
const startDjs = dateIndex === 0 ? djs : dayjs(
|
|
104
|
-
const endDjs = dayjs(
|
|
84
|
+
const rawStartDjs = dayjs(event.start);
|
|
85
|
+
const startDjs = dateIndex === 0 ? djs : dayjs(event.start);
|
|
86
|
+
const endDjs = dayjs(event.end);
|
|
105
87
|
const diffDays = endDjs.startOf('day').diff(startDjs.startOf('day'), 'day');
|
|
106
88
|
const isPrevDateEvent = dateIndex === 0 && rawStartDjs.isBefore(djs);
|
|
107
89
|
let width = (diffDays + 1) * dateColumnWidth - EVENT_GAP * 2 - CELL_BORDER_WIDTH * 2;
|
|
108
90
|
if (isPrevDateEvent) {
|
|
109
91
|
width += EVENT_GAP + 1;
|
|
110
92
|
}
|
|
111
|
-
const isLastRow = rowIndex ===
|
|
112
|
-
if (eventPosition && weekId) {
|
|
113
|
-
eventPosition.push({
|
|
93
|
+
const isLastRow = rowIndex === events.length - 1;
|
|
94
|
+
if (props.eventPosition && weekId) {
|
|
95
|
+
props.eventPosition.push({
|
|
114
96
|
weekId,
|
|
115
97
|
startDate: startDjs.toDate(),
|
|
116
98
|
days: diffDays + 1,
|
|
@@ -119,25 +101,38 @@ export const MonthCalendarWeekRow = props => {
|
|
|
119
101
|
}
|
|
120
102
|
return /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
121
103
|
style: [styles.event, {
|
|
122
|
-
backgroundColor:
|
|
123
|
-
borderColor:
|
|
104
|
+
backgroundColor: event.backgroundColor,
|
|
105
|
+
borderColor: event.borderColor,
|
|
124
106
|
width: width,
|
|
125
|
-
height: eventHeight
|
|
107
|
+
height: eventHeight,
|
|
108
|
+
...(event.borderStyle !== undefined && {
|
|
109
|
+
borderStyle: event.borderStyle
|
|
110
|
+
}),
|
|
111
|
+
...(event.borderWidth !== undefined && {
|
|
112
|
+
borderWidth: event.borderWidth
|
|
113
|
+
}),
|
|
114
|
+
...(event.borderRadius !== undefined && {
|
|
115
|
+
borderRadius: event.borderRadius
|
|
116
|
+
})
|
|
126
117
|
}, isPrevDateEvent ? styles.prevDateEvent : {}, isLastRow ? styles.lastRowEvent : {}],
|
|
127
118
|
onPress: () => {
|
|
128
|
-
onPressEvent?.(
|
|
119
|
+
props.onPressEvent?.(event);
|
|
120
|
+
},
|
|
121
|
+
onLongPress: () => {
|
|
122
|
+
props.onLongPressEvent?.(event);
|
|
129
123
|
},
|
|
124
|
+
delayLongPress: props.delayLongPressEvent,
|
|
130
125
|
children: /*#__PURE__*/_jsx(Text, {
|
|
131
126
|
numberOfLines: 1,
|
|
132
127
|
ellipsizeMode: "tail",
|
|
133
128
|
style: [styles.eventTitle, {
|
|
134
|
-
color:
|
|
129
|
+
color: event.color
|
|
135
130
|
}],
|
|
136
|
-
children:
|
|
131
|
+
children: event.title
|
|
137
132
|
})
|
|
138
|
-
},
|
|
133
|
+
}, event.id);
|
|
139
134
|
})]
|
|
140
|
-
},
|
|
135
|
+
}, djs.get('date'));
|
|
141
136
|
})
|
|
142
137
|
});
|
|
143
138
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["dayjs","
|
|
1
|
+
{"version":3,"names":["dayjs","StyleSheet","useWindowDimensions","Text","TouchableOpacity","View","CELL_BORDER_WIDTH","EVENT_GAP","jsx","_jsx","jsxs","_jsxs","MonthCalendarWeekRow","props","eventHeight","width","screenWidth","dateColumnWidth","weekId","dates","format","eventPosition","resetResource","style","styles","container","children","map","djs","dateIndex","text","filteredEvents","events","filter","event","startDjs","start","isBefore","sort","a","b","aStartDjs","bStartDjs","aEndDjs","end","bEndDjs","aDiffDays","diff","bDiffDays","rowNums","getRowNums","date","toDate","rowsLength","length","eventIndex","ii","includes","push","dayCellCountainer","minHeight","weekRowMinHeight","zIndex","onPress","onPressCell","onLongPress","onLongPressCell","delayLongPress","delayLongPressCell","dayCellInner","dayCellContainerStyle","dayCellLabel","dayCellText","dayCellTextStyle","isSame","todayCellTextStyle","rowIndex","height","marginBottom","rawStartDjs","endDjs","diffDays","startOf","isPrevDateEvent","isLastRow","startDate","days","rowNum","backgroundColor","borderColor","borderStyle","undefined","borderWidth","borderRadius","prevDateEvent","lastRowEvent","onPressEvent","onLongPressEvent","delayLongPressEvent","numberOfLines","ellipsizeMode","eventTitle","color","title","id","get","create","display","flexDirection","flex","borderRightWidth","borderBottomWidth","position","top","left","right","bottom","paddingVertical","paddingHorizontal","textAlign","fontSize","alignItems","boxShadow","marginTop","marginLeft","borderTopStartRadius","borderBottomStartRadius"],"sourceRoot":"../../../../../src","sources":["calendar/month-calendar/view/MonthCalendarWeekRow.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,9 +6,11 @@ export declare const MonthCalendar: (props: {
|
|
|
6
6
|
onChangeDate?: (date: Date) => void;
|
|
7
7
|
events: CalendarEvent[];
|
|
8
8
|
onPressEvent?: (event: CalendarEvent) => void;
|
|
9
|
+
onLongPressEvent?: (event: CalendarEvent) => void;
|
|
10
|
+
delayLongPressEvent?: number;
|
|
9
11
|
onPressCell?: (date: Date) => void;
|
|
10
12
|
onLongPressCell?: (date: Date) => void;
|
|
11
|
-
|
|
13
|
+
delayLongPressCell?: number;
|
|
12
14
|
onRefresh?: () => void;
|
|
13
15
|
refreshing?: boolean;
|
|
14
16
|
dayCellContainerStyle?: (date: Date) => ViewStyle;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonthCalendar.d.ts","sourceRoot":"","sources":["../../../../../src/calendar/month-calendar/MonthCalendar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,YAAY,EACb,MAAM,4BAA4B,CAAC;AAKpC,eAAO,MAAM,aAAa,GAAI,OAAO;IACnC,WAAW,EAAE,IAAI,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9C,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACvC,
|
|
1
|
+
{"version":3,"file":"MonthCalendar.d.ts","sourceRoot":"","sources":["../../../../../src/calendar/month-calendar/MonthCalendar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,YAAY,EACb,MAAM,4BAA4B,CAAC;AAKpC,eAAO,MAAM,aAAa,GAAI,OAAO;IACnC,WAAW,EAAE,IAAI,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,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,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC;IAClD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC;IAC7C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yBAAyB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,SAAS,CAAC;IAClE,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,SAAS,CAAC;IAC7D,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,4CAqFA,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEvents.d.ts","sourceRoot":"","sources":["../../../../../../src/calendar/month-calendar/logic/useEvents.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACb,MAAM,+BAA+B,CAAC;AAGvC,eAAO,MAAM,SAAS,GAAI,OAAO;IAC/B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,YAAY,EAAE,YAAY,CAAC;CAC5B;;
|
|
1
|
+
{"version":3,"file":"useEvents.d.ts","sourceRoot":"","sources":["../../../../../../src/calendar/month-calendar/logic/useEvents.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACb,MAAM,+BAA+B,CAAC;AAGvC,eAAO,MAAM,SAAS,GAAI,OAAO;IAC/B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,YAAY,EAAE,YAAY,CAAC;CAC5B;;CAsBA,CAAC"}
|
|
@@ -5,9 +5,11 @@ export declare const MonthCalendarViewItem: (props: {
|
|
|
5
5
|
weekStartsOn: WeekStartsOn;
|
|
6
6
|
events: CalendarEvent[];
|
|
7
7
|
onPressEvent?: (event: CalendarEvent) => void;
|
|
8
|
+
onLongPressEvent?: (event: CalendarEvent) => void;
|
|
9
|
+
delayLongPressEvent?: number;
|
|
8
10
|
onPressCell?: (date: Date) => void;
|
|
9
11
|
onLongPressCell?: (date: Date) => void;
|
|
10
|
-
|
|
12
|
+
delayLongPressCell?: number;
|
|
11
13
|
flatListIndex: number;
|
|
12
14
|
onRefresh?: () => void;
|
|
13
15
|
refreshing?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonthCalendarViewItem.d.ts","sourceRoot":"","sources":["../../../../../../src/calendar/month-calendar/view/MonthCalendarViewItem.tsx"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,YAAY,EACb,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"MonthCalendarViewItem.d.ts","sourceRoot":"","sources":["../../../../../../src/calendar/month-calendar/view/MonthCalendarViewItem.tsx"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,YAAY,EACb,MAAM,+BAA+B,CAAC;AASvC,eAAO,MAAM,qBAAqB,GAAI,OAAO;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,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,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC;IAClD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC;IAC7C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yBAAyB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,SAAS,CAAC;IAClE,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,SAAS,CAAC;IAC7D,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,4CAuGA,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import dayjs from 'dayjs';
|
|
2
|
+
import { type ViewStyle } from 'react-native';
|
|
3
|
+
import type { WeekdayNum } from '../../../types/month-calendar';
|
|
4
|
+
import type { TextStyle } from 'react-native';
|
|
5
|
+
export declare const MonthCalendarWeekDayRow: (props: {
|
|
6
|
+
locale?: ILocale;
|
|
7
|
+
dates: dayjs.Dayjs[];
|
|
8
|
+
weekdayCellContainerStyle?: (weekDayNum: WeekdayNum) => ViewStyle;
|
|
9
|
+
weekdayCellTextStyle?: (weekDayNum: WeekdayNum) => TextStyle;
|
|
10
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=MonthCalendarWeekDayRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonthCalendarWeekDayRow.d.ts","sourceRoot":"","sources":["../../../../../../src/calendar/month-calendar/view/MonthCalendarWeekDayRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,eAAO,MAAM,uBAAuB,GAAI,OAAO;IAC7C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,yBAAyB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,SAAS,CAAC;IAClE,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,SAAS,CAAC;CAC9D,4CAgCA,CAAC"}
|
|
@@ -5,16 +5,16 @@ import type MonthCalendarEventPosition from '../../../utils/month-calendar-event
|
|
|
5
5
|
import type { TextStyle } from 'react-native';
|
|
6
6
|
export declare const MonthCalendarWeekRow: (props: {
|
|
7
7
|
dates: dayjs.Dayjs[];
|
|
8
|
-
|
|
9
|
-
events?: CalendarEvent[];
|
|
8
|
+
events: CalendarEvent[];
|
|
10
9
|
eventPosition?: MonthCalendarEventPosition;
|
|
11
10
|
onPressEvent?: (event: CalendarEvent) => void;
|
|
11
|
+
onLongPressEvent?: (event: CalendarEvent) => void;
|
|
12
|
+
delayLongPressEvent?: number;
|
|
12
13
|
onPressCell?: (date: Date) => void;
|
|
13
14
|
onLongPressCell?: (date: Date) => void;
|
|
14
|
-
|
|
15
|
+
delayLongPressCell?: number;
|
|
15
16
|
dayCellContainerStyle?: (date: Date) => ViewStyle;
|
|
16
17
|
dayCellTextStyle?: (date: Date) => TextStyle;
|
|
17
|
-
locale?: ILocale;
|
|
18
18
|
weekdayCellContainerStyle?: (weekDayNum: WeekdayNum) => ViewStyle;
|
|
19
19
|
weekdayCellTextStyle?: (weekDayNum: WeekdayNum) => TextStyle;
|
|
20
20
|
weekRowMinHeight?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonthCalendarWeekRow.d.ts","sourceRoot":"","sources":["../../../../../../src/calendar/month-calendar/view/MonthCalendarWeekRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MonthCalendarWeekRow.d.ts","sourceRoot":"","sources":["../../../../../../src/calendar/month-calendar/view/MonthCalendarWeekRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,KAAK,0BAA0B,MAAM,8CAA8C,CAAC;AAE3F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,eAAO,MAAM,oBAAoB,GAAI,OAAO;IAC1C,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,0BAA0B,CAAC;IAC3C,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,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC;IAClD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC;IAC7C,yBAAyB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,SAAS,CAAC;IAClE,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,SAAS,CAAC;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,SAAS,CAAC;CAChC,4CA2KA,CAAC"}
|
|
@@ -7,6 +7,9 @@ export type CalendarEvent = {
|
|
|
7
7
|
backgroundColor: string;
|
|
8
8
|
borderColor: string;
|
|
9
9
|
color: string;
|
|
10
|
+
borderStyle?: 'solid' | 'dashed' | 'dotted';
|
|
11
|
+
borderWidth?: number;
|
|
12
|
+
borderRadius?: number;
|
|
10
13
|
};
|
|
11
14
|
export type WeekdayNum = 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
12
15
|
//# sourceMappingURL=month-calendar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"month-calendar.d.ts","sourceRoot":"","sources":["../../../../src/types/month-calendar.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;AAEjC,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,IAAI,CAAC;IACZ,GAAG,EAAE,IAAI,CAAC;IACV,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"month-calendar.d.ts","sourceRoot":"","sources":["../../../../src/types/month-calendar.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;AAEjC,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,IAAI,CAAC;IACZ,GAAG,EAAE,IAAI,CAAC;IACV,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -21,9 +21,11 @@ export const MonthCalendar = (props: {
|
|
|
21
21
|
onChangeDate?: (date: Date) => void;
|
|
22
22
|
events: CalendarEvent[];
|
|
23
23
|
onPressEvent?: (event: CalendarEvent) => void;
|
|
24
|
+
onLongPressEvent?: (event: CalendarEvent) => void;
|
|
25
|
+
delayLongPressEvent?: number;
|
|
24
26
|
onPressCell?: (date: Date) => void;
|
|
25
27
|
onLongPressCell?: (date: Date) => void;
|
|
26
|
-
|
|
28
|
+
delayLongPressCell?: number;
|
|
27
29
|
onRefresh?: () => void;
|
|
28
30
|
refreshing?: boolean;
|
|
29
31
|
dayCellContainerStyle?: (date: Date) => ViewStyle;
|
|
@@ -35,27 +37,7 @@ export const MonthCalendar = (props: {
|
|
|
35
37
|
hiddenMonth?: boolean;
|
|
36
38
|
monthFormat?: string;
|
|
37
39
|
}) => {
|
|
38
|
-
const
|
|
39
|
-
defaultDate,
|
|
40
|
-
weekStartsOn = 0,
|
|
41
|
-
onChangeDate,
|
|
42
|
-
events,
|
|
43
|
-
onPressEvent,
|
|
44
|
-
onPressCell,
|
|
45
|
-
onLongPressCell,
|
|
46
|
-
delayLongPress,
|
|
47
|
-
onRefresh,
|
|
48
|
-
refreshing,
|
|
49
|
-
dayCellContainerStyle,
|
|
50
|
-
dayCellTextStyle,
|
|
51
|
-
locale,
|
|
52
|
-
weekdayCellContainerStyle,
|
|
53
|
-
weekdayCellTextStyle,
|
|
54
|
-
todayCellTextStyle,
|
|
55
|
-
hiddenMonth,
|
|
56
|
-
monthFormat,
|
|
57
|
-
} = props;
|
|
58
|
-
const [dateState] = useState(defaultDate);
|
|
40
|
+
const [dateState] = useState(props.defaultDate);
|
|
59
41
|
const [_activeIndex, setActiveIndex] = useState(HALF_PANEL_LENGTH);
|
|
60
42
|
const defaultDateDjs = dayjs(dateState);
|
|
61
43
|
const startOfDefaultDateDjs = defaultDateDjs.startOf('month');
|
|
@@ -98,7 +80,7 @@ export const MonthCalendar = (props: {
|
|
|
98
80
|
const month = panels[newIndex];
|
|
99
81
|
if (month) {
|
|
100
82
|
const newDate = new Date(month);
|
|
101
|
-
onChangeDate?.(newDate);
|
|
83
|
+
props.onChangeDate?.(newDate);
|
|
102
84
|
}
|
|
103
85
|
setActiveIndex(newIndex);
|
|
104
86
|
}}
|
|
@@ -109,23 +91,25 @@ export const MonthCalendar = (props: {
|
|
|
109
91
|
return (
|
|
110
92
|
<MonthCalendarViewItem
|
|
111
93
|
month={item}
|
|
112
|
-
weekStartsOn={weekStartsOn}
|
|
113
|
-
events={events}
|
|
114
|
-
onPressEvent={onPressEvent}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
94
|
+
weekStartsOn={props.weekStartsOn ?? 0}
|
|
95
|
+
events={props.events}
|
|
96
|
+
onPressEvent={props.onPressEvent}
|
|
97
|
+
onLongPressEvent={props.onLongPressEvent}
|
|
98
|
+
delayLongPressEvent={props.delayLongPressEvent}
|
|
99
|
+
onPressCell={props.onPressCell}
|
|
100
|
+
onLongPressCell={props.onLongPressCell}
|
|
101
|
+
delayLongPressCell={props.delayLongPressCell}
|
|
118
102
|
flatListIndex={index}
|
|
119
|
-
onRefresh={onRefresh}
|
|
120
|
-
refreshing={refreshing}
|
|
121
|
-
dayCellContainerStyle={dayCellContainerStyle}
|
|
122
|
-
dayCellTextStyle={dayCellTextStyle}
|
|
123
|
-
locale={locale}
|
|
124
|
-
weekdayCellContainerStyle={weekdayCellContainerStyle}
|
|
125
|
-
weekdayCellTextStyle={weekdayCellTextStyle}
|
|
126
|
-
todayCellTextStyle={todayCellTextStyle}
|
|
127
|
-
hiddenMonth={hiddenMonth}
|
|
128
|
-
monthFormat={monthFormat}
|
|
103
|
+
onRefresh={props.onRefresh}
|
|
104
|
+
refreshing={props.refreshing}
|
|
105
|
+
dayCellContainerStyle={props.dayCellContainerStyle}
|
|
106
|
+
dayCellTextStyle={props.dayCellTextStyle}
|
|
107
|
+
locale={props.locale}
|
|
108
|
+
weekdayCellContainerStyle={props.weekdayCellContainerStyle}
|
|
109
|
+
weekdayCellTextStyle={props.weekdayCellTextStyle}
|
|
110
|
+
todayCellTextStyle={props.todayCellTextStyle}
|
|
111
|
+
hiddenMonth={props.hiddenMonth}
|
|
112
|
+
monthFormat={props.monthFormat}
|
|
129
113
|
/>
|
|
130
114
|
);
|
|
131
115
|
}}
|
|
@@ -9,16 +9,14 @@ export const useEvents = (props: {
|
|
|
9
9
|
events: CalendarEvent[];
|
|
10
10
|
weekStartsOn: WeekStartsOn;
|
|
11
11
|
}) => {
|
|
12
|
-
const { events, weekStartsOn } = props;
|
|
13
|
-
|
|
14
12
|
const eventsGroupByWeekId: Record<string, CalendarEvent[]> = useMemo(() => {
|
|
15
13
|
const groupedEvents: Record<string, CalendarEvent[]> = {};
|
|
16
14
|
|
|
17
|
-
events.forEach((event) => {
|
|
15
|
+
props.events.forEach((event) => {
|
|
18
16
|
const weekIds: string[] = getWeekIds({
|
|
19
17
|
start: event.start,
|
|
20
18
|
end: event.end,
|
|
21
|
-
weekStartsOn,
|
|
19
|
+
weekStartsOn: props.weekStartsOn,
|
|
22
20
|
});
|
|
23
21
|
weekIds.forEach((weekId) => {
|
|
24
22
|
if (!groupedEvents[weekId]) {
|
|
@@ -29,7 +27,7 @@ export const useEvents = (props: {
|
|
|
29
27
|
});
|
|
30
28
|
|
|
31
29
|
return groupedEvents;
|
|
32
|
-
}, [events, weekStartsOn]);
|
|
30
|
+
}, [props.events, props.weekStartsOn]);
|
|
33
31
|
|
|
34
32
|
return { eventsGroupByWeekId };
|
|
35
33
|
};
|
|
@@ -21,15 +21,18 @@ import { useEvents } from '../logic/useEvents';
|
|
|
21
21
|
import { CELL_BORDER_WIDTH } from '../../../constants/size';
|
|
22
22
|
import { RefreshControl } from 'react-native';
|
|
23
23
|
import { useCallback, useMemo, useState } from 'react';
|
|
24
|
+
import { MonthCalendarWeekDayRow } from './MonthCalendarWeekDayRow';
|
|
24
25
|
|
|
25
26
|
export const MonthCalendarViewItem = (props: {
|
|
26
27
|
month: string;
|
|
27
28
|
weekStartsOn: WeekStartsOn;
|
|
28
29
|
events: CalendarEvent[];
|
|
29
30
|
onPressEvent?: (event: CalendarEvent) => void;
|
|
31
|
+
onLongPressEvent?: (event: CalendarEvent) => void;
|
|
32
|
+
delayLongPressEvent?: number;
|
|
30
33
|
onPressCell?: (date: Date) => void;
|
|
31
34
|
onLongPressCell?: (date: Date) => void;
|
|
32
|
-
|
|
35
|
+
delayLongPressCell?: number;
|
|
33
36
|
flatListIndex: number;
|
|
34
37
|
onRefresh?: () => void;
|
|
35
38
|
refreshing?: boolean;
|
|
@@ -42,32 +45,15 @@ export const MonthCalendarViewItem = (props: {
|
|
|
42
45
|
hiddenMonth?: boolean;
|
|
43
46
|
monthFormat?: string;
|
|
44
47
|
}) => {
|
|
45
|
-
const {
|
|
46
|
-
month,
|
|
47
|
-
weekStartsOn,
|
|
48
|
-
events,
|
|
49
|
-
onPressEvent,
|
|
50
|
-
onPressCell,
|
|
51
|
-
onLongPressCell,
|
|
52
|
-
delayLongPress,
|
|
53
|
-
flatListIndex,
|
|
54
|
-
onRefresh,
|
|
55
|
-
refreshing,
|
|
56
|
-
dayCellContainerStyle,
|
|
57
|
-
dayCellTextStyle,
|
|
58
|
-
locale,
|
|
59
|
-
weekdayCellContainerStyle,
|
|
60
|
-
weekdayCellTextStyle,
|
|
61
|
-
todayCellTextStyle,
|
|
62
|
-
hiddenMonth,
|
|
63
|
-
monthFormat = 'YYYY/MM',
|
|
64
|
-
} = props;
|
|
65
48
|
const { width } = useWindowDimensions();
|
|
66
49
|
const eventPosition = new MonthCalendarEventPosition();
|
|
67
|
-
const date = new Date(month);
|
|
50
|
+
const date = new Date(props.month);
|
|
68
51
|
const dateDjs = dayjs(date);
|
|
69
|
-
const startDate = monthlyStartDate({
|
|
70
|
-
|
|
52
|
+
const startDate = monthlyStartDate({
|
|
53
|
+
date,
|
|
54
|
+
weekStartsOn: props.weekStartsOn,
|
|
55
|
+
});
|
|
56
|
+
const endDate = monthlyEndDate({ date, weekStartsOn: props.weekStartsOn });
|
|
71
57
|
const endDjs = dayjs(endDate);
|
|
72
58
|
const weeks: dayjs.Dayjs[][] = [];
|
|
73
59
|
let currentDate = dayjs(startDate);
|
|
@@ -79,7 +65,10 @@ export const MonthCalendarViewItem = (props: {
|
|
|
79
65
|
currentDate = currentDate.add(7, 'day');
|
|
80
66
|
}
|
|
81
67
|
|
|
82
|
-
const { eventsGroupByWeekId } = useEvents({
|
|
68
|
+
const { eventsGroupByWeekId } = useEvents({
|
|
69
|
+
events: props.events,
|
|
70
|
+
weekStartsOn: props.weekStartsOn,
|
|
71
|
+
});
|
|
83
72
|
|
|
84
73
|
const [bodyHeight, setBodyHeight] = useState(0);
|
|
85
74
|
const onLayoutBody = useCallback((e: LayoutChangeEvent) => {
|
|
@@ -102,26 +91,30 @@ export const MonthCalendarViewItem = (props: {
|
|
|
102
91
|
|
|
103
92
|
return (
|
|
104
93
|
<ScrollView
|
|
105
|
-
style={[styles.container, { width, zIndex: flatListIndex }]}
|
|
94
|
+
style={[styles.container, { width, zIndex: props.flatListIndex }]}
|
|
106
95
|
refreshControl={
|
|
107
|
-
<RefreshControl
|
|
96
|
+
<RefreshControl
|
|
97
|
+
refreshing={!!props.refreshing}
|
|
98
|
+
onRefresh={props.onRefresh}
|
|
99
|
+
/>
|
|
108
100
|
}
|
|
109
101
|
onLayout={onLayoutBody}
|
|
110
102
|
>
|
|
111
|
-
{hiddenMonth ? (
|
|
103
|
+
{props.hiddenMonth ? (
|
|
112
104
|
<View style={styles.blankMonthContainer} />
|
|
113
105
|
) : (
|
|
114
106
|
<View style={styles.monthContainer} onLayout={onLayoutMonthRow}>
|
|
115
|
-
<Text style={styles.monthText}>
|
|
107
|
+
<Text style={styles.monthText}>
|
|
108
|
+
{dateDjs.format(props.monthFormat ?? 'YYYY/MM')}
|
|
109
|
+
</Text>
|
|
116
110
|
</View>
|
|
117
111
|
)}
|
|
118
112
|
<View onLayout={onLayoutWeekdayRow}>
|
|
119
|
-
<
|
|
113
|
+
<MonthCalendarWeekDayRow
|
|
120
114
|
dates={weeks[0] ?? []}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
weekdayCellTextStyle={weekdayCellTextStyle}
|
|
115
|
+
locale={props.locale}
|
|
116
|
+
weekdayCellContainerStyle={props.weekdayCellContainerStyle}
|
|
117
|
+
weekdayCellTextStyle={props.weekdayCellTextStyle}
|
|
125
118
|
/>
|
|
126
119
|
</View>
|
|
127
120
|
<View>
|
|
@@ -138,14 +131,16 @@ export const MonthCalendarViewItem = (props: {
|
|
|
138
131
|
dates={week}
|
|
139
132
|
events={weekEvents}
|
|
140
133
|
eventPosition={eventPosition}
|
|
141
|
-
onPressEvent={onPressEvent}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
134
|
+
onPressEvent={props.onPressEvent}
|
|
135
|
+
onLongPressEvent={props.onLongPressEvent}
|
|
136
|
+
delayLongPressEvent={props.delayLongPressEvent}
|
|
137
|
+
onPressCell={props.onPressCell}
|
|
138
|
+
onLongPressCell={props.onLongPressCell}
|
|
139
|
+
delayLongPressCell={props.delayLongPressCell}
|
|
140
|
+
dayCellContainerStyle={props.dayCellContainerStyle}
|
|
141
|
+
dayCellTextStyle={props.dayCellTextStyle}
|
|
147
142
|
weekRowMinHeight={weekRowMinHeight}
|
|
148
|
-
todayCellTextStyle={todayCellTextStyle}
|
|
143
|
+
todayCellTextStyle={props.todayCellTextStyle}
|
|
149
144
|
/>
|
|
150
145
|
);
|
|
151
146
|
})}
|