refactor: simplify overview logic

This commit is contained in:
Carlos Valente
2024-05-10 21:49:12 +02:00
committed by Carlos Valente
parent 3c7e061e51
commit efd05bcc34
3 changed files with 28 additions and 12 deletions
@@ -95,7 +95,7 @@ function TitlesOverview() {
}
function TimerOverview() {
const {current} = useTimer();
const { current } = useTimer();
const display = millisToString(current);
@@ -0,0 +1,22 @@
import { dayInMs } from 'ontime-utils';
import { calculateEndAndDaySpan } from '../overviewUtils';
describe('calculateEndAndDaySpan', () => {
it('should return [null, 0] when end is null', () => {
const result = calculateEndAndDaySpan(null);
expect(result).toEqual([null, 0]);
});
it('should return [end, 0] when end is less than or equal to dayInMs', () => {
const end = dayInMs / 2;
const result = calculateEndAndDaySpan(end);
expect(result).toEqual([end, 0]);
});
it('should return [end % dayInMs, Math.floor(end / dayInMs)] when end is greater than dayInMs', () => {
const end = dayInMs * 1.5;
const result = calculateEndAndDaySpan(end);
expect(result).toEqual([end % dayInMs, Math.floor(end / dayInMs)]);
});
});
@@ -13,20 +13,14 @@ export function formatedTime(time: MaybeNumber) {
}
/**
* Calculates a day span from a number range
* @param end
* @returns
* Calculates how long a time is and how many days it spans
*/
export function calculateEndAndDaySpan(end: MaybeNumber): [MaybeNumber, number] {
let maybeEnd = end;
let maybeDaySpan = 0;
if (end !== null) {
if (end > dayInMs) {
maybeEnd = end % dayInMs;
maybeDaySpan = Math.floor(end / dayInMs);
}
if (end !== null && end > dayInMs) {
return [end % dayInMs, Math.floor(end / dayInMs)];
}
return [maybeEnd, maybeDaySpan];
return [end, 0];
}
/**