From c97e0986277e95144f79da3fce5b3fd443f3922f Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Sat, 4 Jul 2026 14:44:52 +0300 Subject: refactor: route worktree tui actions through runtime wrappers --- src/app/runtime_mutations.rs | 26 +++++++++++++++++++++++++- src/app/worktrees.rs | 18 +++++++++--------- 2 files changed, 34 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/app/runtime_mutations.rs b/src/app/runtime_mutations.rs index 99cd3623..61a97dcd 100644 --- a/src/app/runtime_mutations.rs +++ b/src/app/runtime_mutations.rs @@ -1,7 +1,7 @@ use crate::api::schema::{ LayoutSetSplitRatioParams, Method, PaneFocusDirectionParams, PaneRenameParams, PaneResizeParams, PaneSplitParams, PaneSwapParams, PaneTarget, PaneZoomParams, TabTarget, - WorkspaceTarget, + WorkspaceTarget, WorktreeCreateParams, WorktreeOpenParams, WorktreeRemoveParams, }; use super::App; @@ -98,4 +98,28 @@ impl App { ) -> String { self.dispatch_runtime_mutation(id, Method::LayoutSetSplitRatio(params)) } + + pub(crate) fn runtime_worktree_create_deferred( + &mut self, + id: &'static str, + params: WorktreeCreateParams, + ) -> Option { + self.dispatch_deferred_runtime_mutation(id, Method::WorktreeCreate(params)) + } + + pub(crate) fn runtime_worktree_open( + &mut self, + id: &'static str, + params: WorktreeOpenParams, + ) -> String { + self.dispatch_runtime_mutation(id, Method::WorktreeOpen(params)) + } + + pub(crate) fn runtime_worktree_remove_deferred( + &mut self, + id: &'static str, + params: WorktreeRemoveParams, + ) -> Option { + self.dispatch_deferred_runtime_mutation(id, Method::WorktreeRemove(params)) + } } diff --git a/src/app/worktrees.rs b/src/app/worktrees.rs index 78448957..05e088b2 100644 --- a/src/app/worktrees.rs +++ b/src/app/worktrees.rs @@ -590,9 +590,9 @@ impl App { let workspace_id = create.source_workspace_id.clone(); let checkout_path = create.checkout_path.display().to_string(); - let immediate_response = self.dispatch_deferred_runtime_mutation( + let immediate_response = self.runtime_worktree_create_deferred( "tui.worktree.create", - crate::api::schema::Method::WorktreeCreate(crate::api::schema::WorktreeCreateParams { + crate::api::schema::WorktreeCreateParams { workspace_id: Some(workspace_id), cwd: None, branch: Some(branch), @@ -600,7 +600,7 @@ impl App { base: Some("HEAD".into()), focus: true, label: None, - }), + }, ); if let Some(message) = immediate_api_error_message(immediate_response.as_deref()) { if let Some(create) = &mut self.state.worktree_create { @@ -720,16 +720,16 @@ impl App { }; let source_workspace_id = open.source_workspace_id.clone(); - let response = self.dispatch_runtime_mutation( + let response = self.runtime_worktree_open( "tui.worktree.open", - crate::api::schema::Method::WorktreeOpen(crate::api::schema::WorktreeOpenParams { + crate::api::schema::WorktreeOpenParams { workspace_id: Some(source_workspace_id), cwd: None, path: Some(entry.path.display().to_string()), branch: None, focus: true, label: None, - }), + }, ); if serde_json::from_str::(&response).is_ok() { self.state.worktree_open = None; @@ -763,12 +763,12 @@ impl App { remove.error = None; let workspace_id = remove.workspace_id.clone(); let force = remove.force_confirmation; - let immediate_response = self.dispatch_deferred_runtime_mutation( + let immediate_response = self.runtime_worktree_remove_deferred( "tui.worktree.remove", - crate::api::schema::Method::WorktreeRemove(crate::api::schema::WorktreeRemoveParams { + crate::api::schema::WorktreeRemoveParams { workspace_id, force, - }), + }, ); if let Some(message) = immediate_api_error_message(immediate_response.as_deref()) { if let Some(remove) = &mut self.state.worktree_remove { -- cgit v1.2.3