Skip to content

Commit 759130b

Browse files
committed
auth messages and verification
1 parent 8c17c6a commit 759130b

File tree

6 files changed

+147
-5
lines changed

6 files changed

+147
-5
lines changed

lib/appwrite_service/auth_service.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ class AuthService extends ChangeNotifier {
6868
return user;
6969
} on AppwriteException catch (e) {
7070
print(e);
71-
UtilityHelper.toastMessage(message: e.message ?? "AuthService.components() null message");
71+
UtilityHelper.toastMessage(message: e.message ?? "AuthService.createUser() null message");
7272
return null;
7373
}
7474
}

lib/views/screens/onboarding_screens/signin_signup_screen/signin_signup_screen.dart

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import 'package:help_me_design/appwrite_service/auth_service.dart';
88
import 'package:help_me_design/theme/my_design_system.dart';
99
import 'package:help_me_design/theme/my_theme.dart';
1010
import 'package:help_me_design/views/screens/onboarding_screens/signin_signup_screen/widgets/signup_view.dart';
11+
import 'package:help_me_design/views/screens/onboarding_screens/signin_signup_screen/widgets/verification_view.dart';
1112
import 'package:help_me_design/views/widgets/button_tap_effect.dart';
1213
import 'package:help_me_design/views/widgets/container_pattern_painter.dart';
1314
import 'package:help_me_design/views/widgets/divider_with_title.dart';
@@ -88,6 +89,21 @@ class _SignInSignUpScreenState extends State<SignInSignUpScreen> {
8889
).animate().rotate(begin: -0.07, alignment: Alignment.bottomRight),
8990
],
9091
),
92+
93+
// Email Verification not been implemented right now
94+
// Column(
95+
// mainAxisAlignment: MainAxisAlignment.center,
96+
// children: [
97+
// Container(
98+
// child: VerificationView(
99+
// onTapSignUp: () {},
100+
// ),
101+
// // onTapSignIn: () {
102+
// // _pageController.animateToPage(0, duration: Duration(milliseconds: 300), curve: Curves.decelerate);
103+
// // },
104+
// ).animate().rotate(begin: -0.07, alignment: Alignment.bottomCenter),
105+
// ],
106+
// ),
91107
],
92108
),
93109
),

lib/views/screens/onboarding_screens/signin_signup_screen/widgets/signup_view.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,17 +110,18 @@ class SignUpView extends StatelessWidget {
110110
return;
111111
}
112112

113-
User userInfo = await authService.createUser(
113+
User? userInfo = await authService.createUser(
114114
email: emailController.text,
115115
password: passwordController.text,
116116
);
117117

118-
if (userInfo.$id.isNotEmpty) {
118+
if (userInfo != null) {
119119
clearTextFields();
120120
UtilityHelper.toastMessage(
121121
message: "SignUp is Successful, SignIn Now",
122122
msgDuration: Duration(seconds: 3),
123123
);
124+
// authService.createVerification();
124125
// send user to signIn View
125126
onTapSignIn();
126127
}
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
import 'package:appwrite/appwrite.dart';
2+
import 'package:flutter/material.dart';
3+
import 'package:help_me_design/appwrite_service/auth_service.dart';
4+
import 'package:help_me_design/theme/my_design_system.dart';
5+
import 'package:help_me_design/theme/my_theme.dart';
6+
import 'package:help_me_design/utility/email_validation.dart';
7+
import 'package:help_me_design/utility/utility_helper.dart';
8+
import 'package:help_me_design/views/screens/home_screen/home_screen.dart';
9+
import 'package:help_me_design/views/widgets/button_tap_effect.dart';
10+
import 'package:help_me_design/views/widgets/container_pattern_painter.dart';
11+
import 'package:help_me_design/views/widgets/divider_with_title.dart';
12+
import 'package:help_me_design/views/widgets/form_widgets/buttons/button_with_title_and_icon.dart';
13+
import 'package:help_me_design/views/widgets/form_widgets/buttons/simple_button.dart';
14+
import 'package:help_me_design/views/widgets/form_widgets/input_fields/email_input_field.dart';
15+
import 'package:help_me_design/views/widgets/form_widgets/input_fields/password_input_field.dart';
16+
import 'package:provider/provider.dart';
17+
18+
class VerificationView extends StatelessWidget {
19+
VerificationView({Key? key, required this.onTapSignUp}) : super(key: key);
20+
21+
final VoidCallback onTapSignUp;
22+
23+
TextEditingController emailController = TextEditingController();
24+
TextEditingController passwordController = TextEditingController();
25+
26+
clearTextFields() {
27+
emailController.clear();
28+
passwordController.clear();
29+
}
30+
31+
@override
32+
Widget build(BuildContext context) {
33+
var themeData = Theme.of(context);
34+
var authService = Provider.of<AuthService>(context);
35+
return Container(
36+
// height: 500,
37+
width: 424,
38+
// padding: EdgeInsets.all(MySpaceSystem.spaceX3),
39+
decoration: BoxDecoration(
40+
color: themeData.colorScheme.secondary,
41+
boxShadow: cardShadow,
42+
borderRadius: BorderRadius.circular(8),
43+
),
44+
child: Column(
45+
children: [
46+
Container(
47+
width: 424,
48+
height: 100,
49+
child: CustomPaint(
50+
painter: ContainerPatternPainter(42, context),
51+
child: Container(
52+
padding: EdgeInsets.all(MySpaceSystem.spaceX3),
53+
alignment: Alignment.topLeft,
54+
child: Container(
55+
color: themeData.colorScheme.primary,
56+
padding: EdgeInsets.symmetric(horizontal: MySpaceSystem.spaceX2, vertical: MySpaceSystem.spaceX1),
57+
child: Text(
58+
"Verification".toUpperCase(),
59+
style: MyTextTypeSystem.titleXLargeDark,
60+
),
61+
),
62+
),
63+
),
64+
),
65+
SizedBox(height: MySpaceSystem.spaceX1),
66+
// Login Form
67+
Container(
68+
padding: EdgeInsets.all(MySpaceSystem.spaceX4),
69+
child: Column(
70+
crossAxisAlignment: CrossAxisAlignment.center,
71+
mainAxisAlignment: MainAxisAlignment.center,
72+
// mainAxisAlignment: MainAxisAlignment.center,
73+
children: [
74+
SizedBox(height: MySpaceSystem.spaceX1),
75+
Text(
76+
"Account Verification url sent to Your Email",
77+
style: themeData.textTheme.titleSmall,
78+
),
79+
SizedBox(height: MySpaceSystem.spaceX3),
80+
ButtonTapEffect(
81+
onTap: () {
82+
// var itemID = html.window.location.hash;
83+
84+
// print(itemID);
85+
authService.createVerification();
86+
},
87+
child: Text(
88+
"example@gmail.com ",
89+
style: themeData.textTheme.titleMedium,
90+
),
91+
),
92+
SizedBox(height: MySpaceSystem.spaceX3),
93+
DividerWithTitle(title: 'Thank You', margin: EdgeInsets.symmetric(vertical: MySpaceSystem.spaceX4)),
94+
],
95+
),
96+
)
97+
],
98+
),
99+
);
100+
}
101+
102+
signInGithub(BuildContext context) async {
103+
final client = Client()
104+
.setEndpoint('https://cloud.appwrite.io/v1') // Your API Endpoint
105+
.setProject('64803e0044c9826d779b'); // Your project ID
106+
107+
final account = Account(client);
108+
109+
// Go to OAuth provider login page
110+
111+
try {
112+
await account.createOAuth2Session(provider: 'github', success: "https://help-me-design.netlify.app/#/");
113+
114+
Navigator.pop(context);
115+
const snackbar = SnackBar(content: Text('Account created!'));
116+
ScaffoldMessenger.of(context).showSnackBar(snackbar);
117+
} on AppwriteException catch (e) {
118+
Navigator.pop(context);
119+
}
120+
121+
// account.get();
122+
// account.deleteSession(sessionId: "current");
123+
}
124+
}

lib/views/screens/tabs/settings_tab/settings_tab.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@ class SettingsTab extends StatelessWidget {
6060
),
6161
ButtonTapEffect(
6262
onTap: () {
63-
authService.signOut();
63+
// authService.signOut();
64+
authService.createVerification();
6465
},
6566
child: Container(
6667
height: 64,

lib/views/widgets/divider_with_title.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class DividerWithTitle extends StatelessWidget {
2222
Expanded(child: Divider(thickness: 2, height: 1, color: themeData.colorScheme.outline)),
2323
Padding(
2424
padding: EdgeInsets.symmetric(horizontal: MySpaceSystem.spaceX1),
25-
child: Text("Continue With", style: themeData.textTheme.bodySmall),
25+
child: Text(title, style: themeData.textTheme.bodySmall),
2626
),
2727
Expanded(child: Divider(thickness: 2, height: 1, color: themeData.colorScheme.outline)),
2828
],

0 commit comments

Comments
 (0)