Skip to content

Commit dade2b9

Browse files
committed
[fixed] more month event layout issues
1 parent bf0390d commit dade2b9

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

src/utils/dates.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -106,16 +106,18 @@ let dates = Object.assign(dateMath, {
106106
)
107107
},
108108

109-
duration(start, end, unit){
109+
duration(start, end, unit, firstOfWeek){
110110
if (unit === 'day') unit = 'date';
111-
return Math.abs(dates[unit](start) - dates[unit](end))
111+
return Math.abs(dates[unit](start, undefined, firstOfWeek) - dates[unit](end, undefined, firstOfWeek))
112112
},
113113

114114
diff(dateA, dateB, unit){
115115
if (!unit)
116116
return Math.abs(+dateA - +dateB)
117117

118-
return Math.abs((+dateA / MILLI[unit]) - (+dateB / MILLI[unit]))
118+
return Math.abs(
119+
(+dates.startOf(dateA, unit) / MILLI[unit]) - (+dates.startOf(dateB, unit) / MILLI[unit])
120+
)
119121
},
120122

121123
week(date){

src/utils/eventLevels.js

+9-9
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,21 @@ import { accessor as get } from './accessors';
1010
// }
1111

1212
export function eventSegments(event, first, last, { startAccessor, endAccessor, culture }){
13-
let startOfWeek = localizer.startOfWeek(culture);
14-
let start = dates.duration(first, dates.max(get(event, startAccessor), first), 'weekday', startOfWeek);
13+
let slots = dates.diff(first, last, 'day')
14+
let start = dates.max(get(event, startAccessor), first);
15+
let end = dates.min(get(event, endAccessor), dates.add(last, 1, 'day'))
1516

16-
let span = Math.min(dates.duration(
17-
dates.max(get(event, startAccessor), first)
18-
, dates.min(get(event, endAccessor), dates.add(last, 1, 'day'))
19-
, 'day'), 7);
17+
let span = dates.diff(start, end, 'day');
2018

21-
span = Math.max(span, 1);
19+
span = Math.min(Math.max(span, 1), slots);
20+
21+
let padding = dates.diff(first, start, 'day');
2222

2323
return {
2424
event,
2525
span,
26-
left: start + 1,
27-
right: Math.max(start + span, 1)
26+
left: padding + 1,
27+
right: Math.max(padding + span, 1)
2828
}
2929
}
3030

0 commit comments

Comments
 (0)