Fix deck data collecting

This commit is contained in:
micialware committed 2026-08-20 16:22:38 +03:00
1 parent c5e91b844c
commit 3f43676580
4 files changed
+63 -22

No files matched your search

+20 -10
View File
@@ -87,6 +87,10 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
drop(state);
self.decks.remove(index);
self.clear_selection();
} else {
self.decks[self.selected_deck_index.unwrap()].general_settings = state.decks[index].clone();
drop(state);
self.fill_deck_word_indices();
}
} else {
drop(state);
@@ -138,16 +142,7 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
self.select_deck(index);
let deck = self.selected_deck().unwrap();
if deck.existing_words_indices.is_none() {
let state = self.state.lock();
let added: Vec<_> = load_stats_of_deck(deck, &state.connection)
.iter()
.map(|c| self.word_id_index_map[&c.word_id])
.collect();
let total = deck.get_word_list(&state);
drop(state);
let deck = self.selected_deck_mut().unwrap();
deck.existing_words_indices = Some(added);
deck.available_words_indices = Some(total);
self.fill_deck_word_indices();
}
}
Save => {
@@ -618,6 +613,20 @@ impl RepetitionsState {
fn clear_selection(&mut self) {
self.selected_deck_index = None;
}
fn fill_deck_word_indices(&mut self) {
let state = &self.state.lock();
let mut deck = self.selected_deck().unwrap().clone();
let added: Vec<_> = load_stats_of_deck(&deck, &state.connection)
.iter()
.map(|c| self.word_id_index_map[&c.word_id])
.collect();
let total = deck.get_word_list(state);
deck.existing_words_indices = Some(added);
deck.available_words_indices = Some(total);
self.decks[self.selected_deck_index.unwrap()] = deck;
}
}
#[derive(Clone)]
pub enum RepetitionsMessage {
@@ -648,6 +657,7 @@ struct DeckViewData {
append_mode: AppendMode,
index: Option<usize>,
}
impl Deref for DeckViewData {
type Target = DeckSettings;