Files
swingmusic-extended/src/composables/perks.ts
T
geoffrey45 b318c0d324 calculate playlist duration
- use python's `sum()` method to add durations instead of for loop
2022-07-06 17:38:33 +03:00

84 lines
1.6 KiB
TypeScript

const putCommas = (artists: string[]) => {
let result = [];
artists.forEach((i, index, artists) => {
if (index !== artists.length - 1) {
result.push(i + ", ");
} else {
result.push(i);
}
});
return result;
};
function focusElem(className: string, delay?: number) {
const dom = document.getElementsByClassName(className)[0];
setTimeout(() => {
if (dom) {
dom.scrollIntoView({
behavior: "smooth",
block: "start",
inline: "center",
});
}
}, delay | 300);
}
function getElem(id: string, type: string) {
switch (type) {
case "class": {
return document.getElementsByClassName(id)[0];
}
case "id": {
return document.getElementById(id);
}
}
}
/**
* Converts seconds into minutes and hours.
* @param seconds The seconds to convert
* @param long Whether to provide the time in the long format
*/
function formatSeconds(seconds: number, long?: boolean) {
const date = new Date(seconds * 1000);
const hh = date.getUTCHours();
const mm = date.getUTCMinutes();
const ss = date.getUTCSeconds();
let _hh = hh < 10 ? `0${hh}` : hh;
let _mm = mm < 10 ? `0${mm}` : mm;
let _ss = ss < 10 ? `0${ss}` : ss;
if (long == true) {
if (hh === 1) {
_hh = hh + " Hour";
} else {
_hh = `${hh} Hours`;
}
if (mm === 1) {
_mm = mm + " Minute";
} else {
_mm = `${mm} Minutes`;
}
if (hh > 0) {
return `${_hh}, ${_mm}`;
} else {
return `${_mm}`;
}
}
if (hh > 0) {
return `${_hh}:${_mm}:${_ss}`;
} else {
return `${_mm}:${_ss}`;
}
}
export { putCommas, focusElem, formatSeconds, getElem };