mirror of
https://github.com/Mercantec-GHC/h4-projekt-gruppe-0-sm.git
synced 2025-04-28 00:34:06 +02:00
repos -> controllers
This commit is contained in:
parent
f1321871c9
commit
afaf0b34db
@ -2,7 +2,7 @@ import 'dart:async';
|
|||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class AddToCartStateRepo extends ChangeNotifier {
|
class AddToCartStateController extends ChangeNotifier {
|
||||||
int currentAmount = 0;
|
int currentAmount = 0;
|
||||||
Timer resetTimer = Timer(const Duration(), () {});
|
Timer resetTimer = Timer(const Duration(), () {});
|
||||||
|
|
@ -3,7 +3,7 @@ import 'package:mobile/models/product.dart';
|
|||||||
|
|
||||||
class ProductIdException implements Exception {}
|
class ProductIdException implements Exception {}
|
||||||
|
|
||||||
class CartRepo extends ChangeNotifier {
|
class CartController extends ChangeNotifier {
|
||||||
final List<CartItem> cart = [];
|
final List<CartItem> cart = [];
|
||||||
|
|
||||||
List<CartItem> allCartItems() {
|
List<CartItem> allCartItems() {
|
@ -3,10 +3,10 @@ import 'dart:ui' as ui;
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
|
|
||||||
class LocationImageRepo extends ChangeNotifier {
|
class LocationImageController extends ChangeNotifier {
|
||||||
ui.Image? image;
|
ui.Image? image;
|
||||||
|
|
||||||
LocationImageRepo() {
|
LocationImageController() {
|
||||||
load();
|
load();
|
||||||
}
|
}
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class PayingStateRepo extends ChangeNotifier {
|
class PayingStateController extends ChangeNotifier {
|
||||||
PayingState state = PayingState.unset;
|
PayingState state = PayingState.unset;
|
||||||
|
|
||||||
void next() {
|
void next() {
|
@ -5,11 +5,11 @@ import 'package:mobile/results.dart';
|
|||||||
import 'package:mobile/server/client.dart';
|
import 'package:mobile/server/client.dart';
|
||||||
import 'package:mobile/server/server.dart';
|
import 'package:mobile/server/server.dart';
|
||||||
|
|
||||||
class ProductRepo extends ChangeNotifier {
|
class ProductController extends ChangeNotifier {
|
||||||
int _nextId = 0;
|
int _nextId = 0;
|
||||||
List<Product> products = [];
|
List<Product> products = [];
|
||||||
String query = "";
|
String query = "";
|
||||||
ProductRepo() {
|
ProductController() {
|
||||||
_addAllProducts();
|
_addAllProducts();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -139,11 +139,11 @@ class ProductRepo extends ChangeNotifier {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class ProductRepoByServer extends ChangeNotifier {
|
class ProductControllerByServer extends ChangeNotifier {
|
||||||
final client = BackendServer();
|
final client = BackendServer();
|
||||||
List<Product> products = [];
|
List<Product> products = [];
|
||||||
String query = "";
|
String query = "";
|
||||||
ProductRepoByServer() {
|
ProductControllerByServer() {
|
||||||
fetchProductsFromServer();
|
fetchProductsFromServer();
|
||||||
}
|
}
|
||||||
|
|
@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:mobile/models/product.dart';
|
import 'package:mobile/models/product.dart';
|
||||||
import 'package:mobile/repos/cart.dart';
|
import 'package:mobile/repos/cart.dart';
|
||||||
|
|
||||||
class ReceiptRepo extends ChangeNotifier {
|
class ReceiptController extends ChangeNotifier {
|
||||||
int nextId = 0;
|
int nextId = 0;
|
||||||
final List<Receipt> receipts = [];
|
final List<Receipt> receipts = [];
|
||||||
|
|
@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
|||||||
|
|
||||||
enum PageSelector { homePage, productsPage, cartPage, receiptsPage }
|
enum PageSelector { homePage, productsPage, cartPage, receiptsPage }
|
||||||
|
|
||||||
class Routing extends ChangeNotifier {
|
class RoutingController extends ChangeNotifier {
|
||||||
int currentIndex = 0;
|
int currentIndex = 0;
|
||||||
|
|
||||||
void routeTo(PageSelector page) {
|
void routeTo(PageSelector page) {
|
@ -1,13 +1,13 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:mobile/results.dart';
|
import 'package:mobile/results.dart';
|
||||||
|
|
||||||
class UsersRepo extends ChangeNotifier {
|
class UsersControllerOld extends ChangeNotifier {
|
||||||
int nextId = 0;
|
int nextId = 0;
|
||||||
final List<User> users = [];
|
final List<User> users = [];
|
||||||
|
|
||||||
User? _loggedInUser;
|
User? _loggedInUser;
|
||||||
|
|
||||||
UsersRepo() {
|
UsersControllerOld() {
|
||||||
addTestUsers();
|
addTestUsers();
|
||||||
}
|
}
|
||||||
|
|
@ -23,14 +23,14 @@ class MyApp extends StatelessWidget {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MultiProvider(
|
return MultiProvider(
|
||||||
providers: [
|
providers: [
|
||||||
ChangeNotifierProvider(create: (_) => Routing()),
|
ChangeNotifierProvider(create: (_) => RoutingController()),
|
||||||
ChangeNotifierProvider(create: (_) => ProductRepo()),
|
ChangeNotifierProvider(create: (_) => ProductController()),
|
||||||
ChangeNotifierProvider(create: (_) => CartRepo()),
|
ChangeNotifierProvider(create: (_) => CartController()),
|
||||||
ChangeNotifierProvider(create: (_) => ReceiptRepo()),
|
ChangeNotifierProvider(create: (_) => ReceiptController()),
|
||||||
ChangeNotifierProvider(create: (_) => PayingStateRepo()),
|
ChangeNotifierProvider(create: (_) => PayingStateController()),
|
||||||
ChangeNotifierProvider(create: (_) => AddToCartStateRepo()),
|
ChangeNotifierProvider(create: (_) => AddToCartStateController()),
|
||||||
ChangeNotifierProvider(create: (_) => LocationImageRepo()),
|
ChangeNotifierProvider(create: (_) => LocationImageController()),
|
||||||
ChangeNotifierProvider(create: (_) => UsersRepo()),
|
ChangeNotifierProvider(create: (_) => UsersControllerOld()),
|
||||||
],
|
],
|
||||||
child: MaterialApp(
|
child: MaterialApp(
|
||||||
title: 'Fresh Plaza',
|
title: 'Fresh Plaza',
|
||||||
|
@ -99,7 +99,7 @@ class AllProductsPage extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final productRepo = Provider.of<ProductRepo>(context);
|
final productRepo = Provider.of<ProductController>(context);
|
||||||
return Row(
|
return Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
@ -122,7 +122,7 @@ class AllProductsPage extends StatelessWidget {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Consumer<ProductRepo>(builder: (_, productRepo, __) {
|
child: Consumer<ProductController>(builder: (_, productRepo, __) {
|
||||||
final products = productRepo.filteredProducts;
|
final products = productRepo.filteredProducts;
|
||||||
return ListView.builder(
|
return ListView.builder(
|
||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
|
@ -43,7 +43,7 @@ class AllReceiptsPage extends StatelessWidget {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
Expanded(child: Consumer<ReceiptRepo>(
|
Expanded(child: Consumer<ReceiptController>(
|
||||||
builder: (_, receiptRepo, __) {
|
builder: (_, receiptRepo, __) {
|
||||||
final allReceipts = receiptRepo.sortedReceiptsByDate();
|
final allReceipts = receiptRepo.sortedReceiptsByDate();
|
||||||
return ListView.builder(
|
return ListView.builder(
|
||||||
|
@ -14,7 +14,7 @@ import 'package:mobile/widgets/sized_card.dart';
|
|||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
class CartItemView extends StatelessWidget {
|
class CartItemView extends StatelessWidget {
|
||||||
final CartRepo cartRepo;
|
final CartController cartRepo;
|
||||||
final int productId;
|
final int productId;
|
||||||
final String name;
|
final String name;
|
||||||
final int price;
|
final int price;
|
||||||
@ -152,7 +152,7 @@ class CartPage extends StatelessWidget {
|
|||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Consumer<CartRepo>(
|
child: Consumer<CartController>(
|
||||||
builder: (_, cartRepo, __) {
|
builder: (_, cartRepo, __) {
|
||||||
final cart = cartRepo.allCartItems();
|
final cart = cartRepo.allCartItems();
|
||||||
return ListView.builder(
|
return ListView.builder(
|
||||||
@ -202,10 +202,11 @@ class CartPage extends StatelessWidget {
|
|||||||
child: const Text("Cancel")),
|
child: const Text("Cancel")),
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
final productRepo =
|
final productRepo = context
|
||||||
context.read<ProductRepo>();
|
.read<ProductController>();
|
||||||
final CartRepo cartRepo =
|
final CartController cartRepo =
|
||||||
context.read<CartRepo>();
|
context
|
||||||
|
.read<CartController>();
|
||||||
final productResult = productRepo
|
final productResult = productRepo
|
||||||
.productWithBarcode(
|
.productWithBarcode(
|
||||||
inputController.text);
|
inputController.text);
|
||||||
@ -261,9 +262,10 @@ class CartPage extends StatelessWidget {
|
|||||||
if (!context.mounted) {
|
if (!context.mounted) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final CartRepo cartRepo =
|
final CartController cartRepo =
|
||||||
context.read<CartRepo>();
|
context.read<CartController>();
|
||||||
final productRepo = context.read<ProductRepo>();
|
final productRepo =
|
||||||
|
context.read<ProductController>();
|
||||||
final productResult = productRepo
|
final productResult = productRepo
|
||||||
.productWithBarcode(result.rawContent);
|
.productWithBarcode(result.rawContent);
|
||||||
switch (productResult) {
|
switch (productResult) {
|
||||||
|
@ -26,9 +26,9 @@ class Dashboard extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final pageIndexProvider = Provider.of<Routing>(context);
|
final pageIndexProvider = Provider.of<RoutingController>(context);
|
||||||
int currentIndex = pageIndexProvider.currentIndex;
|
int currentIndex = pageIndexProvider.currentIndex;
|
||||||
final CartRepo cartRepo = context.watch<CartRepo>();
|
final CartController cartRepo = context.watch<CartController>();
|
||||||
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
bottomNavigationBar: BottomNavigationBar(
|
bottomNavigationBar: BottomNavigationBar(
|
||||||
|
@ -17,9 +17,10 @@ class FinishShoppingPage extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final CartRepo cartRepo = context.read<CartRepo>();
|
final CartController cartRepo = context.read<CartController>();
|
||||||
final ReceiptRepo receiptRepo = context.read<ReceiptRepo>();
|
final ReceiptController receiptRepo = context.read<ReceiptController>();
|
||||||
final PayingStateRepo payingStateRepo = context.watch<PayingStateRepo>();
|
final PayingStateController payingStateRepo =
|
||||||
|
context.watch<PayingStateController>();
|
||||||
final cart = cartRepo.allCartItems();
|
final cart = cartRepo.allCartItems();
|
||||||
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
@ -87,7 +88,8 @@ class FinishShoppingPage extends StatelessWidget {
|
|||||||
payingStateRepo.reset();
|
payingStateRepo.reset();
|
||||||
if (context.mounted) {
|
if (context.mounted) {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
final Routing routing = context.read<Routing>();
|
final RoutingController routing =
|
||||||
|
context.read<RoutingController>();
|
||||||
routing.routeTo(PageSelector.homePage);
|
routing.routeTo(PageSelector.homePage);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -33,7 +33,7 @@ class HomePage extends StatelessWidget {
|
|||||||
color: Color(0xFFFFFFFF),
|
color: Color(0xFFFFFFFF),
|
||||||
),
|
),
|
||||||
padding: const EdgeInsets.all(10),
|
padding: const EdgeInsets.all(10),
|
||||||
child: Consumer<UsersRepo>(
|
child: Consumer<UsersControllerOld>(
|
||||||
builder: (context, usersRepo, _) => Text(
|
builder: (context, usersRepo, _) => Text(
|
||||||
"Saldo: ${formatDkkCents(user.balanceInDkkCents)}",
|
"Saldo: ${formatDkkCents(user.balanceInDkkCents)}",
|
||||||
style: Theme.of(context).textTheme.headlineSmall)),
|
style: Theme.of(context).textTheme.headlineSmall)),
|
||||||
|
@ -62,7 +62,7 @@ class LogInFormState extends State<LogInForm> {
|
|||||||
),
|
),
|
||||||
PrimaryButton(
|
PrimaryButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
final usersRepo = context.read<UsersRepo>();
|
final usersRepo = context.read<UsersControllerOld>();
|
||||||
final loginResult =
|
final loginResult =
|
||||||
usersRepo.login(mailController.text, passwordController.text);
|
usersRepo.login(mailController.text, passwordController.text);
|
||||||
|
|
||||||
|
@ -21,7 +21,8 @@ class ProductLocationPage extends StatelessWidget {
|
|||||||
Text(product.name),
|
Text(product.name),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
Consumer<LocationImageRepo>(builder: (context, locationImage, child) {
|
Consumer<LocationImageController>(
|
||||||
|
builder: (context, locationImage, child) {
|
||||||
if (locationImage.image == null) {
|
if (locationImage.image == null) {
|
||||||
return const CircularProgressIndicator(
|
return const CircularProgressIndicator(
|
||||||
color: Colors.blue,
|
color: Colors.blue,
|
||||||
|
@ -14,8 +14,8 @@ class ProductPage extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final AddToCartStateRepo addToCartStateRepo =
|
final AddToCartStateController addToCartStateRepo =
|
||||||
context.watch<AddToCartStateRepo>();
|
context.watch<AddToCartStateController>();
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: Colors.white,
|
backgroundColor: Colors.white,
|
||||||
body: SafeArea(
|
body: SafeArea(
|
||||||
@ -90,7 +90,7 @@ class ProductPage extends StatelessWidget {
|
|||||||
duration: const Duration(seconds: 2),
|
duration: const Duration(seconds: 2),
|
||||||
);
|
);
|
||||||
ScaffoldMessenger.of(context).removeCurrentSnackBar();
|
ScaffoldMessenger.of(context).removeCurrentSnackBar();
|
||||||
final cartRepo = context.read<CartRepo>();
|
final cartRepo = context.read<CartController>();
|
||||||
cartRepo.addToCart(product);
|
cartRepo.addToCart(product);
|
||||||
ScaffoldMessenger.of(context).showSnackBar(snackBar);
|
ScaffoldMessenger.of(context).showSnackBar(snackBar);
|
||||||
},
|
},
|
||||||
|
@ -71,7 +71,7 @@ class RegisterFormState extends State<RegisterForm> {
|
|||||||
obscure: true),
|
obscure: true),
|
||||||
PrimaryButton(
|
PrimaryButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
final usersRepo = context.read<UsersRepo>();
|
final usersRepo = context.read<UsersControllerOld>();
|
||||||
if (usersRepo.addUser(nameController.text, mailController.text,
|
if (usersRepo.addUser(nameController.text, mailController.text,
|
||||||
passwordController.text) is Ok) {
|
passwordController.text) is Ok) {
|
||||||
setState(() => registerError = false);
|
setState(() => registerError = false);
|
||||||
|
@ -31,7 +31,7 @@ class SettingsPage extends StatelessWidget {
|
|||||||
icon: Icons.door_back_door,
|
icon: Icons.door_back_door,
|
||||||
title: "Log ud",
|
title: "Log ud",
|
||||||
action: (context) {
|
action: (context) {
|
||||||
final users = context.read<UsersRepo>();
|
final users = context.read<UsersControllerOld>();
|
||||||
users.logout();
|
users.logout();
|
||||||
Navigator.popUntil(context, (_) => false);
|
Navigator.popUntil(context, (_) => false);
|
||||||
Navigator.of(context)
|
Navigator.of(context)
|
||||||
|
@ -8,7 +8,7 @@ class SaldoSettingsPage extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final usersRepo = context.watch<UsersRepo>();
|
final usersRepo = context.watch<UsersControllerOld>();
|
||||||
final user = usersRepo.loggedInUser()!;
|
final user = usersRepo.loggedInUser()!;
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: Colors.white,
|
backgroundColor: Colors.white,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user