From ee6e881fbff6251d6cb7839c363d8a246fc98af8 Mon Sep 17 00:00:00 2001 From: Nilo Roberto C Paim Date: Wed, 30 Aug 2023 18:34:36 -0300 Subject: [PATCH] created initial admin, reseller and user pages --- lib/pages/admin_page.dart | 20 ++++++++++++++ lib/pages/login_page.dart | 53 ++++++++++++++++++++++-------------- lib/pages/reseller_page.dart | 20 ++++++++++++++ lib/routes.dart | 12 ++++++++ pubspec.lock | 16 +++++------ pubspec.yaml | 4 +-- 6 files changed, 95 insertions(+), 30 deletions(-) create mode 100644 lib/pages/admin_page.dart create mode 100644 lib/pages/reseller_page.dart diff --git a/lib/pages/admin_page.dart b/lib/pages/admin_page.dart new file mode 100644 index 0000000..b47ab6f --- /dev/null +++ b/lib/pages/admin_page.dart @@ -0,0 +1,20 @@ +import 'package:flutter/material.dart'; +import 'package:pcastlivetv/components/nc_base_page.dart'; + +class AdminPage extends StatelessWidget { + const AdminPage({super.key}); + + @override + Widget build(BuildContext context) { + return const NcBasePage( + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text("Admin Page"), + ], + ), + ), + ); + } +} diff --git a/lib/pages/login_page.dart b/lib/pages/login_page.dart index 0f14ddc..cb46abc 100644 --- a/lib/pages/login_page.dart +++ b/lib/pages/login_page.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; +import 'package:motion_toast/motion_toast.dart'; +import 'package:motion_toast/resources/arrays.dart'; import 'package:pcastlivetv/components/nc_form_field.dart'; import 'package:pcastlivetv/routes.dart'; import 'package:pcastlivetv/stores/login_store.dart'; @@ -93,18 +94,20 @@ class _LoginPageState extends State { onPressed: () async { var result = await processAuth(formKey, store, email, password); if (result) { - router.go('/user'); + switch (store.userType) { + case 'A': + router.go('/admin'); + break; + case 'R': + router.go('/reseller'); + break; + case 'U': + router.go('/user'); + break; + default: + } } else { - Fluttertoast.showToast( - msg: store.message!, - toastLength: Toast.LENGTH_LONG, - webBgColor: "linear-gradient(to right, #ff0000, #ff0000)", - webPosition: "center", - gravity: ToastGravity.BOTTOM, - timeInSecForIosWeb: 1, - backgroundColor: Colors.red, - textColor: Colors.white, - fontSize: 32); + _displayErrorMotionToast(store.message!); } }, child: const Padding( @@ -126,6 +129,23 @@ class _LoginPageState extends State { ); } + void _displayErrorMotionToast(String message) { + MotionToast.error( + title: const Text( + "ERRO", + style: TextStyle( + fontWeight: FontWeight.bold, + ), + ), + description: Text(message), + position: MotionToastPosition.top, + barrierColor: Colors.black.withOpacity(0.3), + width: 300, + height: 80, + dismissable: false, + ).show(context); + } + Future processAuth(GlobalKey formKey, LoginStore store, String email, String password) async { Function? close; if (formKey.currentState!.validate()) { @@ -151,14 +171,7 @@ class _LoginPageState extends State { } } catch (e) { close!(); - Fluttertoast.showToast( - msg: e.toString().replaceAll("Exception: ", ""), - toastLength: Toast.LENGTH_SHORT, - gravity: ToastGravity.BOTTOM, - timeInSecForIosWeb: 1, - backgroundColor: Colors.red, - textColor: Colors.white, - fontSize: 16.0); + _displayErrorMotionToast(e.toString().replaceAll("Exception: ", "")); } // SnackBarService.showSnackBar(content: e.toString().replaceAll("Exception: ", ""), error: true); return false; diff --git a/lib/pages/reseller_page.dart b/lib/pages/reseller_page.dart new file mode 100644 index 0000000..84f233d --- /dev/null +++ b/lib/pages/reseller_page.dart @@ -0,0 +1,20 @@ +import 'package:flutter/material.dart'; +import 'package:pcastlivetv/components/nc_base_page.dart'; + +class ResellerPage extends StatelessWidget { + const ResellerPage({super.key}); + + @override + Widget build(BuildContext context) { + return const NcBasePage( + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text("Reseller Page"), + ], + ), + ), + ); + } +} diff --git a/lib/routes.dart b/lib/routes.dart index cb7e5fe..7995909 100644 --- a/lib/routes.dart +++ b/lib/routes.dart @@ -1,6 +1,8 @@ import 'package:go_router/go_router.dart'; +import 'package:pcastlivetv/pages/admin_page.dart'; import 'package:pcastlivetv/pages/initial_page.dart'; import 'package:pcastlivetv/pages/login_page.dart'; +import 'package:pcastlivetv/pages/reseller_page.dart'; import 'package:pcastlivetv/pages/user_page.dart'; import 'pages/register_page.dart'; @@ -24,6 +26,16 @@ final router = GoRouter( path: '/register', builder: (context, state) => const RegisterPage(), ), + GoRoute( + name: 'admin', + path: '/admin', + builder: (context, state) => const AdminPage(), + ), + GoRoute( + name: 'reseller', + path: '/reseller', + builder: (context, state) => const ResellerPage(), + ), GoRoute( name: 'user', path: '/user', diff --git a/pubspec.lock b/pubspec.lock index 2782f53..72f51a4 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -96,14 +96,6 @@ packages: description: flutter source: sdk version: "0.0.0" - fluttertoast: - dependency: "direct main" - description: - name: fluttertoast - sha256: "474f7d506230897a3cd28c965ec21c5328ae5605fc9c400cd330e9e9d6ac175c" - url: "https://pub.dev" - source: hosted - version: "8.2.2" go_router: dependency: "direct main" description: @@ -168,6 +160,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.9.1" + motion_toast: + dependency: "direct main" + description: + name: motion_toast + sha256: f27cfcd39c6a0c433670fb20e4add55c42f925a5382b25f58e917c054d47a624 + url: "https://pub.dev" + source: hosted + version: "2.7.8" path: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 173d2a2..fd8264c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -15,11 +15,11 @@ dependencies: velocity_x: ^4.1.1 go_router: ^10.1.0 validatorless: ^1.2.3 + dio: ^5.3.2 + motion_toast: ^2.7.8 flutter_web_plugins: sdk: flutter - dio: ^5.3.2 - fluttertoast: ^8.2.2 dev_dependencies: flutter_test: