From ccac3e5a0302336247e09b4750192b98249af77f Mon Sep 17 00:00:00 2001 From: Mikhail Mitrofanov Date: Sun, 9 Aug 2026 15:53:05 +0300 Subject: [PATCH] Dictionary edit bug fix --- src/dictionary.rs | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/dictionary.rs b/src/dictionary.rs index 6a05230..df92c94 100644 --- a/src/dictionary.rs +++ b/src/dictionary.rs @@ -344,23 +344,25 @@ impl DictionaryState { value: word.value.clone(), tags: word.tags.clone(), id: word.id, + index: i }; let lazy_line = lazy(word_line_data, move |data| { + let index = data.index; let mut line = Row::new().width(Length::Fill).align_y(Center); line = line.push( checkbox(data.is_included) .label("") .spacing(15) - .on_toggle(move |b| Include(i, b)), + .on_toggle(move |b| Include(index, b)), ); line = line.push( text_input("Слово", &data.key) .size(ACCENT_FONT_SIZE) .width(Length::Fill) - .on_input(move |string| SetKey(i, string)) - .on_submit(SubmitWord(i)) + .on_input(move |string| SetKey(index, string)) + .on_submit(SubmitWord(index)) .style(|x, status| { let mut default_style = default(x, status); default_style.border.radius = 0.0.into(); @@ -371,8 +373,8 @@ impl DictionaryState { text_input("Перевод", &data.value) .size(ACCENT_FONT_SIZE) .width(Length::Fill) - .on_input(move |string| SetValue(i, string)) - .on_submit(SubmitWord(i)) + .on_input(move |string| SetValue(index, string)) + .on_submit(SubmitWord(index)) .style(|x, status| { let mut default_style = default(x, status); default_style.border.radius = 0.0.into(); @@ -384,8 +386,8 @@ impl DictionaryState { text_input("Теги", &data.tags) .size(ACCENT_FONT_SIZE) .width(Length::Fill) - .on_input(move |string| SetTags(i, string)) - .on_submit(SubmitWord(i)) + .on_input(move |string| SetTags(index, string)) + .on_submit(SubmitWord(index)) .style(|x, status| { let mut default_style = default(x, status); default_style.border.radius = 0.0.into(); @@ -394,7 +396,7 @@ impl DictionaryState { ); let line_button = || { - let action = WordAction(i); + let action = WordAction(index); if data.id == 0 { return button("-").on_press(action).style(|_x, _status| Style { @@ -406,7 +408,7 @@ impl DictionaryState { }); } - button("").on_press(WordAction(i)).width(15) + button("").on_press(WordAction(index)).width(15) }; line = line.push(line_button()).push(space().width(10)); line @@ -593,5 +595,6 @@ struct WordLineState{ key: String, value: String, tags: String, - id: u32 + id: u32, + index: usize, } \ No newline at end of file