From ac926e5b985b4334ecdc5c13060c4fbc24f1b37b Mon Sep 17 00:00:00 2001 From: Mikkel Troels Kongsted Date: Wed, 29 Jan 2025 09:01:47 +0100 Subject: [PATCH] refactor --- mobile/lib/main.dart | 8 +++---- mobile/lib/{ => pages}/all_products_page.dart | 2 +- mobile/lib/{ => pages}/cart_page.dart | 2 +- mobile/lib/{ => pages}/dashboard.dart | 18 +++++----------- mobile/lib/{ => pages}/landing_page.dart | 2 +- mobile/lib/{ => pages}/log_in_page.dart | 3 ++- mobile/lib/{ => pages}/product_page.dart | 4 ++-- mobile/lib/{ => pages}/receipts_page.dart | 2 +- mobile/lib/{ => pages}/register_page.dart | 3 ++- mobile/lib/repos/bottom_navigation_bar.dart | 10 +++++++++ mobile/lib/{ => repos}/product.dart | 0 mobile/lib/widgets/primary_button.dart | 21 +++++++++++++++++++ .../primary_input.dart} | 20 ------------------ 13 files changed, 50 insertions(+), 45 deletions(-) rename mobile/lib/{ => pages}/all_products_page.dart (98%) rename mobile/lib/{ => pages}/cart_page.dart (85%) rename mobile/lib/{ => pages}/dashboard.dart (82%) rename mobile/lib/{ => pages}/landing_page.dart (95%) rename mobile/lib/{ => pages}/log_in_page.dart (90%) rename mobile/lib/{ => pages}/product_page.dart (96%) rename mobile/lib/{ => pages}/receipts_page.dart (86%) rename mobile/lib/{ => pages}/register_page.dart (92%) create mode 100644 mobile/lib/repos/bottom_navigation_bar.dart rename mobile/lib/{ => repos}/product.dart (100%) create mode 100644 mobile/lib/widgets/primary_button.dart rename mobile/lib/{global_components.dart => widgets/primary_input.dart} (62%) diff --git a/mobile/lib/main.dart b/mobile/lib/main.dart index b6d35f2..33ca49f 100644 --- a/mobile/lib/main.dart +++ b/mobile/lib/main.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; -import 'package:mobile/dashboard.dart'; -import 'package:mobile/product.dart'; +import 'package:mobile/repos/product.dart'; import 'package:provider/provider.dart'; -import 'landing_page.dart'; +import 'pages/landing_page.dart'; +import 'package:mobile/repos/bottom_navigation_bar.dart'; void main() { runApp(const MyApp()); @@ -16,7 +16,7 @@ class MyApp extends StatelessWidget { return MultiProvider( providers: [ ChangeNotifierProvider(create: (_) => ProductRepo()), - ChangeNotifierProvider(create: (_) => BottomNavigationBarProvider()) + ChangeNotifierProvider(create: (_) => BottomNavigationBarRepo()) ], child: MaterialApp( title: 'Fresh Plaza', diff --git a/mobile/lib/all_products_page.dart b/mobile/lib/pages/all_products_page.dart similarity index 98% rename from mobile/lib/all_products_page.dart rename to mobile/lib/pages/all_products_page.dart index bbbcee1..07d57ff 100644 --- a/mobile/lib/all_products_page.dart +++ b/mobile/lib/pages/all_products_page.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:mobile/product.dart'; +import 'package:mobile/repos/product.dart'; import 'package:provider/provider.dart'; import 'product_page.dart'; diff --git a/mobile/lib/cart_page.dart b/mobile/lib/pages/cart_page.dart similarity index 85% rename from mobile/lib/cart_page.dart rename to mobile/lib/pages/cart_page.dart index 3efd557..1f86c8a 100644 --- a/mobile/lib/cart_page.dart +++ b/mobile/lib/pages/cart_page.dart @@ -5,6 +5,6 @@ class CartPage extends StatelessWidget { @override Widget build(BuildContext context) { - return const Scaffold(); + return Row(); } } diff --git a/mobile/lib/dashboard.dart b/mobile/lib/pages/dashboard.dart similarity index 82% rename from mobile/lib/dashboard.dart rename to mobile/lib/pages/dashboard.dart index 52aa2b3..fa36dbe 100644 --- a/mobile/lib/dashboard.dart +++ b/mobile/lib/pages/dashboard.dart @@ -1,18 +1,10 @@ import 'package:flutter/material.dart'; -import 'package:mobile/all_products_page.dart'; -import 'package:mobile/cart_page.dart'; -import 'package:mobile/receipts_page.dart'; +import 'package:mobile/pages/all_products_page.dart'; +import 'package:mobile/pages/cart_page.dart'; +import 'package:mobile/pages/receipts_page.dart'; +import 'package:mobile/repos/bottom_navigation_bar.dart'; import 'package:provider/provider.dart'; -class BottomNavigationBarProvider extends ChangeNotifier { - int currentIndex = 0; - - void setIndex(int index) { - currentIndex = index; - notifyListeners(); - } -} - class Dashboard extends StatelessWidget { final List pages = [ const AllProductsPage(), @@ -24,7 +16,7 @@ class Dashboard extends StatelessWidget { @override Widget build(BuildContext context) { - final pageIndexProvider = Provider.of(context); + final pageIndexProvider = Provider.of(context); int currentIndex = pageIndexProvider.currentIndex; return Scaffold( diff --git a/mobile/lib/landing_page.dart b/mobile/lib/pages/landing_page.dart similarity index 95% rename from mobile/lib/landing_page.dart rename to mobile/lib/pages/landing_page.dart index b841d4f..c1b4946 100644 --- a/mobile/lib/landing_page.dart +++ b/mobile/lib/pages/landing_page.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; +import 'package:mobile/widgets/primary_button.dart'; import 'log_in_page.dart'; import 'register_page.dart'; -import 'global_components.dart'; class LandingPage extends StatelessWidget { const LandingPage({super.key}); diff --git a/mobile/lib/log_in_page.dart b/mobile/lib/pages/log_in_page.dart similarity index 90% rename from mobile/lib/log_in_page.dart rename to mobile/lib/pages/log_in_page.dart index fb174e2..9e2f70b 100644 --- a/mobile/lib/log_in_page.dart +++ b/mobile/lib/pages/log_in_page.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; +import 'package:mobile/widgets/primary_button.dart'; +import 'package:mobile/widgets/primary_input.dart'; import 'dashboard.dart'; -import 'global_components.dart'; class LogInPage extends StatelessWidget { const LogInPage({super.key}); diff --git a/mobile/lib/product_page.dart b/mobile/lib/pages/product_page.dart similarity index 96% rename from mobile/lib/product_page.dart rename to mobile/lib/pages/product_page.dart index ddf2997..faf0691 100644 --- a/mobile/lib/product_page.dart +++ b/mobile/lib/pages/product_page.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -import 'package:mobile/global_components.dart'; -import 'package:mobile/product.dart'; +import 'package:mobile/repos/product.dart'; +import 'package:mobile/widgets/primary_button.dart'; class ProductPage extends StatelessWidget { final Product product; diff --git a/mobile/lib/receipts_page.dart b/mobile/lib/pages/receipts_page.dart similarity index 86% rename from mobile/lib/receipts_page.dart rename to mobile/lib/pages/receipts_page.dart index a4a6f66..a126369 100644 --- a/mobile/lib/receipts_page.dart +++ b/mobile/lib/pages/receipts_page.dart @@ -5,6 +5,6 @@ class ReceiptsPage extends StatelessWidget { @override Widget build(BuildContext context) { - return const Scaffold(); + return const Row(); } } diff --git a/mobile/lib/register_page.dart b/mobile/lib/pages/register_page.dart similarity index 92% rename from mobile/lib/register_page.dart rename to mobile/lib/pages/register_page.dart index c06e2a4..d7badef 100644 --- a/mobile/lib/register_page.dart +++ b/mobile/lib/pages/register_page.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; -import 'global_components.dart'; +import 'package:mobile/widgets/primary_button.dart'; +import 'package:mobile/widgets/primary_input.dart'; import 'log_in_page.dart'; class RegisterPage extends StatelessWidget { diff --git a/mobile/lib/repos/bottom_navigation_bar.dart b/mobile/lib/repos/bottom_navigation_bar.dart new file mode 100644 index 0000000..25d9e22 --- /dev/null +++ b/mobile/lib/repos/bottom_navigation_bar.dart @@ -0,0 +1,10 @@ +import 'package:flutter/material.dart'; + +class BottomNavigationBarRepo extends ChangeNotifier { + int currentIndex = 0; + + void setIndex(int index) { + currentIndex = index; + notifyListeners(); + } +} diff --git a/mobile/lib/product.dart b/mobile/lib/repos/product.dart similarity index 100% rename from mobile/lib/product.dart rename to mobile/lib/repos/product.dart diff --git a/mobile/lib/widgets/primary_button.dart b/mobile/lib/widgets/primary_button.dart new file mode 100644 index 0000000..8a344ac --- /dev/null +++ b/mobile/lib/widgets/primary_button.dart @@ -0,0 +1,21 @@ +import 'package:flutter/material.dart'; + +class PrimaryButton extends StatelessWidget { + final void Function()? onPressed; + final Widget child; + + const PrimaryButton({ + super.key, + required this.onPressed, + required this.child, + }); + + @override + Widget build(BuildContext context) { + return TextButton( + onPressed: onPressed, + style: TextButton.styleFrom( + backgroundColor: Colors.blue, foregroundColor: Colors.white), + child: child); + } +} diff --git a/mobile/lib/global_components.dart b/mobile/lib/widgets/primary_input.dart similarity index 62% rename from mobile/lib/global_components.dart rename to mobile/lib/widgets/primary_input.dart index 2652f76..a559c06 100644 --- a/mobile/lib/global_components.dart +++ b/mobile/lib/widgets/primary_input.dart @@ -1,25 +1,5 @@ import 'package:flutter/material.dart'; -class PrimaryButton extends StatelessWidget { - final void Function()? onPressed; - final Widget child; - - const PrimaryButton({ - super.key, - required this.onPressed, - required this.child, - }); - - @override - Widget build(BuildContext context) { - return TextButton( - onPressed: onPressed, - style: TextButton.styleFrom( - backgroundColor: Colors.blue, foregroundColor: Colors.white), - child: child); - } -} - class PrimaryInput extends StatelessWidget { final double width; final double height;