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::app::AppState;
use crate::core::deck::DeckData; use crate::core::deck::DeckData;
use crate::core::srs::{AppendMode, OrderMode}; use crate::core::srs::{AppendMode, OrderMode};
@@ -15,7 +14,7 @@ use crate::push_error;
use crate::push_error_task; use crate::push_error_task;
use crate::styling::*; use crate::styling::*;
use chrono::{Days, Local, Utc}; use chrono::{Days, Local, Utc};
use hashbrown::{HashMap, HashSet}; use hashbrown::HashSet;
pub use iced::widget::button::{Catalog, Style}; pub use iced::widget::button::{Catalog, Style};
use iced::widget::button::{Status, danger}; use iced::widget::button::{Status, danger};
use iced::widget::tooltip::Position::Top; 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::Padding;
use iced_core::border::Radius; use iced_core::border::Radius;
use iced_core::svg::Handle; use iced_core::svg::Handle;
use std::collections::BTreeMap;
use std::ops::Deref; use std::ops::Deref;
use std::sync::Arc; use std::sync::Arc;
@@ -81,7 +81,14 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
fn navigated(&mut self) { fn navigated(&mut self) {
if let Some(index) = self.selected_deck_handle { if let Some(index) = self.selected_deck_handle {
let decks = self.state.decks.read(); 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); self.decks.remove(&index);
drop(decks); drop(decks);
self.clear_selection(); self.clear_selection();
@@ -135,10 +142,8 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
SelectSet(index) => { SelectSet(index) => {
self.select_deck(index); self.select_deck(index);
let deck = self.selected_deck().unwrap(); let deck = self.selected_deck().unwrap();
if !deck.indices_ready if !deck.indices_ready {
&& let Err(err) = self.fill_deck_word_indices() self.fill_deck_word_indices()
{
return push_error_task!(err);
} }
} }
Save => { 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 state
.decks .decks
.read() .read()
@@ -597,7 +604,7 @@ impl RepetitionsState {
self.selected_deck_handle = None; 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 card_states = self.state.card_states.read();
let deck_id = self.selected_deck().unwrap().id; let deck_id = self.selected_deck().unwrap().id;
let added = card_states let added = card_states
@@ -610,7 +617,6 @@ impl RepetitionsState {
deck.existing_words_indices = added; deck.existing_words_indices = added;
deck.available_words_indices = total; deck.available_words_indices = total;
self.decks.insert(self.selected_deck_handle.unwrap(), deck); self.decks.insert(self.selected_deck_handle.unwrap(), deck);
Ok(())
} }
} }
#[derive(Clone)] #[derive(Clone)]