Incorrect data display fix

This commit is contained in:
micialware committed 2026-09-07 16:21:40 +03:00
1 parent 42c38d55e1
commit 6387afba93
1 file changed
+16 -10
+16 -10
View File
@@ -1,4 +1,3 @@
use std::collections::BTreeMap;
use crate::app::AppState;
use crate::core::deck::DeckData;
use crate::core::srs::{AppendMode, OrderMode};
@@ -15,7 +14,7 @@ use crate::push_error;
use crate::push_error_task;
use crate::styling::*;
use chrono::{Days, Local, Utc};
use hashbrown::{HashMap, HashSet};
use hashbrown::HashSet;
pub use iced::widget::button::{Catalog, Style};
use iced::widget::button::{Status, danger};
use iced::widget::tooltip::Position::Top;
@@ -27,6 +26,7 @@ use iced::{Background, Border, Center, Color, Element, Fill, Length, Shadow, Tas
use iced_core::Padding;
use iced_core::border::Radius;
use iced_core::svg::Handle;
use std::collections::BTreeMap;
use std::ops::Deref;
use std::sync::Arc;
@@ -81,7 +81,14 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
fn navigated(&mut self) {
if let Some(index) = self.selected_deck_handle {
let decks = self.state.decks.read();
if let None = decks.get_static(index) {
if let Some(deck) = decks.get_static(index) {
{
let stored = self.decks.get_mut(&index).unwrap();
stored.general_settings = deck;
}
drop(decks);
self.fill_deck_word_indices();
} else {
self.decks.remove(&index);
drop(decks);
self.clear_selection();
@@ -135,10 +142,8 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
SelectSet(index) => {
self.select_deck(index);
let deck = self.selected_deck().unwrap();
if !deck.indices_ready
&& let Err(err) = self.fill_deck_word_indices()
{
return push_error_task!(err);
if !deck.indices_ready {
self.fill_deck_word_indices()
}
}
Save => {
@@ -251,7 +256,9 @@ impl RepetitionsState {
}
}
fn get_decks_from_state(state: &AppState) -> BTreeMap<EntityHandle<DeckSettings>, DeckViewData> {
fn get_decks_from_state(
state: &AppState,
) -> BTreeMap<EntityHandle<DeckSettings>, DeckViewData> {
state
.decks
.read()
@@ -597,7 +604,7 @@ impl RepetitionsState {
self.selected_deck_handle = None;
}
fn fill_deck_word_indices(&mut self) -> MaybeError {
fn fill_deck_word_indices(&mut self) {
let card_states = self.state.card_states.read();
let deck_id = self.selected_deck().unwrap().id;
let added = card_states
@@ -610,7 +617,6 @@ impl RepetitionsState {
deck.existing_words_indices = added;
deck.available_words_indices = total;
self.decks.insert(self.selected_deck_handle.unwrap(), deck);
Ok(())
}
}
#[derive(Clone)]