Preserve sidebar state for blogmarks.

This commit is contained in:
2026-08-07 15:40:06 +02:00
parent 0417aaf749
commit 41d5f1c014
3 changed files with 17 additions and 8 deletions

View File

@@ -3000,8 +3000,6 @@ impl BdsApp {
if self.task_manager.status(task_id) == Some(TaskStatus::Cancelled) {
return Task::none();
}
self.sidebar_view = SidebarView::Posts;
self.sidebar_visible = true;
let tab = Tab {
id: post.id,
tab_type: TabType::Post,
@@ -3021,8 +3019,6 @@ impl BdsApp {
for error in result.transform_errors {
self.add_output(&error);
}
self.sidebar_view = SidebarView::Posts;
self.sidebar_visible = true;
let post_id = result.post.id.clone();
let already_open = self
.tabs
@@ -11140,6 +11136,8 @@ mod tests {
app.tabs.clear();
app.active_tab = None;
app.post_editors.clear();
app.sidebar_view = SidebarView::Media;
app.sidebar_visible = false;
let task_id = app.task_manager.submit("Importing blogmark");
let _ = app.update(Message::BlogmarkDraftCreated {
@@ -11149,6 +11147,14 @@ mod tests {
assert_eq!(app.active_tab.as_deref(), Some(created.id.as_str()));
assert!(app.post_editors.contains_key(&created.id));
assert_eq!(app.sidebar_view, SidebarView::Media);
assert!(!app.sidebar_visible);
let persisted =
engine::ui_state::load(app.db.as_ref().unwrap().conn(), &created.project_id)
.unwrap()
.unwrap();
assert_eq!(persisted.sidebar_view, "media");
assert!(!persisted.sidebar_visible);
assert_eq!(
app.task_manager.status(task_id),
Some(TaskStatus::Running),
@@ -11175,7 +11181,7 @@ mod tests {
}
#[test]
fn imported_blogmark_activates_posts_and_opens_its_editor() {
fn imported_blogmark_opens_its_editor_without_changing_sidebar_state() {
let (db, project, temp) = setup();
ai::save_endpoint(
db.conn(),
@@ -11220,8 +11226,8 @@ mod tests {
}),
});
assert_eq!(app.sidebar_view, SidebarView::Posts);
assert!(app.sidebar_visible);
assert_eq!(app.sidebar_view, SidebarView::Settings);
assert!(!app.sidebar_visible);
assert_eq!(app.active_tab.as_deref(), Some(created.id.as_str()));
assert!(app.post_editors.contains_key(&created.id));
assert!(app.embedded_preview.is_some());