diff --git a/src/TimelineSeg.jsx b/src/TimelineSeg.jsx index bc78301d..b43bf670 100644 --- a/src/TimelineSeg.jsx +++ b/src/TimelineSeg.jsx @@ -42,7 +42,7 @@ const TimelineSeg = memo(({ const onThisSegClick = () => onSegClick(segNum); - const durationStr = cutEnd > cutStart ? `${formatDuration({ seconds: cutEnd - cutStart })} ` : ''; + const durationStr = cutEnd > cutStart ? `${formatDuration({ seconds: cutEnd - cutStart, shorten: true })} ` : ''; const title = `${durationStr}${name}`; return ( diff --git a/src/util/duration.js b/src/util/duration.js index a838af82..f8ef41c4 100644 --- a/src/util/duration.js +++ b/src/util/duration.js @@ -20,7 +20,7 @@ export function formatDuration({ seconds: secondsIn, fileNameFriendly, showMs = const secondsPadded = padStart(Math.floor(secondsAbs) % 60, 2, '0'); const ms = secondsAbs - Math.floor(secondsAbs); let msPart = ''; - if (showMs) { + if (showMs && !(shorten && ms === 0)) { const msPadded = fps != null ? padStart(Math.floor(ms * fps), 2, '0') : padStart(Math.floor(ms * 1000), 3, '0'); diff --git a/src/util/duration.test.js b/src/util/duration.test.js index 46c27c2d..3521bd62 100644 --- a/src/util/duration.test.js +++ b/src/util/duration.test.js @@ -8,7 +8,8 @@ it('should format duration properly', () => { expect(formatDuration({ seconds: 101.5 })).toBe('00:01:41.500'); expect(formatDuration({ seconds: 101.5, shorten: true })).toBe('1:41.500'); expect(formatDuration({ seconds: 10000 })).toBe('02:46:40.000'); - expect(formatDuration({ seconds: 10000, shorten: true })).toBe('2:46:40.000'); + expect(formatDuration({ seconds: 10000, shorten: true })).toBe('2:46:40'); + expect(formatDuration({ seconds: 10000.5, shorten: true })).toBe('2:46:40.500'); expect(formatDuration({ seconds: 101.5, showMs: false })).toBe('00:01:41'); expect(formatDuration({ seconds: 101.5, showMs: false, shorten: true })).toBe('1:41'); });