Fix: tickSize not updated

This commit is contained in:
Luc Mcgrady 2025-11-08 17:28:47 +00:00
parent defb0f599c
commit d06912ea92
No known key found for this signature in database
GPG key ID: 4F3D7A0B17CC3D9C
2 changed files with 9 additions and 8 deletions

View file

@ -332,14 +332,14 @@ fn add_extract_fsrs_retrievability(db: &Connection) -> rusqlite::Result<()> {
return Ok(None);
};
let seconds_elapsed = if let Some(last_review_time) = card_data.last_review_time {
now.saturating_sub(last_review_time.0) as u32
(now as u32).saturating_sub(last_review_time.0 as u32)
} else if due > 365_000 {
// (re)learning card in seconds
let Ok(ivl) = ctx.get_raw(2).as_i64() else {
return Ok(None);
};
let last_review_time = due.saturating_sub(ivl);
now.saturating_sub(last_review_time) as u32
let last_review_time = (due as u32).saturating_sub(ivl as u32);
(now as u32).saturating_sub(last_review_time)
} else {
let Ok(ivl) = ctx.get_raw(2).as_i64() else {
return Ok(None);
@ -347,8 +347,8 @@ fn add_extract_fsrs_retrievability(db: &Connection) -> rusqlite::Result<()> {
let Ok(days_elapsed) = ctx.get_raw(3).as_i64() else {
return Ok(None);
};
let review_day = due.saturating_sub(ivl);
days_elapsed.saturating_sub(review_day) as u32 * 86_400
let review_day = (due as u32).saturating_sub(ivl as u32);
(days_elapsed as u32).saturating_sub(review_day) * 86_400
};
let decay = card_data.decay.unwrap_or(FSRS5_DEFAULT_DECAY);
let retrievability = card_data.memory_state().map(|state| {
@ -416,8 +416,8 @@ fn add_extract_fsrs_relative_retrievability(db: &Connection) -> rusqlite::Result
let Ok(ivl) = ctx.get_raw(2).as_i64() else {
return Ok(None);
};
let last_review_time = due.saturating_sub(ivl);
now.saturating_sub(last_review_time) as u32
let last_review_time = due.saturating_sub(ivl) as u32;
(now as u32).saturating_sub(last_review_time)
} else {
let Ok(ivl) = ctx.get_raw(2).as_i64() else {
return Ok(None);

View file

@ -48,11 +48,12 @@ export function getAdjustedScaleAndTicks(
const predomain = prescale.domain() as [number, number];
const minOffset = min - predomain[0];
const tickSize = ticks[1] - ticks[0];
let tickSize = ticks[1] - ticks[0];
const minBinSize = 1;
if (tickSize < minBinSize) {
ticks = range(min, max, minBinSize);
tickSize = minBinSize;
}
if (minOffset === 0 || (minOffset % tickSize !== 0 && tickSize % minOffset !== 0)) {