Radish alpha
r
rad:z39mP9rQAaGmERfUMPULfPUi473tY
Radicle terminal user interface
Radicle
Git
bin(patch): Use improved hunk items
Erik Kundt committed 1 year ago
commit 53c90684324e49e545529ee53b6d9151935e6473
parent baaca35
1 file changed +9 -7
modified bin/commands/patch/review.rs
@@ -37,6 +37,7 @@ use tui::ui::Column;
use tui::{Channel, Exit};

use crate::cob::HunkState;
+
use crate::cob::StatefulHunkItem;
use crate::tui_patch::review::builder::DiffUtil;
use crate::ui::format;
use crate::ui::items::HunkItem;
@@ -198,7 +199,9 @@ impl<'a> App<'a> {
        let repo = storage.repository(rid)?;
        let queue = queue
            .iter()
-
            .map(|item| HunkItem::from((&repo, &review, item)))
+
            .map(|(_, item, state)| {
+
                HunkItem::from((&repo, &review, StatefulHunkItem::from((item, state))))
+
            })
            .collect::<Vec<_>>();

        let mut items = HashMap::new();
@@ -242,11 +245,11 @@ impl<'a> App<'a> {
            if let Some(hunk) = hunks.get(selected) {
                let mut file: Option<FileReviewBuilder> = None;
                let file = match file.as_mut() {
-
                    Some(fr) => fr.set_item(&hunk.inner.1),
-
                    None => file.insert(FileReviewBuilder::new(&hunk.inner.1)),
+
                    Some(fr) => fr.set_item(hunk.inner.hunk()),
+
                    None => file.insert(FileReviewBuilder::new(hunk.inner.hunk())),
                };

-
                let diff = file.item_diff(&hunk.inner.1)?;
+
                let diff = file.item_diff(hunk.inner.hunk())?;
                brain.accept(diff, repo.raw())?;
            }
        }
@@ -292,8 +295,7 @@ impl<'a> App<'a> {
        let mut queue = self.queue.lock().unwrap();
        for (idx, new_state) in states.iter().enumerate() {
            if let Some(hunk) = queue.0.get_mut(idx) {
-
                let (_, _, ref mut state) = hunk.inner;
-
                *state = new_state.clone();
+
                *hunk.inner.state_mut() = new_state.clone();
            }
        }

@@ -374,7 +376,7 @@ impl<'a> App<'a> {
        let hunks_total = queue.len();
        let hunks_accepted = queue
            .iter()
-
            .filter(|item| item.inner.2 == HunkState::Accepted)
+
            .filter(|item| *item.inner.state() == HunkState::Accepted)
            .collect::<Vec<_>>()
            .len();