Skip to content

Commit 8b7ac52

Browse files
committed
refactor(coordinator): clear sidebar on disconnect and simplify inspector materialization
1 parent 792428c commit 8b7ac52

1 file changed

Lines changed: 3 additions & 9 deletions

File tree

TablePro/Core/Services/Infrastructure/MainSplitViewController.swift

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,11 @@ internal final class MainSplitViewController: NSSplitViewController, InspectorVi
4343
private var sidebarContainer: SidebarContainerViewController!
4444
private var detailHosting: NSHostingController<AnyView>!
4545
private var inspectorHosting: NSHostingController<AnyView>!
46-
private var hasMaterializedInspector = false
4746

4847
// MARK: - Panel Layout State
4948

5049
private var splitAutosaveName: NSSplitView.AutosaveName {
51-
if let connectionId = payload?.connectionId {
50+
if let connectionId = payload?.connectionId ?? currentSession?.connection.id {
5251
return "com.TablePro.mainSplit.\(connectionId.uuidString)"
5352
}
5453
return "com.TablePro.mainSplit"
@@ -230,12 +229,6 @@ internal final class MainSplitViewController: NSSplitViewController, InspectorVi
230229
recomputeWindowMinSize()
231230
}
232231

233-
private func materializeInspectorIfNeeded() {
234-
guard !hasMaterializedInspector, let inspectorHosting else { return }
235-
hasMaterializedInspector = true
236-
inspectorHosting.rootView = AnyView(buildInspectorView())
237-
}
238-
239232
override func viewWillAppear() {
240233
super.viewWillAppear()
241234
guard let window = view.window else { return }
@@ -324,6 +317,7 @@ internal final class MainSplitViewController: NSSplitViewController, InspectorVi
324317
sessionState = nil
325318
currentSession = nil
326319
sidebarContainer.updateSidebarState(nil, windowState: nil)
320+
sidebarContainer.rootView = AnyView(buildSidebarView())
327321
}
328322
return
329323
}
@@ -514,7 +508,7 @@ internal final class MainSplitViewController: NSSplitViewController, InspectorVi
514508
}
515509

516510
func showInspector() {
517-
materializeInspectorIfNeeded()
511+
inspectorHosting.rootView = AnyView(buildInspectorView())
518512
inspectorSplitItem?.animator().isCollapsed = false
519513
recomputeWindowMinSize()
520514
}

0 commit comments

Comments
 (0)