diff --git a/mobile/lib/main.dart b/mobile/lib/main.dart index aad012a..2afe285 100644 --- a/mobile/lib/main.dart +++ b/mobile/lib/main.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:mobile/pages/log_in_page.dart'; import 'package:mobile/repos/add_to_cart_state.dart'; import 'package:mobile/repos/cart.dart'; import 'package:mobile/repos/location_image.dart'; @@ -7,7 +8,6 @@ import 'package:mobile/repos/product.dart'; import 'package:mobile/repos/receipt.dart'; import 'package:mobile/repos/user.dart'; import 'package:provider/provider.dart'; -import 'pages/landing_page.dart'; import 'package:mobile/repos/bottom_navigation_bar.dart'; void main() { @@ -43,7 +43,7 @@ class MyApp extends StatelessWidget { ), useMaterial3: true, ), - home: const LandingPage(), + home: const LogInPage(), ), ); } diff --git a/mobile/lib/pages/all_products_page.dart b/mobile/lib/pages/all_products_page.dart index c14e969..0e0d5ca 100644 --- a/mobile/lib/pages/all_products_page.dart +++ b/mobile/lib/pages/all_products_page.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:mobile/repos/product.dart'; -import 'package:mobile/widgets/primary_card.dart'; +import 'package:mobile/widgets/sized_card.dart'; import 'package:provider/provider.dart'; import 'product_page.dart'; @@ -18,7 +18,7 @@ class ProductListItem extends StatelessWidget { @override Widget build(BuildContext context) { - return PrimaryCard( + return SizedCard( child: InkWell( borderRadius: const BorderRadius.all(Radius.circular(10)), onTap: () { diff --git a/mobile/lib/pages/cart_page.dart b/mobile/lib/pages/cart_page.dart index 5ea9234..1773877 100644 --- a/mobile/lib/pages/cart_page.dart +++ b/mobile/lib/pages/cart_page.dart @@ -7,7 +7,7 @@ import 'package:mobile/repos/cart.dart'; import 'package:mobile/repos/product.dart'; import 'package:mobile/results.dart'; import 'package:mobile/widgets/primary_button.dart'; -import 'package:mobile/widgets/primary_card.dart'; +import 'package:mobile/widgets/sized_card.dart'; import 'package:provider/provider.dart'; class CartItemView extends StatelessWidget { @@ -29,7 +29,7 @@ class CartItemView extends StatelessWidget { @override Widget build(BuildContext context) { - return PrimaryCard( + return SizedCard( child: Row( children: [ Expanded( diff --git a/mobile/lib/pages/landing_page.dart b/mobile/lib/pages/landing_page.dart deleted file mode 100644 index 1b25f05..0000000 --- a/mobile/lib/pages/landing_page.dart +++ /dev/null @@ -1,35 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:mobile/widgets/primary_button.dart'; -import 'log_in_page.dart'; -import 'register_page.dart'; - -class LandingPage extends StatelessWidget { - const LandingPage({super.key}); - - @override - Widget build(BuildContext context) { - return Scaffold( - body: Row(mainAxisAlignment: MainAxisAlignment.center, children: [ - Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text("Fresh Plaza", - style: Theme.of(context).textTheme.headlineLarge), - PrimaryButton( - onPressed: () => { - Navigator.of(context).push(MaterialPageRoute( - builder: (context) => const LogInPage())) - }, - child: const Text("Log ind")), - PrimaryButton( - onPressed: () => { - Navigator.of(context).push(MaterialPageRoute( - builder: (context) => const RegisterPage())) - }, - child: const Text("Opret bruger")) - ], - ) - ]), - ); - } -} diff --git a/mobile/lib/pages/log_in_page.dart b/mobile/lib/pages/log_in_page.dart index 39aadc5..a06d6f5 100644 --- a/mobile/lib/pages/log_in_page.dart +++ b/mobile/lib/pages/log_in_page.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:mobile/pages/register_page.dart'; import 'package:mobile/repos/user.dart'; import 'package:mobile/results.dart'; import 'package:mobile/widgets/error_box.dart'; @@ -34,6 +35,7 @@ class LogInFormState extends State { final passwordController = TextEditingController(); return Column( + spacing: 10, mainAxisAlignment: MainAxisAlignment.center, children: [ Text( @@ -48,7 +50,7 @@ class LogInFormState extends State { }, ), PrimaryInput( - label: "Mail/Tlf", + label: "Mail", placeholderText: "f.eks. example@example.com", controller: mailController, ), @@ -63,17 +65,40 @@ class LogInFormState extends State { final usersRepo = context.read(); final loginResult = usersRepo.login(mailController.text, passwordController.text); + if (loginResult is Ok) { + setState(() => loginError = false); Navigator.of(context).push(MaterialPageRoute( builder: (context) => Dashboard(user: (loginResult as Ok).value))); } else { - setState(() { - loginError = true; - }); + setState(() => loginError = true); } }, - child: const Text("Log ind")) + child: const Text("Log ind")), + TextButton( + onPressed: () { + Navigator.of(context).push( + MaterialPageRoute(builder: (context) => const RegisterPage())); + }, + child: RichText( + text: const TextSpan(children: [ + TextSpan( + text: 'Har du ikke en konto? Klik ', + style: TextStyle(color: Colors.black), + ), + TextSpan( + text: 'her', + style: TextStyle( + color: Color.fromARGB(255, 0, 94, 255), + decoration: TextDecoration.underline), + ), + TextSpan( + text: ' for at oprette en konto', + style: TextStyle(color: Colors.black), + ), + ])), + ) ], ); } diff --git a/mobile/lib/pages/register_page.dart b/mobile/lib/pages/register_page.dart index 1aff85a..821244e 100644 --- a/mobile/lib/pages/register_page.dart +++ b/mobile/lib/pages/register_page.dart @@ -5,7 +5,6 @@ import 'package:mobile/widgets/error_box.dart'; import 'package:mobile/widgets/primary_button.dart'; import 'package:mobile/widgets/primary_input.dart'; import 'package:provider/provider.dart'; -import 'log_in_page.dart'; class RegisterPage extends StatelessWidget { const RegisterPage({super.key}); @@ -35,6 +34,7 @@ class RegisterFormState extends State { final mailController = TextEditingController(); final passwordController = TextEditingController(); return Column( + spacing: 10, mainAxisAlignment: MainAxisAlignment.center, children: [ Text( @@ -55,7 +55,7 @@ class RegisterFormState extends State { controller: nameController, ), PrimaryInput( - label: "Mail/Tlf", + label: "Mail", placeholderText: "f.eks. example@example.com", controller: mailController, ), @@ -74,15 +74,35 @@ class RegisterFormState extends State { final usersRepo = context.read(); if (usersRepo.addUser(nameController.text, mailController.text, passwordController.text) is Ok) { - Navigator.of(context).push( - MaterialPageRoute(builder: (context) => const LogInPage())); + setState(() => registerError = false); + Navigator.of(context).pop(); } else { - setState(() { - registerError = true; - }); + setState(() => registerError = true); } }, - child: const Text("Opret bruger")) + child: const Text("Opret bruger")), + TextButton( + onPressed: () { + Navigator.of(context).pop(); + }, + child: RichText( + text: const TextSpan(children: [ + TextSpan( + text: 'Har du allerede en konto? Klik ', + style: TextStyle(color: Colors.black), + ), + TextSpan( + text: 'her', + style: TextStyle( + color: Color.fromARGB(255, 0, 94, 255), + decoration: TextDecoration.underline), + ), + TextSpan( + text: ' for at logge ind', + style: TextStyle(color: Colors.black), + ), + ])), + ) ], ); } diff --git a/mobile/lib/widgets/primary_card.dart b/mobile/lib/widgets/sized_card.dart similarity index 80% rename from mobile/lib/widgets/primary_card.dart rename to mobile/lib/widgets/sized_card.dart index 43a3eb8..003692c 100644 --- a/mobile/lib/widgets/primary_card.dart +++ b/mobile/lib/widgets/sized_card.dart @@ -1,9 +1,9 @@ import 'package:flutter/material.dart'; -class PrimaryCard extends StatelessWidget { +class SizedCard extends StatelessWidget { final Widget child; - const PrimaryCard({ + const SizedCard({ super.key, required this.child, });