refactor: remove unused review state and duplicate storage reads
This commit is contained in:
+17
-10
@@ -49,13 +49,11 @@ impl Editor {
|
||||
self.review_diff_mut().unwrap().local_review.initialized = true;
|
||||
self.review_diff_mut().unwrap().local_review.document = Review::new(root.clone());
|
||||
let store = crate::review::Store::open(&directory)?;
|
||||
let choices = store.list(&root)?;
|
||||
if choices.len() == 1 {
|
||||
self.review_diff_mut().unwrap().local_review.document =
|
||||
store.load(&root, choices[0].0)?;
|
||||
} else if choices.len() > 1 {
|
||||
self.review_diff_mut().unwrap().local_review.choices = choices;
|
||||
self.open_review_selector()?;
|
||||
let mut reviews = store.list(&root)?;
|
||||
if reviews.len() == 1 {
|
||||
self.review_diff_mut().unwrap().local_review.document = reviews.pop().unwrap();
|
||||
} else if reviews.len() > 1 {
|
||||
self.show_review_selector(reviews)?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
@@ -71,15 +69,24 @@ impl Editor {
|
||||
.as_ref()
|
||||
.ok_or("Comparison is loading")?
|
||||
.root;
|
||||
let choices = crate::review::Store::open(directory)?.list(root)?;
|
||||
let reviews = crate::review::Store::open(directory)?.list(root)?;
|
||||
self.show_review_selector(reviews)
|
||||
}
|
||||
|
||||
fn show_review_selector(&mut self, reviews: Vec<Review>) -> Result<(), String> {
|
||||
let mut text = String::from(
|
||||
"# Local reviews\n\nEnter opens the review under the caret.\n:diff.review.new starts a separate review.\n",
|
||||
);
|
||||
for (id, label) in &choices {
|
||||
for review in reviews {
|
||||
let id = review.storage_id.unwrap();
|
||||
let label = review
|
||||
.summary
|
||||
.lines()
|
||||
.find(|line| !line.trim().is_empty())
|
||||
.map_or_else(|| format!("Review {id}"), |line| line.trim().to_owned());
|
||||
use std::fmt::Write as _;
|
||||
writeln!(text, "\n## Review #{id} · {label}").unwrap();
|
||||
}
|
||||
self.review_diff_mut().unwrap().local_review.choices = choices;
|
||||
let row = text
|
||||
.lines()
|
||||
.position(|line| line.starts_with("## Review #"))
|
||||
|
||||
Reference in New Issue
Block a user