Skip to content

Commit 304f78b

Browse files
authored
fix: Correct duration in DnD (jquense#2034)
jquense#2033
1 parent ad8defa commit 304f78b

File tree

4 files changed

+96
-60
lines changed

4 files changed

+96
-60
lines changed

.size-snapshot.json

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
{
22
"./dist/react-big-calendar.js": {
3-
"bundled": 535365,
4-
"minified": 165479,
5-
"gzipped": 51024
3+
"bundled": 535473,
4+
"minified": 165496,
5+
"gzipped": 51033
66
},
77
"./dist/react-big-calendar.min.js": {
8-
"bundled": 463339,
9-
"minified": 143714,
10-
"gzipped": 45341
8+
"bundled": 463447,
9+
"minified": 143731,
10+
"gzipped": 45351
1111
},
1212
"dist/react-big-calendar.esm.js": {
13-
"bundled": 219605,
14-
"minified": 99669,
15-
"gzipped": 24759,
13+
"bundled": 219707,
14+
"minified": 99686,
15+
"gzipped": 24772,
1616
"treeshaked": {
1717
"rollup": {
18-
"code": 63242,
18+
"code": 63234,
1919
"import_statements": 1412
2020
},
2121
"webpack": {
22-
"code": 66708
22+
"code": 66700
2323
}
2424
}
2525
}

examples/bundle.js

Lines changed: 83 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -7633,7 +7633,7 @@
76337633
n.eq(o, r, 'minutes') &&
76347634
0 === n.diff(o, r, 'minutes') &&
76357635
(r = n.add(r, 1, 'day'))
7636-
var a = n.diff(r, o, 'milliseconds')
7636+
var a = n.diff(o, r, 'milliseconds')
76377637
return { start: o, end: r, duration: a }
76387638
}),
76397639
(t.dragAccessors = void 0)
@@ -9626,7 +9626,7 @@ object-assign
96269626
var c = y(e),
96279627
s = y(t),
96289628
d =
9629-
s > a * A && !l.isSameDate(r, t)
9629+
s > a * A && !l.eq(r, t)
96309630
? ((c - a) / (a * A)) * 100
96319631
: (c / (a * A)) * 100
96329632
return {
@@ -25845,6 +25845,14 @@ object-assign
2584525845
' ',
2584625846
o.createElement('code', null, 'npm install --save react-big-calendar')
2584725847
),
25848+
o.createElement(
25849+
'p',
25850+
null,
25851+
o.createElement('code', null, 'react-big-calendar'),
25852+
' is a full featured Calendar component for managing events and dates. It uses modern ',
25853+
o.createElement('code', null, 'flexbox'),
25854+
' for layout, making it super responsive and performant. Leaving most of the layout heavy lifting to the browser.'
25855+
),
2584825856
o.createElement(
2584925857
'p',
2585025858
null,
@@ -25921,6 +25929,23 @@ object-assign
2592125929
'Moment format pattern'
2592225930
),
2592325931
' is valid!'
25932+
),
25933+
o.createElement(
25934+
'p',
25935+
null,
25936+
'One thing to note is that, ',
25937+
o.createElement('code', null, 'react-big-calendar'),
25938+
' treats event start/end dates as an ',
25939+
o.createElement('em', null, 'exclusive'),
25940+
' range which means that the event spans up to, but not including, the end date. In the case of displaying events on whole days, end dates are rounded _up_ to the next day. So an event ending on ',
25941+
o.createElement('code', null, 'Apr 8th 12:00:00 am'),
25942+
' will not appear on the 8th, whereas one ending on ',
25943+
o.createElement('code', null, 'Apr 8th 12:01:00 am'),
25944+
' will. If you want ',
25945+
o.createElement('em', null, 'inclusive'),
25946+
' ranges consider providing a function ',
25947+
o.createElement('code', null, 'endAccessor'),
25948+
' that returns the end date + 1 day for those events that end at midnight.'
2592425949
)
2592525950
)
2592625951
}),
@@ -37881,9 +37906,11 @@ object-assign
3788137906
n = 1 === r ? 7 : r - 1
3788237907
return t === n
3788337908
? e.endOf('day')
37884-
: 7 === n
37909+
: 1 === r
3788537910
? e.endOf('week')
37886-
: e.plus({ day: n - t }).endOf('day')
37911+
: (r > n ? e.plus({ day: r - n }) : e)
37912+
.set({ weekday: n })
37913+
.endOf('day')
3788737914
}
3788837915
function d(t, n) {
3788937916
void 0 === t && (t = new Date())
@@ -44293,12 +44320,6 @@ object-assign
4429344320
getNow: function() {
4429444321
return (0, i.default)().toDate()
4429544322
},
44296-
min: (0, i.default)()
44297-
.hour(6)
44298-
.startOf('hour'),
44299-
max: (0, i.default)()
44300-
.hour(18)
44301-
.endOf('hour'),
4430244323
myEvents: [].concat(l.default),
4430344324
}
4430444325
)
@@ -44310,9 +44331,7 @@ object-assign
4431044331
u = o.defaultDate,
4431144332
A = o.scrollToTime,
4431244333
p = o.myEvents,
44313-
f = o.getNow,
44314-
b = o.min,
44315-
m = o.max
44334+
f = o.getNow
4431644335
return (
4431744336
(0, r.useEffect)(function() {
4431844337
return function() {
@@ -44334,8 +44353,6 @@ object-assign
4433444353
scrollToTime: A,
4433544354
localizer: s,
4433644355
getNow: f,
44337-
min: b,
44338-
max: m,
4433944356
})
4434044357
)
4434144358
)
@@ -49920,24 +49937,26 @@ object-assign
4992049937
var r = o(n(5)),
4992149938
a = o(n(4)),
4992249939
i = o(n(1)),
49923-
l = (function(e, t) {
49924-
if (!t && e && e.__esModule) return e
49925-
if (null === e || ('object' != typeof e && 'function' != typeof e))
49926-
return { default: e }
49927-
var n = A(t)
49928-
if (n && n.has(e)) return n.get(e)
49929-
var o = {},
49930-
r = Object.defineProperty && Object.getOwnPropertyDescriptor
49931-
for (var a in e)
49932-
if ('default' !== a && Object.prototype.hasOwnProperty.call(e, a)) {
49933-
var i = r ? Object.getOwnPropertyDescriptor(e, a) : null
49934-
i && (i.get || i.set)
49935-
? Object.defineProperty(o, a, i)
49936-
: (o[a] = e[a])
49937-
}
49938-
;(o.default = e), n && n.set(e, o)
49939-
return o
49940-
})(n(163)),
49940+
l =
49941+
(o(n(2)),
49942+
(function(e, t) {
49943+
if (!t && e && e.__esModule) return e
49944+
if (null === e || ('object' != typeof e && 'function' != typeof e))
49945+
return { default: e }
49946+
var n = A(t)
49947+
if (n && n.has(e)) return n.get(e)
49948+
var o = {},
49949+
r = Object.defineProperty && Object.getOwnPropertyDescriptor
49950+
for (var a in e)
49951+
if ('default' !== a && Object.prototype.hasOwnProperty.call(e, a)) {
49952+
var i = r ? Object.getOwnPropertyDescriptor(e, a) : null
49953+
i && (i.get || i.set)
49954+
? Object.defineProperty(o, a, i)
49955+
: (o[a] = e[a])
49956+
}
49957+
;(o.default = e), n && n.set(e, o)
49958+
return o
49959+
})(n(163))),
4994149960
c = o(n(12)),
4994249961
s = n(9),
4994349962
d = o(n(89)),
@@ -49957,31 +49976,48 @@ object-assign
4995749976
return (
4995849977
(0, a.default)(t, e),
4995949978
(t.prototype.render = function() {
49960-
var e = this.props.date,
49961-
n = t.range(e)
49979+
var e = this.props,
49980+
n = e.date,
49981+
o = e.localizer,
49982+
a = e.min,
49983+
l = void 0 === a ? o.startOf(new Date(), 'day') : a,
49984+
c = e.max,
49985+
s = void 0 === c ? o.endOf(new Date(), 'day') : c,
49986+
u = e.scrollToTime,
49987+
A = void 0 === u ? o.startOf(new Date(), 'day') : u,
49988+
p = t.range(n, { localizer: o })
4996249989
return i.default.createElement(
4996349990
d.default,
49964-
(0, r.default)({}, this.props, { range: n, eventOffset: 15 })
49991+
(0, r.default)({}, this.props, {
49992+
range: p,
49993+
eventOffset: 15,
49994+
localizer: o,
49995+
min: l,
49996+
max: s,
49997+
scrollToTime: A,
49998+
})
4996549999
)
4996650000
}),
4996750001
t
4996850002
)
4996950003
})(i.default.Component)
49970-
;(p.range = function(e) {
49971-
for (
49972-
var t = e, n = l.add(t, 2, 'day'), o = t, r = [];
49973-
l.lte(o, n, 'day');
50004+
;(p.propTypes = {}),
50005+
(p.range = function(e, t) {
50006+
for (
50007+
var n = t.localizer, o = e, r = l.add(o, 2, 'day'), a = o, i = [];
50008+
n.lte(a, r, 'day');
4997450009

49975-
)
49976-
r.push(o), (o = l.add(o, 1, 'day'))
49977-
return r
49978-
}),
49979-
(p.navigate = function(e, t) {
50010+
)
50011+
i.push(a), (a = n.add(a, 1, 'day'))
50012+
return i
50013+
}),
50014+
(p.navigate = function(e, t, n) {
50015+
var o = n.localizer
4998050016
switch (t) {
4998150017
case s.Navigate.PREVIOUS:
49982-
return l.add(e, -3, 'day')
50018+
return o.add(e, -3, 'day')
4998350019
case s.Navigate.NEXT:
49984-
return l.add(e, 3, 'day')
50020+
return o.add(e, 3, 'day')
4998550021
default:
4998650022
return e
4998750023
}

examples/bundle.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/addons/dragAndDrop/common.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,6 @@ export function eventTimes(event, accessors, localizer) {
4141
localizer.diff(start, end, 'minutes') === 0
4242
// make zero duration midnight events at least one day long
4343
if (isZeroDuration) end = localizer.add(end, 1, 'day')
44-
const duration = localizer.diff(end, start, 'milliseconds')
44+
const duration = localizer.diff(start, end, 'milliseconds')
4545
return { start, end, duration }
4646
}

0 commit comments

Comments
 (0)