fix(nav): inventory is a spoke off the home hub — back arrow, no duplicate drawer

The inventory screen carried its own const AppDrawer() (no marketEnabled),
so opening the menu from inventory greyed out market/chat/profile — the
recurring 'phase 1' look. It was also reached via go() (route replace),
which is why it showed a hamburger instead of a back arrow like the market.

Make it coherent with the market: reach inventory via push() (from the
home card and the drawer), and drop its drawer so the AppBar shows a back
arrow returning to the home hub. The drawer now lives only on the home
screen, which always passes marketEnabled — the wrong-drawer bug class is
gone. Update the home_screen test to assert the spoke has a back arrow and
no hamburger.
This commit is contained in:
vjrj 2026-07-10 16:24:54 +02:00
parent 2e2265c0c1
commit e852b569ce
4 changed files with 8 additions and 10 deletions

View file

@ -59,7 +59,8 @@ void main() {
await disposeTree(tester);
});
testWidgets('drawer header returns to home', (tester) async {
testWidgets('inventory is a spoke: back arrow, no drawer, returns to home',
(tester) async {
LocaleSettings.setLocaleSync(AppLocale.en);
final db = newTestDatabase();
addTearDown(db.close);
@ -67,15 +68,14 @@ void main() {
await tester.pumpWidget(app(db));
await tester.pumpAndSettle();
// Navigate away from home first.
// Push into inventory off the home hub.
await tester.tap(find.byKey(const Key('home.inventory')));
await tester.pumpAndSettle();
expect(find.text('No seeds yet. Tap + to add your first.'), findsOneWidget);
// Open the drawer and tap the Tanemaki brand header.
await tester.tap(find.byIcon(Icons.menu));
await tester.pumpAndSettle();
await tester.tap(find.text('Tanemaki'));
// The spoke shows a back arrow, not a hamburger coherent with the market.
expect(find.byIcon(Icons.menu), findsNothing);
await tester.tap(find.byType(BackButton));
await tester.pumpAndSettle();
// Back on the home menu.