Problem
Parent: #723
lazyConnectionTreeList (connections_panel.dart) builds either:
- a full
Column when itemCount ≤ 24, or
ListView.builder(shrinkWrap: true) capped to 14× row height
These sit inside QueryaAnimatedExpand → AnimatedSize, which itself sits inside the outer sidebar SliverList item for each expanded connection.
Effect: nested scrollables + shrink-wrap layout passes during expand and when scrolling the outer panel — high risk of dropped frames at 120/144 Hz with large schemas/table lists.
SDUI already flattens to a single ListView.builder and skips height morph for this reason.
Proposal
- Flatten expanded native tree (connection → DB → schema → groups → leaves) into one virtualized list (prefer patterns like SDUI flatten, or Flutter
TreeSliver if it fits desktop sidebar).
- Remove nested
ListView(shrinkWrap: true) under the outer CustomScrollView.
- Keep fixed
itemExtent (kConnectionTreeRowExtent) where possible.
- Coordinate with visual parity #719 so one row widget serves native + SDUI.
Acceptance
Files
lib/features/connections/connections_panel.dart (lazyConnectionTreeList)
connections_panel_pg_tree.dart, _mysql, _sqlite, _mongo, _redis
lib/core/sdui/sdui_tree_builder.dart (reference)
Problem
Parent: #723
lazyConnectionTreeList(connections_panel.dart) builds either:ColumnwhenitemCount ≤ 24, orListView.builder(shrinkWrap: true)capped to 14× row heightThese sit inside
QueryaAnimatedExpand→AnimatedSize, which itself sits inside the outer sidebarSliverListitem for each expanded connection.Effect: nested scrollables + shrink-wrap layout passes during expand and when scrolling the outer panel — high risk of dropped frames at 120/144 Hz with large schemas/table lists.
SDUI already flattens to a single
ListView.builderand skips height morph for this reason.Proposal
TreeSliverif it fits desktop sidebar).ListView(shrinkWrap: true)under the outerCustomScrollView.itemExtent(kConnectionTreeRowExtent) where possible.Acceptance
Files
lib/features/connections/connections_panel.dart(lazyConnectionTreeList)connections_panel_pg_tree.dart,_mysql,_sqlite,_mongo,_redislib/core/sdui/sdui_tree_builder.dart(reference)