Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
cob: Don't lose state when lifecycling
cloudhead committed 2 years ago
commit 538ca1e44d47d2183f3aacd92d3d12bc0c1f108e
parent 5b1cdbaa4ada3565a019eb743785b2fa916e31da
1 file changed +18 -10
modified radicle/src/cob/patch.rs
@@ -706,17 +706,25 @@ impl Patch {
                self.title = title;
                self.target = target;
            }
-
            Action::Lifecycle { state } => match state {
-
                Lifecycle::Open => {
-
                    self.state = State::Open { conflicts: vec![] };
-
                }
-
                Lifecycle::Draft => {
-
                    self.state = State::Draft;
-
                }
-
                Lifecycle::Archived => {
-
                    self.state = State::Archived;
+
            Action::Lifecycle { state } => {
+
                let valid = self.state == State::Draft
+
                    || self.state == State::Archived
+
                    || self.state == State::Open { conflicts: vec![] };
+

+
                if valid {
+
                    match state {
+
                        Lifecycle::Open => {
+
                            self.state = State::Open { conflicts: vec![] };
+
                        }
+
                        Lifecycle::Draft => {
+
                            self.state = State::Draft;
+
                        }
+
                        Lifecycle::Archived => {
+
                            self.state = State::Archived;
+
                        }
+
                    }
                }
-
            },
+
            }
            Action::Label { labels } => {
                self.labels = BTreeSet::from_iter(labels);
            }