grey out search results once it's visted
This commit is contained in:
		
							
								
								
									
										39
									
								
								src/main.rs
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								src/main.rs
									
									
									
									
									
								
							@@ -82,7 +82,7 @@ enum Message {
 | 
				
			|||||||
    Clear(usize),
 | 
					    Clear(usize),
 | 
				
			||||||
    WordSearchInput(usize, String),
 | 
					    WordSearchInput(usize, String),
 | 
				
			||||||
    SubmitWordSearch(usize),
 | 
					    SubmitWordSearch(usize),
 | 
				
			||||||
    QuickSearch(usize, String),
 | 
					    QuickSearch(usize, String, usize),
 | 
				
			||||||
    AddColRight,
 | 
					    AddColRight,
 | 
				
			||||||
    DeleteColumn(usize),
 | 
					    DeleteColumn(usize),
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -95,7 +95,7 @@ struct ColState {
 | 
				
			|||||||
    scripture_body: Option<String>,
 | 
					    scripture_body: Option<String>,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    word_search: String,
 | 
					    word_search: String,
 | 
				
			||||||
    word_search_results: Option<Vec<String>>,
 | 
					    word_search_results: Option<Vec<(String, bool)>>,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
impl Default for ColState {
 | 
					impl Default for ColState {
 | 
				
			||||||
@@ -176,8 +176,12 @@ impl State {
 | 
				
			|||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            Message::QuickSearch(i, s) => {
 | 
					            Message::QuickSearch(i, s, result_index) => {
 | 
				
			||||||
                self.states[i].bible_search = s;
 | 
					                self.states[i].bible_search = s;
 | 
				
			||||||
 | 
					                if let Some(wsr) = &mut self.states[i].word_search_results {
 | 
				
			||||||
 | 
					                    // set "visited" for this link
 | 
				
			||||||
 | 
					                    wsr[result_index].1 = true;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
                return self.update(Message::BibleSearchSubmit(i));
 | 
					                return self.update(Message::BibleSearchSubmit(i));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            Message::BibleSearchInput(i, query) => self.states[i].bible_search = query,
 | 
					            Message::BibleSearchInput(i, query) => self.states[i].bible_search = query,
 | 
				
			||||||
@@ -196,7 +200,12 @@ impl State {
 | 
				
			|||||||
            Message::SubmitWordSearch(i) => {
 | 
					            Message::SubmitWordSearch(i) => {
 | 
				
			||||||
                if let Some(bible) = &self.states[i].bible_selected {
 | 
					                if let Some(bible) = &self.states[i].bible_selected {
 | 
				
			||||||
                    let res = bible::search_for_word(&self.states[i].word_search, bible);
 | 
					                    let res = bible::search_for_word(&self.states[i].word_search, bible);
 | 
				
			||||||
                    self.states[i].word_search_results = Some(res);
 | 
					                    self.states[i].word_search_results = Some(
 | 
				
			||||||
 | 
					                        res
 | 
				
			||||||
 | 
					                            .into_iter()
 | 
				
			||||||
 | 
					                            .map(|f| (f, false))
 | 
				
			||||||
 | 
					                            .collect()
 | 
				
			||||||
 | 
					                        );
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            Message::CopyText(i) => {
 | 
					            Message::CopyText(i) => {
 | 
				
			||||||
@@ -258,12 +267,22 @@ impl State {
 | 
				
			|||||||
                                        .clone()
 | 
					                                        .clone()
 | 
				
			||||||
                                        .unwrap_or(Vec::new())
 | 
					                                        .unwrap_or(Vec::new())
 | 
				
			||||||
                                        .into_iter()
 | 
					                                        .into_iter()
 | 
				
			||||||
                                        .map(|i| button(text(i.clone()))
 | 
					                                        .enumerate()
 | 
				
			||||||
                                            .on_press_with(move || Message::QuickSearch(
 | 
					                                        .map(|(idx,i)| {
 | 
				
			||||||
                                                col_index,
 | 
					                                            let style = if i.1 {
 | 
				
			||||||
                                                i.to_owned()
 | 
					                                                button::secondary
 | 
				
			||||||
                                            ))
 | 
					                                            } else {
 | 
				
			||||||
                                            .into())
 | 
					                                                button::primary
 | 
				
			||||||
 | 
					                                            };
 | 
				
			||||||
 | 
					                                            button(text(i.0.clone()))
 | 
				
			||||||
 | 
					                                                .style(style)
 | 
				
			||||||
 | 
					                                                .on_press_with(move || Message::QuickSearch(
 | 
				
			||||||
 | 
					                                                    col_index,
 | 
				
			||||||
 | 
					                                                    i.0.to_owned(),
 | 
				
			||||||
 | 
					                                                    idx
 | 
				
			||||||
 | 
					                                                ))
 | 
				
			||||||
 | 
					                                                .into()
 | 
				
			||||||
 | 
					                                        })
 | 
				
			||||||
                                )
 | 
					                                )
 | 
				
			||||||
                                .padding([5, 5])
 | 
					                                .padding([5, 5])
 | 
				
			||||||
                            )
 | 
					                            )
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user