diff --git a/mobile/lib/main.dart b/mobile/lib/main.dart index 393a5ac..d293389 100644 --- a/mobile/lib/main.dart +++ b/mobile/lib/main.dart @@ -9,7 +9,7 @@ import 'package:mobile/repos/product.dart'; import 'package:mobile/repos/receipt.dart'; import 'package:mobile/repos/user.dart'; import 'package:provider/provider.dart'; -import 'package:mobile/repos/bottom_navigation_bar.dart'; +import 'package:mobile/repos/routing.dart'; void main() { runApp(const MyApp()); @@ -22,7 +22,7 @@ class MyApp extends StatelessWidget { Widget build(BuildContext context) { return MultiProvider( providers: [ - ChangeNotifierProvider(create: (_) => BottomNavigationBarRepo()), + ChangeNotifierProvider(create: (_) => Routing()), ChangeNotifierProvider(create: (_) => ProductRepo()), ChangeNotifierProvider(create: (_) => CartRepo()), ChangeNotifierProvider(create: (_) => ReceiptRepo()), diff --git a/mobile/lib/pages/dashboard.dart b/mobile/lib/pages/dashboard.dart index c818bf0..df230e3 100644 --- a/mobile/lib/pages/dashboard.dart +++ b/mobile/lib/pages/dashboard.dart @@ -3,7 +3,7 @@ import 'package:mobile/pages/all_products_page.dart'; import 'package:mobile/pages/cart_page.dart'; import 'package:mobile/pages/all_receipts_page.dart'; import 'package:mobile/pages/home_page.dart'; -import 'package:mobile/repos/bottom_navigation_bar.dart'; +import 'package:mobile/repos/routing.dart'; import 'package:mobile/repos/cart.dart'; import 'package:mobile/repos/user.dart'; import 'package:provider/provider.dart'; @@ -26,14 +26,14 @@ class Dashboard extends StatelessWidget { @override Widget build(BuildContext context) { - final pageIndexProvider = Provider.of(context); + final pageIndexProvider = Provider.of(context); int currentIndex = pageIndexProvider.currentIndex; final CartRepo cartRepo = context.watch(); return Scaffold( bottomNavigationBar: BottomNavigationBar( type: BottomNavigationBarType.fixed, - onTap: (index) => pageIndexProvider.setIndex(index), + onTap: (index) => pageIndexProvider.routeToIndex(index), currentIndex: currentIndex, items: [ BottomNavigationBarItem( diff --git a/mobile/lib/pages/finish_shopping_page.dart b/mobile/lib/pages/finish_shopping_page.dart index ee5c9bc..b04548f 100644 --- a/mobile/lib/pages/finish_shopping_page.dart +++ b/mobile/lib/pages/finish_shopping_page.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:mobile/repos/routing.dart'; import 'package:mobile/repos/cart.dart'; import 'package:mobile/repos/paying_state.dart'; import 'package:mobile/repos/receipt.dart'; @@ -86,7 +87,11 @@ class FinishShoppingPage extends StatelessWidget { await Future.delayed(const Duration(seconds: 1)); cartRepo.clearCart(); payingStateRepo.reset(); - if (context.mounted) Navigator.pop(context); + if (context.mounted) { + Navigator.pop(context); + final Routing routing = context.read(); + routing.routeTo(PageSelector.homePage); + } }, child: const Text("Betal"))), ), diff --git a/mobile/lib/repos/bottom_navigation_bar.dart b/mobile/lib/repos/bottom_navigation_bar.dart deleted file mode 100644 index 25d9e22..0000000 --- a/mobile/lib/repos/bottom_navigation_bar.dart +++ /dev/null @@ -1,10 +0,0 @@ -import 'package:flutter/material.dart'; - -class BottomNavigationBarRepo extends ChangeNotifier { - int currentIndex = 0; - - void setIndex(int index) { - currentIndex = index; - notifyListeners(); - } -} diff --git a/mobile/lib/repos/routing.dart b/mobile/lib/repos/routing.dart new file mode 100644 index 0000000..91a6f7f --- /dev/null +++ b/mobile/lib/repos/routing.dart @@ -0,0 +1,17 @@ +import 'package:flutter/material.dart'; + +enum PageSelector { homePage, productsPage, cartPage, receiptsPage } + +class Routing extends ChangeNotifier { + int currentIndex = 0; + + void routeTo(PageSelector page) { + currentIndex = page.index; + notifyListeners(); + } + + void routeToIndex(int index) { + currentIndex = index; + notifyListeners(); + } +}