feat: Refactor routing and navigation structure with StatefulShellRoute
Test Suite / test (24.15.0) (push) Has been cancelled

- Introduced a new function `_shellBranchIndexForPath` to determine the index of the shell branch based on the path.
- Replaced `ShellRoute` with `StatefulShellRoute.indexedStack` for better state management during navigation.
- Updated `AppShell` to handle navigation path changes and integrate with the new routing structure.
- Organized routes into `StatefulShellBranch` for better modularity and clarity.
- Enhanced admin panel functionality with improved alias management and UI updates.
- Added new methods in `ReceiptImportSessionNotifier` for managing selected items and edits more efficiently.
- Improved UI components in receipt import and admin panels for better performance and user experience.
- Added PageStorageKeys to various ListViews to maintain scroll positions across navigation.
- Documented performance goals and profiling strategies in a new PERFORMANCE.md file.
This commit is contained in:
Nils-Johan Gynther
2026-05-08 12:51:38 +02:00
parent 73309cb110
commit 0873fa42bb
12 changed files with 625 additions and 285 deletions
@@ -38,6 +38,7 @@ class RecipesScreen extends ConsumerWidget {
if (view.mode == RecipesViewMode.grid) {
return GridView.builder(
key: PageStorageKey<String>('recipes-grid-${view.columns}'),
padding: const EdgeInsets.only(bottom: 88),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: view.columns,
@@ -55,6 +56,7 @@ class RecipesScreen extends ConsumerWidget {
);
} else {
return ListView.builder(
key: const PageStorageKey<String>('recipes-list'),
padding: const EdgeInsets.only(bottom: 88),
itemCount: recipes.length,
itemBuilder: (context, index) {