Get user email on home screen

This commit is contained in:
2024-04-06 15:05:04 +02:00
parent 8eaa3c3059
commit e17b5e24aa
29 changed files with 117 additions and 28 deletions

View File

@@ -1,7 +1,10 @@
import 'package:flutter/material.dart';
import 'package:patient_manager/main.dart';
class MyAppBar extends StatelessWidget {
class MyAppBar extends StatelessWidget implements PreferredSizeWidget {
@override
Size get preferredSize => const Size.fromHeight(60);
final String barTitle;
const MyAppBar({super.key, required this.barTitle});

View File

@@ -12,6 +12,18 @@ class MyAppDrawer extends StatefulWidget {
class _MyAppDrawerState extends State<MyAppDrawer> {
@override
Widget build(BuildContext context) {
return Drawer();
return Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: [
DrawerHeader(
child: Text(widget.drawerTitle as String),
decoration: const BoxDecoration(
color: Colors.blueAccent,
),
),
],
),
);
}
}

View File

@@ -1,20 +1,49 @@
import 'package:flutter/material.dart';
import 'package:patient_manager/components/homeTileGrid.dart';
import 'package:patient_manager/components/myAppBar.dart';
import 'package:patient_manager/components/myAppDrawer.dart';
import 'package:patient_manager/main.dart';
class Home extends StatelessWidget {
const Home({super.key});
class Home extends StatefulWidget {
//final String userEmail;
const Home({
super.key,
});
@override
State<Home> createState() => _HomeState();
}
class _HomeState extends State<Home> {
String useremail = "";
Future<void> getUserEmail() async {
final res = await client.auth.getUser();
if (res.user!.email != null) {
print("emai not null");
useremail = res.user!.email!;
print(useremail);
}
}
String getEmail() {
return useremail;
}
@override
Widget build(BuildContext context) {
return const Scaffold(
appBar: PreferredSize(
preferredSize: Size.fromHeight(50),
child: MyAppBar(
barTitle: "Mzanzi Innovation Hub",
),
),
body: HomeTileGrid(),
);
return FutureBuilder(
future: getUserEmail(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
return Scaffold(
appBar: MyAppBar(barTitle: "Mzanzi Innovation Hub"),
body: HomeTileGrid(),
drawer: MyAppDrawer(drawerTitle: useremail),
);
} else {
return Center(child: CircularProgressIndicator());
}
});
}
}

View File

@@ -0,0 +1,23 @@
import 'package:flutter/material.dart';
import 'package:patient_manager/components/myAppBar.dart';
class PatientManager extends StatefulWidget {
const PatientManager({super.key});
@override
State<PatientManager> createState() => _PatientManagerState();
}
class _PatientManagerState extends State<PatientManager> {
@override
Widget build(BuildContext context) {
return const Scaffold(
appBar: PreferredSize(
preferredSize: Size.fromHeight(50),
child: MyAppBar(
barTitle: "Mzanzi Innovation Hub",
),
),
);
}
}

View File

@@ -17,21 +17,28 @@ class _RegisterState extends State<Register> {
final emailController = TextEditingController();
final passwordController = TextEditingController();
final confirmPasswordController = TextEditingController();
final officeID = TextEditingController();
bool _obscureText = true;
//sign user in
Future<void> signUserUp() async {
try {
final response = await client.auth.signUp(
email: emailController.text,
password: passwordController.text,
);
if (response.session != null) {
Navigator.of(context).pushNamed('/homme');
if (passwordController.text != confirmPasswordController.text) {
loginError("Passwords do not match");
} else {
try {
final response = await client.auth.signUp(
email: emailController.text,
password: passwordController.text,
);
if (response.session != null) {
Navigator.of(context).pushNamed('/homme');
}
} on AuthException catch (error) {
loginError(error.message);
emailController.clear();
passwordController.clear();
confirmPasswordController.clear();
}
} on AuthException catch (error) {
loginError(error.message);
emailController.clear();
passwordController.clear();
}
}
@@ -83,6 +90,16 @@ class _RegisterState extends State<Register> {
//spacer
const SizedBox(height: 25),
//email input
SizedBox(
width: 500.0,
child: MyTextField(
controller: officeID,
hintText: 'OfficeID',
),
),
//spacer
const SizedBox(height: 25),
//email input
SizedBox(
width: 500.0,
child: MyTextField(
@@ -128,7 +145,7 @@ class _RegisterState extends State<Register> {
),
),
//spacer
const SizedBox(height: 50),
const SizedBox(height: 30),
// sign up button
SizedBox(
width: 500.0,

View File

@@ -26,7 +26,7 @@ class _SignInState extends State<SignIn> {
password: passwordController.text,
);
if (response.session != null) {
Navigator.of(context).pushNamed('/homme');
Navigator.of(context).pushNamed('/homme', arguments: "Yaso");
}
} on AuthException catch (error) {
loginError(error.message);

View File

@@ -5,13 +5,18 @@ import 'package:patient_manager/pages/home.dart';
class RouteGenerator {
static Route<dynamic> generateRoute(RouteSettings settings) {
//final args = settings.arguments;
final args = settings.arguments;
switch (settings.name) {
case '/':
return MaterialPageRoute(builder: (_) => AuthCheck());
case '/home':
return MaterialPageRoute(builder: (_) => const Home());
if (args is String) {
return MaterialPageRoute(
builder: (_) => const Home(),
);
}
// case '/signin':
// return MaterialPageRoute(builder: (_) => const SignInOrRegister());
// //case '/signIn':

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
database/binlog.000005 Normal file

Binary file not shown.

Binary file not shown.

BIN
database/ibtmp1 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.