Skip to content

Commit 19a507c

Browse files
committed
fix: SLA badge showing hit status for overdue
1 parent 7f8e3cc commit 19a507c

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

frontend/src/utils/sla.js

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,34 +12,37 @@ import { differenceInMinutes } from 'date-fns'
1212
export function calculateSla (dueAt, actualAt) {
1313
const compareTime = actualAt ? new Date(actualAt) : new Date()
1414
const dueTime = new Date(dueAt)
15+
// Difference in minutes will be negative if overdue, positive if remaining.
1516
const diffInMinutes = differenceInMinutes(dueTime, compareTime)
1617

17-
if (!actualAt) {
18-
if (diffInMinutes > 0) {
19-
if (diffInMinutes >= 2880) {
20-
return {
21-
status: 'remaining',
22-
value: `${Math.floor(diffInMinutes / 1440)} days`
23-
}
24-
}
18+
// No actual at and diffInMinutes is positive; there is still time remaining.
19+
if (!actualAt && diffInMinutes >= 0) {
20+
if (diffInMinutes >= 2880) {
2521
return {
2622
status: 'remaining',
27-
value: diffInMinutes < 60 ? `${diffInMinutes} mins` : `${Math.floor(diffInMinutes / 60)} hrs`
23+
value: `${Math.floor(diffInMinutes / 1440)} days`
2824
}
2925
}
26+
return {
27+
status: 'remaining',
28+
value: diffInMinutes < 60 ? `${diffInMinutes} mins` : `${Math.floor(diffInMinutes / 60)} hrs`
29+
}
3030
}
3131

32-
const overdueTime = Math.abs(diffInMinutes)
33-
const status = actualAt ? 'hit' : 'overdue'
32+
let status = 'hit'
33+
if (diffInMinutes < 0) {
34+
status = 'overdue'
35+
}
3436

35-
if (overdueTime >= 2880) {
37+
const overdueMins = Math.abs(diffInMinutes)
38+
if (overdueMins >= 2880) {
3639
return {
3740
status,
38-
value: `${Math.floor(overdueTime / 1440)} days`
41+
value: `${Math.floor(overdueMins / 1440)} days`
3942
}
4043
}
4144
return {
4245
status,
43-
value: overdueTime < 60 ? `${overdueTime} mins` : `${Math.floor(overdueTime / 60)} hrs`
46+
value: overdueMins < 60 ? `${overdueMins} mins` : `${Math.floor(overdueMins / 60)} hrs`
4447
}
4548
}

0 commit comments

Comments
 (0)