created initial admin, reseller and user pages

main
Nilo Roberto C Paim 2023-08-30 18:34:36 -03:00
parent 8328b7af4c
commit ee6e881fbf
6 changed files with 95 additions and 30 deletions

20
lib/pages/admin_page.dart Normal file
View File

@ -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"),
],
),
),
);
}
}

View File

@ -1,5 +1,6 @@
import 'package:flutter/material.dart'; 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/components/nc_form_field.dart';
import 'package:pcastlivetv/routes.dart'; import 'package:pcastlivetv/routes.dart';
import 'package:pcastlivetv/stores/login_store.dart'; import 'package:pcastlivetv/stores/login_store.dart';
@ -93,18 +94,20 @@ class _LoginPageState extends State<LoginPage> {
onPressed: () async { onPressed: () async {
var result = await processAuth(formKey, store, email, password); var result = await processAuth(formKey, store, email, password);
if (result) { if (result) {
switch (store.userType) {
case 'A':
router.go('/admin');
break;
case 'R':
router.go('/reseller');
break;
case 'U':
router.go('/user'); router.go('/user');
break;
default:
}
} else { } else {
Fluttertoast.showToast( _displayErrorMotionToast(store.message!);
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);
} }
}, },
child: const Padding( child: const Padding(
@ -126,6 +129,23 @@ class _LoginPageState extends State<LoginPage> {
); );
} }
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<bool> processAuth(GlobalKey<FormState> formKey, LoginStore store, String email, String password) async { Future<bool> processAuth(GlobalKey<FormState> formKey, LoginStore store, String email, String password) async {
Function? close; Function? close;
if (formKey.currentState!.validate()) { if (formKey.currentState!.validate()) {
@ -151,14 +171,7 @@ class _LoginPageState extends State<LoginPage> {
} }
} catch (e) { } catch (e) {
close!(); close!();
Fluttertoast.showToast( _displayErrorMotionToast(e.toString().replaceAll("Exception: ", ""));
msg: e.toString().replaceAll("Exception: ", ""),
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM,
timeInSecForIosWeb: 1,
backgroundColor: Colors.red,
textColor: Colors.white,
fontSize: 16.0);
} }
// SnackBarService.showSnackBar(content: e.toString().replaceAll("Exception: ", ""), error: true); // SnackBarService.showSnackBar(content: e.toString().replaceAll("Exception: ", ""), error: true);
return false; return false;

View File

@ -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"),
],
),
),
);
}
}

View File

@ -1,6 +1,8 @@
import 'package:go_router/go_router.dart'; 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/initial_page.dart';
import 'package:pcastlivetv/pages/login_page.dart'; import 'package:pcastlivetv/pages/login_page.dart';
import 'package:pcastlivetv/pages/reseller_page.dart';
import 'package:pcastlivetv/pages/user_page.dart'; import 'package:pcastlivetv/pages/user_page.dart';
import 'pages/register_page.dart'; import 'pages/register_page.dart';
@ -24,6 +26,16 @@ final router = GoRouter(
path: '/register', path: '/register',
builder: (context, state) => const RegisterPage(), 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( GoRoute(
name: 'user', name: 'user',
path: '/user', path: '/user',

View File

@ -96,14 +96,6 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" 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: go_router:
dependency: "direct main" dependency: "direct main"
description: description:
@ -168,6 +160,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.9.1" 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: path:
dependency: transitive dependency: transitive
description: description:

View File

@ -15,11 +15,11 @@ dependencies:
velocity_x: ^4.1.1 velocity_x: ^4.1.1
go_router: ^10.1.0 go_router: ^10.1.0
validatorless: ^1.2.3 validatorless: ^1.2.3
dio: ^5.3.2
motion_toast: ^2.7.8
flutter_web_plugins: flutter_web_plugins:
sdk: flutter sdk: flutter
dio: ^5.3.2
fluttertoast: ^8.2.2
dev_dependencies: dev_dependencies:
flutter_test: flutter_test: