repos -> controllers

This commit is contained in:
Mikkel Troels Kongsted 2025-03-12 09:02:26 +01:00
parent f1321871c9
commit afaf0b34db
22 changed files with 53 additions and 48 deletions

View File

@ -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(), () {});

View File

@ -3,7 +3,7 @@ import 'package:mobile/models/product.dart';
class ProductIdException implements Exception {}
class CartRepo extends ChangeNotifier {
class CartController extends ChangeNotifier {
final List<CartItem> cart = [];
List<CartItem> allCartItems() {

View File

@ -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();
}

View File

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
class PayingStateRepo extends ChangeNotifier {
class PayingStateController extends ChangeNotifier {
PayingState state = PayingState.unset;
void next() {

View File

@ -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<Product> 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<Product> products = [];
String query = "";
ProductRepoByServer() {
ProductControllerByServer() {
fetchProductsFromServer();
}

View File

@ -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<Receipt> receipts = [];

View File

@ -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) {

View File

@ -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<User> users = [];
User? _loggedInUser;
UsersRepo() {
UsersControllerOld() {
addTestUsers();
}

View File

@ -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',

View File

@ -99,7 +99,7 @@ class AllProductsPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final productRepo = Provider.of<ProductRepo>(context);
final productRepo = Provider.of<ProductController>(context);
return Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
@ -122,7 +122,7 @@ class AllProductsPage extends StatelessWidget {
],
),
Expanded(
child: Consumer<ProductRepo>(builder: (_, productRepo, __) {
child: Consumer<ProductController>(builder: (_, productRepo, __) {
final products = productRepo.filteredProducts;
return ListView.builder(
shrinkWrap: true,

View File

@ -43,7 +43,7 @@ class AllReceiptsPage extends StatelessWidget {
Widget build(BuildContext context) {
return Column(
children: [
Expanded(child: Consumer<ReceiptRepo>(
Expanded(child: Consumer<ReceiptController>(
builder: (_, receiptRepo, __) {
final allReceipts = receiptRepo.sortedReceiptsByDate();
return ListView.builder(

View File

@ -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<CartRepo>(
child: Consumer<CartController>(
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<ProductRepo>();
final CartRepo cartRepo =
context.read<CartRepo>();
final productRepo = context
.read<ProductController>();
final CartController cartRepo =
context
.read<CartController>();
final productResult = productRepo
.productWithBarcode(
inputController.text);
@ -261,9 +262,10 @@ class CartPage extends StatelessWidget {
if (!context.mounted) {
return;
}
final CartRepo cartRepo =
context.read<CartRepo>();
final productRepo = context.read<ProductRepo>();
final CartController cartRepo =
context.read<CartController>();
final productRepo =
context.read<ProductController>();
final productResult = productRepo
.productWithBarcode(result.rawContent);
switch (productResult) {

View File

@ -26,9 +26,9 @@ class Dashboard extends StatelessWidget {
@override
Widget build(BuildContext context) {
final pageIndexProvider = Provider.of<Routing>(context);
final pageIndexProvider = Provider.of<RoutingController>(context);
int currentIndex = pageIndexProvider.currentIndex;
final CartRepo cartRepo = context.watch<CartRepo>();
final CartController cartRepo = context.watch<CartController>();
return Scaffold(
bottomNavigationBar: BottomNavigationBar(

View File

@ -17,9 +17,10 @@ class FinishShoppingPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final CartRepo cartRepo = context.read<CartRepo>();
final ReceiptRepo receiptRepo = context.read<ReceiptRepo>();
final PayingStateRepo payingStateRepo = context.watch<PayingStateRepo>();
final CartController cartRepo = context.read<CartController>();
final ReceiptController receiptRepo = context.read<ReceiptController>();
final PayingStateController payingStateRepo =
context.watch<PayingStateController>();
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<Routing>();
final RoutingController routing =
context.read<RoutingController>();
routing.routeTo(PageSelector.homePage);
}
},

View File

@ -33,7 +33,7 @@ class HomePage extends StatelessWidget {
color: Color(0xFFFFFFFF),
),
padding: const EdgeInsets.all(10),
child: Consumer<UsersRepo>(
child: Consumer<UsersControllerOld>(
builder: (context, usersRepo, _) => Text(
"Saldo: ${formatDkkCents(user.balanceInDkkCents)}",
style: Theme.of(context).textTheme.headlineSmall)),

View File

@ -62,7 +62,7 @@ class LogInFormState extends State<LogInForm> {
),
PrimaryButton(
onPressed: () {
final usersRepo = context.read<UsersRepo>();
final usersRepo = context.read<UsersControllerOld>();
final loginResult =
usersRepo.login(mailController.text, passwordController.text);

View File

@ -21,7 +21,8 @@ class ProductLocationPage extends StatelessWidget {
Text(product.name),
],
),
Consumer<LocationImageRepo>(builder: (context, locationImage, child) {
Consumer<LocationImageController>(
builder: (context, locationImage, child) {
if (locationImage.image == null) {
return const CircularProgressIndicator(
color: Colors.blue,

View File

@ -14,8 +14,8 @@ class ProductPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final AddToCartStateRepo addToCartStateRepo =
context.watch<AddToCartStateRepo>();
final AddToCartStateController addToCartStateRepo =
context.watch<AddToCartStateController>();
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<CartRepo>();
final cartRepo = context.read<CartController>();
cartRepo.addToCart(product);
ScaffoldMessenger.of(context).showSnackBar(snackBar);
},

View File

@ -71,7 +71,7 @@ class RegisterFormState extends State<RegisterForm> {
obscure: true),
PrimaryButton(
onPressed: () {
final usersRepo = context.read<UsersRepo>();
final usersRepo = context.read<UsersControllerOld>();
if (usersRepo.addUser(nameController.text, mailController.text,
passwordController.text) is Ok) {
setState(() => registerError = false);

View File

@ -31,7 +31,7 @@ class SettingsPage extends StatelessWidget {
icon: Icons.door_back_door,
title: "Log ud",
action: (context) {
final users = context.read<UsersRepo>();
final users = context.read<UsersControllerOld>();
users.logout();
Navigator.popUntil(context, (_) => false);
Navigator.of(context)

View File

@ -8,7 +8,7 @@ class SaldoSettingsPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final usersRepo = context.watch<UsersRepo>();
final usersRepo = context.watch<UsersControllerOld>();
final user = usersRepo.loggedInUser()!;
return Scaffold(
backgroundColor: Colors.white,