Skip to content

Commit

Permalink
Create sign up screen state
Browse files Browse the repository at this point in the history
  • Loading branch information
rusiruavb committed Sep 13, 2021
1 parent 838fb8e commit ebac1ab
Show file tree
Hide file tree
Showing 10 changed files with 174 additions and 31 deletions.
8 changes: 6 additions & 2 deletions lib/components/rounded_dropdown_feild.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,14 @@ class RoundedDropDownFeild extends StatefulWidget {
final String text;
final bool isRequiredFeild;
final bool isCountry;
final String value;

const RoundedDropDownFeild({
Key key,
this.isRequiredFeild,
this.onChange,
this.text,
this.value,
this.isCountry,
}) : super(key: key);

Expand All @@ -20,6 +22,7 @@ class RoundedDropDownFeild extends StatefulWidget {
isRequiredFeild: isRequiredFeild,
onChange: onChange,
text: text,
value: value,
isCountry: isCountry,
);
}
Expand All @@ -29,13 +32,15 @@ class _RoundedDropDownFeildState extends State<RoundedDropDownFeild> {
final String text;
final bool isRequiredFeild;
final bool isCountry;
final String value;
bool _isFieldValid;

_RoundedDropDownFeildState({
Key key,
this.isRequiredFeild,
this.onChange,
this.text,
this.value,
this.isCountry,
});

Expand Down Expand Up @@ -187,8 +192,7 @@ class DropDownContainer extends StatelessWidget {
final size = MediaQuery.of(context).size;

return Container(
margin: EdgeInsets.symmetric(vertical: 1),
padding: EdgeInsets.symmetric(horizontal: 25, vertical: 3),
padding: EdgeInsets.symmetric(horizontal: 18, vertical: 3),
width: size.width * 0.9,
decoration: BoxDecoration(
color: Colors.grey[300], borderRadius: BorderRadius.circular(15)),
Expand Down
7 changes: 7 additions & 0 deletions lib/components/rounded_input_field.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ class RoundedTextFeild extends StatefulWidget {
final String text;
final bool isNumber;
final IconData icon;
final String value;
final bool isPhoneNumber;
final bool isRequiredFeild;
const RoundedTextFeild({
Expand All @@ -15,6 +16,7 @@ class RoundedTextFeild extends StatefulWidget {
this.isPassword,
this.isNumber,
this.icon,
this.value,
this.text,
this.isPhoneNumber = false,
this.isRequiredFeild,
Expand All @@ -27,6 +29,7 @@ class RoundedTextFeild extends StatefulWidget {
isPhoneNumber: isPhoneNumber,
onChange: onChange,
text: text,
value: value,
isRequiredFeild: isRequiredFeild,
);
}
Expand All @@ -36,6 +39,7 @@ class _RoundedTextFeildState extends State<RoundedTextFeild> {
final bool isPassword;
final String text;
final bool isNumber;
final String value;
final IconData icon;
final bool isPhoneNumber;
final bool isRequiredFeild;
Expand All @@ -47,6 +51,7 @@ class _RoundedTextFeildState extends State<RoundedTextFeild> {
this.isPassword,
this.isNumber,
this.icon,
this.value,
this.text,
this.isPhoneNumber = false,
this.isRequiredFeild,
Expand All @@ -72,6 +77,7 @@ class _RoundedTextFeildState extends State<RoundedTextFeild> {
),
TextFieldContainer(
child: TextFormField(
initialValue: value,
validator: (value) {
if (value.isEmpty) {
setState(() {
Expand Down Expand Up @@ -119,6 +125,7 @@ class _RoundedTextFeildState extends State<RoundedTextFeild> {
),
alignment: Alignment.centerRight,
),
onPressed: () {},
),
),
),
Expand Down
9 changes: 8 additions & 1 deletion lib/main.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,17 @@
import 'package:dialog_doc990_mobile/providers/sign_up_provider.dart';
import 'package:dialog_doc990_mobile/route_generator.dart';
import 'package:dialog_doc990_mobile/screens/home/home_screen.dart';
import 'package:dialog_doc990_mobile/screens/welcome/welcome_screen.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:provider/provider.dart';

void main() => runApp(DocApp());
void main() => runApp(
MultiProvider(
providers: [ChangeNotifierProvider(create: (_) => SignUpProvider())],
child: DocApp(),
),
);

class DocApp extends StatelessWidget {
@override
Expand Down
85 changes: 85 additions & 0 deletions lib/providers/sign_up_provider.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
import 'package:flutter/material.dart';

class SignUpProvider with ChangeNotifier {
String _email = '';
String _phoneNumber = '';
String _country = '';
String _title = '';
String _name = '';
String _nic = '';
String _password = '';

void setEmail(String email) {
_email = email;
notifyListeners();
}

void setPhoneNumber(String phoneNumber) {
_phoneNumber = phoneNumber;
notifyListeners();
}

void setCountry(String country) {
// var countryData = country.split(' ');
_country = country;
notifyListeners();
}

void setTitle(String title) {
_title = title;
notifyListeners();
}

void setName(String name) {
_name = name;
notifyListeners();
}

void setNIC(String nic) {
_nic = nic;
notifyListeners();
}

void setPassword(String password) {
_password = password;
notifyListeners();
}

String getEmail() {
return _email;
}

String getPhoneNumber() {
return _phoneNumber;
}

String getCountry() {
return _country;
}

String getTitle() {
return _title;
}

String getName() {
return _name;
}

String getNIC() {
return _nic;
}

String getPassword() {
return _password;
}

void resetValues() {
_email = '';
_country = '';
_phoneNumber = '';
_nic = '';
_title = '';
_password = '';
_name = '';
}
}
3 changes: 2 additions & 1 deletion lib/screens/home/home_navigation_menu.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import 'package:dialog_doc990_mobile/constants.dart';
import 'package:dialog_doc990_mobile/screen_keys.dart';
import 'package:flutter/material.dart';

Expand Down Expand Up @@ -39,7 +40,7 @@ class HomeNavigationMenu extends StatelessWidget {
child: Text(
text,
style: TextStyle(
fontFamily: 'Larsseit',
fontFamily: FONT_FAMILY_PRIMARY,
fontSize: 18,
),
),
Expand Down
5 changes: 5 additions & 0 deletions lib/screens/home/home_screen_service_content.dart
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@ class HomeScreenServiceContent extends StatefulWidget {
class _HomeScreenServiceContentState extends State<HomeScreenServiceContent> {
final Widget child;

@override
void initialState() {
super.initState();
}

_HomeScreenServiceContentState({
this.child,
});
Expand Down
18 changes: 8 additions & 10 deletions lib/screens/signup/signup_form_1.dart
Original file line number Diff line number Diff line change
@@ -1,30 +1,26 @@
import 'package:dialog_doc990_mobile/components/rounded_button.dart';
import 'package:dialog_doc990_mobile/components/rounded_input_field.dart';
import 'package:dialog_doc990_mobile/constants.dart';
import 'package:dialog_doc990_mobile/providers/sign_up_provider.dart';
import 'package:dialog_doc990_mobile/screen_keys.dart';
import 'package:dialog_doc990_mobile/screens/signup/signup_screen_2.dart';
import 'package:flutter/material.dart';
import 'package:page_transition/page_transition.dart';
import 'package:provider/provider.dart';

class SignUpForm1 extends StatefulWidget {
@override
_SignUpForm1State createState() => _SignUpForm1State();
}

class _SignUpForm1State extends State<SignUpForm1> {
String phoneNumber;
String emailAddress;
GlobalKey<FormState> _signUpFrom1Key =
GlobalKey<FormState>(debugLabel: '_signFrom1Key');
_SignUpForm1State({
this.phoneNumber,
this.emailAddress,
});

void submitAndNavigateTo2ndScreen() {
if (_signUpFrom1Key.currentState.validate() &&
emailAddress != null &&
phoneNumber != null) {
context.read<SignUpProvider>().getEmail() != null &&
context.read<SignUpProvider>().getPhoneNumber() != null) {
Navigator.push(
context,
PageTransition(
Expand Down Expand Up @@ -69,8 +65,9 @@ class _SignUpForm1State extends State<SignUpForm1> {
isPhoneNumber: false,
icon: Icons.email,
text: 'Email Address',
value: context.read<SignUpProvider>().getEmail(),
onChange: (text) {
emailAddress = text;
context.read<SignUpProvider>().setEmail(text);
},
),
RoundedTextFeild(
Expand All @@ -80,8 +77,9 @@ class _SignUpForm1State extends State<SignUpForm1> {
isPhoneNumber: true,
icon: Icons.phone,
text: 'Your Phone Number',
value: context.read<SignUpProvider>().getPhoneNumber(),
onChange: (text) {
phoneNumber = text;
context.read<SignUpProvider>().setPhoneNumber(text);
},
),
SizedBox(
Expand Down
Loading

0 comments on commit ebac1ab

Please sign in to comment.