Port upstream UI polish and refresh dependencies
Bring over selected Warp UI improvements: selectable Thought text, message timestamps, animated theme backgrounds, editable New Window shortcuts, safer tab renaming and restoration, and text/font/discard crash fixes. Match upstream orchestration pill geometry and tooltips, and replace expanded subagent previews with compact links that retain live status and conversation navigation for launches and follow-up messages. Include the pending Cargo.lock dependency refresh. Adapted upstream PRs: #15948, #15884, #15691, #14618, #15772, #15705, #15605, #14895, #15996, #15771, #14893, and #14603.
This commit is contained in:
@@ -7655,15 +7655,17 @@ impl TypedActionView for CodeReviewView {
|
||||
ctx,
|
||||
);
|
||||
}
|
||||
} else {
|
||||
let file_path = self.discard_dialog_state.discard_file_paths[0].clone();
|
||||
if let Some(standardized_path) = self.to_standardized_path(&file_path) {
|
||||
self.discard_file(
|
||||
standardized_path,
|
||||
self.discard_dialog_state.stash_changes_enabled,
|
||||
ctx,
|
||||
);
|
||||
}
|
||||
} else if let Some(standardized_path) = self
|
||||
.discard_dialog_state
|
||||
.discard_file_paths
|
||||
.first()
|
||||
.and_then(|file_path| self.to_standardized_path(file_path))
|
||||
{
|
||||
self.discard_file(
|
||||
standardized_path,
|
||||
self.discard_dialog_state.stash_changes_enabled,
|
||||
ctx,
|
||||
);
|
||||
}
|
||||
self.discard_dialog_state.show_discard_confirm_dialog = false;
|
||||
self.discard_dialog_state.discard_file_paths.clear();
|
||||
|
||||
@@ -852,6 +852,24 @@ fn test_setup_dropdown_without_branches_only_has_uncommitted_changes() {
|
||||
});
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_duplicate_single_file_discard_confirmation_is_ignored() {
|
||||
App::test((), |mut app| async move {
|
||||
let ctx = TestContext::new(&mut app, "test.txt", "line 1\nline 2\nline 3");
|
||||
|
||||
ctx.code_review_view.update(&mut app, |view, view_ctx| {
|
||||
view.discard_dialog_state.operation_type = DiscardOperationType::FileUncommittedChanges;
|
||||
view.discard_dialog_state.show_discard_confirm_dialog = false;
|
||||
view.discard_dialog_state.discard_file_paths.clear();
|
||||
|
||||
view.handle_action(&CodeReviewAction::ConfirmDiscardFile, view_ctx);
|
||||
|
||||
assert!(!view.discard_dialog_state.show_discard_confirm_dialog);
|
||||
assert!(view.discard_dialog_state.discard_file_paths.is_empty());
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_on_close_then_on_open_reinitializes_repo_state() {
|
||||
App::test((), |mut app| async move {
|
||||
|
||||
Reference in New Issue
Block a user