fix(modeshow): fix #17 by conditionally setting the seconds to 0
cargo devel CI / cargo CI (push) Successful in 1m47s Details

This commit is contained in:
Christoph J. Scherr 2024-07-19 10:26:45 +02:00
parent 48f88ee17e
commit 19c1939cfb
1 changed files with 14 additions and 12 deletions

View File

@ -150,18 +150,20 @@ pub fn timebarw_label<'a>(
.unwrap(), .unwrap(),
), ),
}; };
let until = last_reset let until = {
// BUG: seconds are sometimes a little too much, for // we need to cut off the seconds if we're not in custom and countup mode, otherwise,
// example with `-o` #17 // the timestamp will not be correct. This fixes #17
.checked_add_signed(len.into()) match len {
.expect("could not calculate when the countdown finishes"); TimeBarLength::Custom(_) | TimeBarLength::Countup(_) => last_reset,
let timestamp_until: String = format!( _ => last_reset.with_second(0).unwrap(),
"{:02}:{:02}:{:02}", }
until.hour(), }
until.minute(), // BUG: seconds are sometimes a little too much, for
until.second() // example with `-o` #17
); .checked_add_signed(len.into())
Paragraph::new(format!("{time_now} / {len} ({timestamp_until})")) .expect("could not calculate when the countdown finishes")
.format("%H:%M:%S");
Paragraph::new(format!("{time_now} / {len} ({until})"))
.alignment(Alignment::Center) .alignment(Alignment::Center)
.block( .block(
Block::default().padding(Padding::right(if inner_rect.width > 80 { Block::default().padding(Padding::right(if inner_rect.width > 80 {