From afaf0b34db0f1747cd7cec9cdad31c40f8ede0b1 Mon Sep 17 00:00:00 2001 From: Mikkel Troels Kongsted Date: Wed, 12 Mar 2025 09:02:26 +0100 Subject: [PATCH] repos -> controllers --- .../add_to_cart_state.dart | 2 +- mobile/lib/{repos => controllers}/cart.dart | 2 +- .../location_image.dart | 4 ++-- .../{repos => controllers}/paying_state.dart | 2 +- .../lib/{repos => controllers}/product.dart | 8 ++++---- .../lib/{repos => controllers}/receipt.dart | 2 +- .../lib/{repos => controllers}/routing.dart | 2 +- .../lib/{repos => controllers}/session.dart | 0 mobile/lib/{repos => controllers}/user.dart | 4 ++-- mobile/lib/main.dart | 16 +++++++-------- mobile/lib/pages/all_products_page.dart | 4 ++-- mobile/lib/pages/all_receipts_page.dart | 2 +- mobile/lib/pages/cart_page.dart | 20 ++++++++++--------- mobile/lib/pages/dashboard.dart | 4 ++-- mobile/lib/pages/finish_shopping_page.dart | 10 ++++++---- mobile/lib/pages/home_page.dart | 2 +- mobile/lib/pages/log_in_page.dart | 2 +- mobile/lib/pages/product_location_page.dart | 3 ++- mobile/lib/pages/product_page.dart | 6 +++--- mobile/lib/pages/register_page.dart | 2 +- mobile/lib/pages/settings_page.dart | 2 +- mobile/lib/pages/settings_pages/saldo.dart | 2 +- 22 files changed, 53 insertions(+), 48 deletions(-) rename mobile/lib/{repos => controllers}/add_to_cart_state.dart (85%) rename mobile/lib/{repos => controllers}/cart.dart (97%) rename mobile/lib/{repos => controllers}/location_image.dart (86%) rename mobile/lib/{repos => controllers}/paying_state.dart (89%) rename mobile/lib/{repos => controllers}/product.dart (96%) rename mobile/lib/{repos => controllers}/receipt.dart (97%) rename mobile/lib/{repos => controllers}/routing.dart (86%) rename mobile/lib/{repos => controllers}/session.dart (100%) rename mobile/lib/{repos => controllers}/user.dart (97%) diff --git a/mobile/lib/repos/add_to_cart_state.dart b/mobile/lib/controllers/add_to_cart_state.dart similarity index 85% rename from mobile/lib/repos/add_to_cart_state.dart rename to mobile/lib/controllers/add_to_cart_state.dart index ecb4b33..da9719f 100644 --- a/mobile/lib/repos/add_to_cart_state.dart +++ b/mobile/lib/controllers/add_to_cart_state.dart @@ -2,7 +2,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; -class AddToCartStateRepo extends ChangeNotifier { +class AddToCartStateController extends ChangeNotifier { int currentAmount = 0; Timer resetTimer = Timer(const Duration(), () {}); diff --git a/mobile/lib/repos/cart.dart b/mobile/lib/controllers/cart.dart similarity index 97% rename from mobile/lib/repos/cart.dart rename to mobile/lib/controllers/cart.dart index 370ef8b..8e41574 100644 --- a/mobile/lib/repos/cart.dart +++ b/mobile/lib/controllers/cart.dart @@ -3,7 +3,7 @@ import 'package:mobile/models/product.dart'; class ProductIdException implements Exception {} -class CartRepo extends ChangeNotifier { +class CartController extends ChangeNotifier { final List cart = []; List allCartItems() { diff --git a/mobile/lib/repos/location_image.dart b/mobile/lib/controllers/location_image.dart similarity index 86% rename from mobile/lib/repos/location_image.dart rename to mobile/lib/controllers/location_image.dart index 19bc1d1..d9e5e39 100644 --- a/mobile/lib/repos/location_image.dart +++ b/mobile/lib/controllers/location_image.dart @@ -3,10 +3,10 @@ import 'dart:ui' as ui; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -class LocationImageRepo extends ChangeNotifier { +class LocationImageController extends ChangeNotifier { ui.Image? image; - LocationImageRepo() { + LocationImageController() { load(); } diff --git a/mobile/lib/repos/paying_state.dart b/mobile/lib/controllers/paying_state.dart similarity index 89% rename from mobile/lib/repos/paying_state.dart rename to mobile/lib/controllers/paying_state.dart index 6874b4e..270850a 100644 --- a/mobile/lib/repos/paying_state.dart +++ b/mobile/lib/controllers/paying_state.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -class PayingStateRepo extends ChangeNotifier { +class PayingStateController extends ChangeNotifier { PayingState state = PayingState.unset; void next() { diff --git a/mobile/lib/repos/product.dart b/mobile/lib/controllers/product.dart similarity index 96% rename from mobile/lib/repos/product.dart rename to mobile/lib/controllers/product.dart index ce6c842..b6a138b 100644 --- a/mobile/lib/repos/product.dart +++ b/mobile/lib/controllers/product.dart @@ -5,11 +5,11 @@ import 'package:mobile/results.dart'; import 'package:mobile/server/client.dart'; import 'package:mobile/server/server.dart'; -class ProductRepo extends ChangeNotifier { +class ProductController extends ChangeNotifier { int _nextId = 0; List products = []; String query = ""; - ProductRepo() { + ProductController() { _addAllProducts(); } @@ -139,11 +139,11 @@ class ProductRepo extends ChangeNotifier { } } -class ProductRepoByServer extends ChangeNotifier { +class ProductControllerByServer extends ChangeNotifier { final client = BackendServer(); List products = []; String query = ""; - ProductRepoByServer() { + ProductControllerByServer() { fetchProductsFromServer(); } diff --git a/mobile/lib/repos/receipt.dart b/mobile/lib/controllers/receipt.dart similarity index 97% rename from mobile/lib/repos/receipt.dart rename to mobile/lib/controllers/receipt.dart index a44ef6f..f48b87c 100644 --- a/mobile/lib/repos/receipt.dart +++ b/mobile/lib/controllers/receipt.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:mobile/models/product.dart'; import 'package:mobile/repos/cart.dart'; -class ReceiptRepo extends ChangeNotifier { +class ReceiptController extends ChangeNotifier { int nextId = 0; final List receipts = []; diff --git a/mobile/lib/repos/routing.dart b/mobile/lib/controllers/routing.dart similarity index 86% rename from mobile/lib/repos/routing.dart rename to mobile/lib/controllers/routing.dart index 91a6f7f..5de5288 100644 --- a/mobile/lib/repos/routing.dart +++ b/mobile/lib/controllers/routing.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; enum PageSelector { homePage, productsPage, cartPage, receiptsPage } -class Routing extends ChangeNotifier { +class RoutingController extends ChangeNotifier { int currentIndex = 0; void routeTo(PageSelector page) { diff --git a/mobile/lib/repos/session.dart b/mobile/lib/controllers/session.dart similarity index 100% rename from mobile/lib/repos/session.dart rename to mobile/lib/controllers/session.dart diff --git a/mobile/lib/repos/user.dart b/mobile/lib/controllers/user.dart similarity index 97% rename from mobile/lib/repos/user.dart rename to mobile/lib/controllers/user.dart index 2895f36..f49f73a 100644 --- a/mobile/lib/repos/user.dart +++ b/mobile/lib/controllers/user.dart @@ -1,13 +1,13 @@ import 'package:flutter/material.dart'; import 'package:mobile/results.dart'; -class UsersRepo extends ChangeNotifier { +class UsersControllerOld extends ChangeNotifier { int nextId = 0; final List users = []; User? _loggedInUser; - UsersRepo() { + UsersControllerOld() { addTestUsers(); } diff --git a/mobile/lib/main.dart b/mobile/lib/main.dart index 06ea576..abe4532 100644 --- a/mobile/lib/main.dart +++ b/mobile/lib/main.dart @@ -23,14 +23,14 @@ class MyApp extends StatelessWidget { Widget build(BuildContext context) { return MultiProvider( providers: [ - ChangeNotifierProvider(create: (_) => Routing()), - ChangeNotifierProvider(create: (_) => ProductRepo()), - ChangeNotifierProvider(create: (_) => CartRepo()), - ChangeNotifierProvider(create: (_) => ReceiptRepo()), - ChangeNotifierProvider(create: (_) => PayingStateRepo()), - ChangeNotifierProvider(create: (_) => AddToCartStateRepo()), - ChangeNotifierProvider(create: (_) => LocationImageRepo()), - ChangeNotifierProvider(create: (_) => UsersRepo()), + ChangeNotifierProvider(create: (_) => RoutingController()), + ChangeNotifierProvider(create: (_) => ProductController()), + ChangeNotifierProvider(create: (_) => CartController()), + ChangeNotifierProvider(create: (_) => ReceiptController()), + ChangeNotifierProvider(create: (_) => PayingStateController()), + ChangeNotifierProvider(create: (_) => AddToCartStateController()), + ChangeNotifierProvider(create: (_) => LocationImageController()), + ChangeNotifierProvider(create: (_) => UsersControllerOld()), ], child: MaterialApp( title: 'Fresh Plaza', diff --git a/mobile/lib/pages/all_products_page.dart b/mobile/lib/pages/all_products_page.dart index 18104d2..2eb1ee9 100644 --- a/mobile/lib/pages/all_products_page.dart +++ b/mobile/lib/pages/all_products_page.dart @@ -99,7 +99,7 @@ class AllProductsPage extends StatelessWidget { @override Widget build(BuildContext context) { - final productRepo = Provider.of(context); + final productRepo = Provider.of(context); return Row( mainAxisAlignment: MainAxisAlignment.center, children: [ @@ -122,7 +122,7 @@ class AllProductsPage extends StatelessWidget { ], ), Expanded( - child: Consumer(builder: (_, productRepo, __) { + child: Consumer(builder: (_, productRepo, __) { final products = productRepo.filteredProducts; return ListView.builder( shrinkWrap: true, diff --git a/mobile/lib/pages/all_receipts_page.dart b/mobile/lib/pages/all_receipts_page.dart index d9a67a4..70cfe0c 100644 --- a/mobile/lib/pages/all_receipts_page.dart +++ b/mobile/lib/pages/all_receipts_page.dart @@ -43,7 +43,7 @@ class AllReceiptsPage extends StatelessWidget { Widget build(BuildContext context) { return Column( children: [ - Expanded(child: Consumer( + Expanded(child: Consumer( builder: (_, receiptRepo, __) { final allReceipts = receiptRepo.sortedReceiptsByDate(); return ListView.builder( diff --git a/mobile/lib/pages/cart_page.dart b/mobile/lib/pages/cart_page.dart index cb59969..11275fa 100644 --- a/mobile/lib/pages/cart_page.dart +++ b/mobile/lib/pages/cart_page.dart @@ -14,7 +14,7 @@ import 'package:mobile/widgets/sized_card.dart'; import 'package:provider/provider.dart'; class CartItemView extends StatelessWidget { - final CartRepo cartRepo; + final CartController cartRepo; final int productId; final String name; final int price; @@ -152,7 +152,7 @@ class CartPage extends StatelessWidget { return Column( children: [ Expanded( - child: Consumer( + child: Consumer( builder: (_, cartRepo, __) { final cart = cartRepo.allCartItems(); return ListView.builder( @@ -202,10 +202,11 @@ class CartPage extends StatelessWidget { child: const Text("Cancel")), TextButton( onPressed: () { - final productRepo = - context.read(); - final CartRepo cartRepo = - context.read(); + final productRepo = context + .read(); + final CartController cartRepo = + context + .read(); final productResult = productRepo .productWithBarcode( inputController.text); @@ -261,9 +262,10 @@ class CartPage extends StatelessWidget { if (!context.mounted) { return; } - final CartRepo cartRepo = - context.read(); - final productRepo = context.read(); + final CartController cartRepo = + context.read(); + final productRepo = + context.read(); final productResult = productRepo .productWithBarcode(result.rawContent); switch (productResult) { diff --git a/mobile/lib/pages/dashboard.dart b/mobile/lib/pages/dashboard.dart index f954619..2af5762 100644 --- a/mobile/lib/pages/dashboard.dart +++ b/mobile/lib/pages/dashboard.dart @@ -26,9 +26,9 @@ 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(); + final CartController cartRepo = context.watch(); return Scaffold( bottomNavigationBar: BottomNavigationBar( diff --git a/mobile/lib/pages/finish_shopping_page.dart b/mobile/lib/pages/finish_shopping_page.dart index 90746d2..846b146 100644 --- a/mobile/lib/pages/finish_shopping_page.dart +++ b/mobile/lib/pages/finish_shopping_page.dart @@ -17,9 +17,10 @@ class FinishShoppingPage extends StatelessWidget { @override Widget build(BuildContext context) { - final CartRepo cartRepo = context.read(); - final ReceiptRepo receiptRepo = context.read(); - final PayingStateRepo payingStateRepo = context.watch(); + final CartController cartRepo = context.read(); + final ReceiptController receiptRepo = context.read(); + final PayingStateController payingStateRepo = + context.watch(); final cart = cartRepo.allCartItems(); return Scaffold( @@ -87,7 +88,8 @@ class FinishShoppingPage extends StatelessWidget { payingStateRepo.reset(); if (context.mounted) { Navigator.pop(context); - final Routing routing = context.read(); + final RoutingController routing = + context.read(); routing.routeTo(PageSelector.homePage); } }, diff --git a/mobile/lib/pages/home_page.dart b/mobile/lib/pages/home_page.dart index 7434c37..6809753 100644 --- a/mobile/lib/pages/home_page.dart +++ b/mobile/lib/pages/home_page.dart @@ -33,7 +33,7 @@ class HomePage extends StatelessWidget { color: Color(0xFFFFFFFF), ), padding: const EdgeInsets.all(10), - child: Consumer( + child: Consumer( builder: (context, usersRepo, _) => Text( "Saldo: ${formatDkkCents(user.balanceInDkkCents)}", style: Theme.of(context).textTheme.headlineSmall)), diff --git a/mobile/lib/pages/log_in_page.dart b/mobile/lib/pages/log_in_page.dart index c38c743..db8e679 100644 --- a/mobile/lib/pages/log_in_page.dart +++ b/mobile/lib/pages/log_in_page.dart @@ -62,7 +62,7 @@ class LogInFormState extends State { ), PrimaryButton( onPressed: () { - final usersRepo = context.read(); + final usersRepo = context.read(); final loginResult = usersRepo.login(mailController.text, passwordController.text); diff --git a/mobile/lib/pages/product_location_page.dart b/mobile/lib/pages/product_location_page.dart index a057622..0d0067f 100644 --- a/mobile/lib/pages/product_location_page.dart +++ b/mobile/lib/pages/product_location_page.dart @@ -21,7 +21,8 @@ class ProductLocationPage extends StatelessWidget { Text(product.name), ], ), - Consumer(builder: (context, locationImage, child) { + Consumer( + builder: (context, locationImage, child) { if (locationImage.image == null) { return const CircularProgressIndicator( color: Colors.blue, diff --git a/mobile/lib/pages/product_page.dart b/mobile/lib/pages/product_page.dart index faedda9..94039da 100644 --- a/mobile/lib/pages/product_page.dart +++ b/mobile/lib/pages/product_page.dart @@ -14,8 +14,8 @@ class ProductPage extends StatelessWidget { @override Widget build(BuildContext context) { - final AddToCartStateRepo addToCartStateRepo = - context.watch(); + final AddToCartStateController addToCartStateRepo = + context.watch(); return Scaffold( backgroundColor: Colors.white, body: SafeArea( @@ -90,7 +90,7 @@ class ProductPage extends StatelessWidget { duration: const Duration(seconds: 2), ); ScaffoldMessenger.of(context).removeCurrentSnackBar(); - final cartRepo = context.read(); + final cartRepo = context.read(); cartRepo.addToCart(product); ScaffoldMessenger.of(context).showSnackBar(snackBar); }, diff --git a/mobile/lib/pages/register_page.dart b/mobile/lib/pages/register_page.dart index 821244e..de00cd8 100644 --- a/mobile/lib/pages/register_page.dart +++ b/mobile/lib/pages/register_page.dart @@ -71,7 +71,7 @@ class RegisterFormState extends State { obscure: true), PrimaryButton( onPressed: () { - final usersRepo = context.read(); + final usersRepo = context.read(); if (usersRepo.addUser(nameController.text, mailController.text, passwordController.text) is Ok) { setState(() => registerError = false); diff --git a/mobile/lib/pages/settings_page.dart b/mobile/lib/pages/settings_page.dart index 0ab75b4..e67e11c 100644 --- a/mobile/lib/pages/settings_page.dart +++ b/mobile/lib/pages/settings_page.dart @@ -31,7 +31,7 @@ class SettingsPage extends StatelessWidget { icon: Icons.door_back_door, title: "Log ud", action: (context) { - final users = context.read(); + final users = context.read(); users.logout(); Navigator.popUntil(context, (_) => false); Navigator.of(context) diff --git a/mobile/lib/pages/settings_pages/saldo.dart b/mobile/lib/pages/settings_pages/saldo.dart index b72fff2..dbdbcbc 100644 --- a/mobile/lib/pages/settings_pages/saldo.dart +++ b/mobile/lib/pages/settings_pages/saldo.dart @@ -8,7 +8,7 @@ class SaldoSettingsPage extends StatelessWidget { @override Widget build(BuildContext context) { - final usersRepo = context.watch(); + final usersRepo = context.watch(); final user = usersRepo.loggedInUser()!; return Scaffold( backgroundColor: Colors.white,