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:
parent
e641f8e0fa
commit
138027a8ef
4 changed files with 8 additions and 10 deletions
|
|
@ -31,7 +31,7 @@ class AppDrawer extends StatelessWidget {
|
|||
label: t.menu.inventory,
|
||||
onTap: () {
|
||||
Navigator.of(context).pop();
|
||||
context.go('/inventory');
|
||||
context.push('/inventory');
|
||||
},
|
||||
),
|
||||
_DrawerItem(
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ class HomeScreen extends StatelessWidget {
|
|||
icon: Icons.inventory_2_outlined,
|
||||
label: t.home.yourInventory,
|
||||
subtitle: t.home.yourInventorySubtitle,
|
||||
onTap: () => context.go('/inventory'),
|
||||
onTap: () => context.push('/inventory'),
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
_OutlinedMenuCard(
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import '../domain/seed_viability.dart';
|
|||
import '../i18n/strings.g.dart';
|
||||
import '../services/share_catalog_service.dart';
|
||||
import '../state/inventory_cubit.dart';
|
||||
import 'app_drawer.dart';
|
||||
import 'draft_triage.dart';
|
||||
import 'quantity_kind_l10n.dart';
|
||||
import 'quantity_picker.dart';
|
||||
|
|
@ -50,7 +49,6 @@ class InventoryListScreen extends StatelessWidget {
|
|||
),
|
||||
],
|
||||
),
|
||||
drawer: const AppDrawer(),
|
||||
floatingActionButton: FloatingActionButton(
|
||||
key: const Key('inventory.addFab'),
|
||||
tooltip: t.quickAdd.title,
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue