-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathutils.js
37 lines (32 loc) · 981 Bytes
/
utils.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
export function parseSeconds(secs) {
const hours = Math.floor(secs / 3600);
const minutes = Math.floor((secs % 3600) / 60);
return { hours, minutes };
}
/**
* Gets minutes and hours from a duration.
*
* @param duration {number} seconds
* @returns {string} string in format h:min
*/
export const getDurationString = (duration, formatForChargingStations = false) => {
const { hours: durationHours, minutes: durationMinutes } = parseSeconds(duration);
if (formatForChargingStations) {
return `${durationHours}:${durationMinutes}`;
}
return durationHours === 0 ? `${durationMinutes} min` : `${durationHours} hr ${durationMinutes} min`;
};
/**
* Small helper function to debounce search terms
*/
export const debounce = (func, wait) => {
let timeout;
return function executedFunction(...args) {
const later = () => {
clearTimeout(timeout);
func(...args);
};
clearTimeout(timeout);
timeout = setTimeout(later, wait);
};
};