@@ -16,7 +16,7 @@
|
||||
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
|
||||
<application
|
||||
android:label="regroup"
|
||||
android:label="ReGroup"
|
||||
android:requestLegacyExternalStorage="true"
|
||||
android:name="${applicationName}"
|
||||
android:icon="@mipmap/ic_launcher">
|
||||
|
||||
@@ -3,7 +3,7 @@ class ApiUrls {
|
||||
|
||||
static const getlogin = "${baseUrl}login";
|
||||
static const forgotpassword = "${baseUrl}forgot-password";
|
||||
static const verifyotp = "${baseUrl}verify-otp";
|
||||
static const verifyotp = "${baseUrl}forgot-password/verify-otp";
|
||||
static const tellUsBusinessApi = "${baseUrl}tell-us-about-your-business";
|
||||
static const letUsUnderstandApi = "${baseUrl}update-business-profile-step-1";
|
||||
static const resetpassword = "${baseUrl}reset-password";
|
||||
|
||||
@@ -492,7 +492,6 @@ class _CustomDropDownTagState extends State<CustomDropDownTag> {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class CustomDropDownRadio extends StatefulWidget {
|
||||
const CustomDropDownRadio({
|
||||
Key? key,
|
||||
@@ -533,6 +532,7 @@ class _CustomDropDownRadioState extends State<CustomDropDownRadio> {
|
||||
selectedValue.value = item;
|
||||
_textController.clear();
|
||||
widget.onItemSelected(item);
|
||||
onDropTap.value = !onDropTap.value;
|
||||
},
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
@@ -682,29 +682,29 @@ class _CustomDropDownRadioState extends State<CustomDropDownRadio> {
|
||||
),
|
||||
border: Border.all(color: const Color(0xFF434A53)),
|
||||
),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
widget.leadingImage!,
|
||||
SizedBox(width: 16.w),
|
||||
Text(
|
||||
selectedValue.value.isEmpty
|
||||
? widget.header
|
||||
: selectedValue.value,
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 16.sp,
|
||||
fontFamily: 'Helvetica',
|
||||
fontWeight: FontWeight.w400),
|
||||
),
|
||||
],
|
||||
),
|
||||
onDropTap.value
|
||||
? Image.asset('assets/images/png/arrowup.png')
|
||||
: Image.asset('assets/images/png/arrowdown.png'),
|
||||
],
|
||||
child: Center(
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
widget.leadingImage!,
|
||||
SizedBox(width: 12.w),
|
||||
Text(
|
||||
selectedValue.value.isEmpty
|
||||
? widget.header
|
||||
: selectedValue.value,
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 16.sp,
|
||||
fontFamily: 'Helvetica',
|
||||
fontWeight: FontWeight.w400),
|
||||
),
|
||||
Spacer(),
|
||||
onDropTap.value
|
||||
? Image.asset('assets/images/png/arrowup.png')
|
||||
: Image.asset('assets/images/png/arrowdown.png'),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -48,7 +48,22 @@ class _TellusaboutIndividualState extends State<TellusaboutIndividual> {
|
||||
Future<void> _selectDate(BuildContext context) async {
|
||||
DateTime yesterday = DateTime.now().subtract(Duration(days: 1));
|
||||
DateTime eighteenYearsAgo =
|
||||
DateTime.now().subtract(const Duration(days: 365 * 18));
|
||||
DateTime.now().subtract(Duration(days: 365 * 18));
|
||||
|
||||
final ThemeData customTheme = Theme.of(context).copyWith(
|
||||
colorScheme: const ColorScheme.light(
|
||||
primary: Color(0xFFD90B2E),
|
||||
surfaceTint: Color(0xFF222935),
|
||||
surface: Color(0xFF222935),
|
||||
onPrimary: Colors.white,
|
||||
onSurface: Colors.white,
|
||||
onSecondary: Colors.white),
|
||||
textButtonTheme: TextButtonThemeData(
|
||||
style: TextButton.styleFrom(
|
||||
foregroundColor: Color(0xFFD90B2E),
|
||||
),
|
||||
));
|
||||
|
||||
final DateTime? pickedDate = await showDatePicker(
|
||||
context: context,
|
||||
initialDate: yesterday,
|
||||
@@ -56,68 +71,54 @@ class _TellusaboutIndividualState extends State<TellusaboutIndividual> {
|
||||
lastDate: DateTime(2026),
|
||||
builder: (BuildContext context, Widget? child) {
|
||||
return Theme(
|
||||
data: ThemeData.light().copyWith(
|
||||
colorScheme: ColorScheme.dark(
|
||||
primary:
|
||||
Color(0XFF222935).withOpacity(0.60), // Change primary color
|
||||
onPrimary:
|
||||
// Color(0XFF222935).withOpacity(0.60), // Change primary color
|
||||
Colors.white
|
||||
|
||||
// Colors.white, // Change text color
|
||||
),
|
||||
textButtonTheme: TextButtonThemeData(
|
||||
style: TextButton.styleFrom(
|
||||
foregroundColor: Colors.white, // Change button text color
|
||||
),
|
||||
),
|
||||
dialogBackgroundColor:
|
||||
// Color(0xFF434A53),
|
||||
Color(0XFF222935).withOpacity(0.60), // Change primary color
|
||||
|
||||
// // Change dialog background color
|
||||
),
|
||||
data: customTheme,
|
||||
// ThemeData.light().copyWith(
|
||||
// colorScheme: ColorScheme.dark(
|
||||
// primary: Color(0XFF222935).withOpacity(0.60),
|
||||
// onPrimary: Colors.white, // Change text color
|
||||
// ),
|
||||
// textButtonTheme: TextButtonThemeData(
|
||||
// style: TextButton.styleFrom(
|
||||
// foregroundColor: Colors.white, // Change button text color
|
||||
// ),
|
||||
// ),
|
||||
// dialogBackgroundColor: Color(0XFF222935)
|
||||
// .withOpacity(0.60), // Change dialog background color
|
||||
// ),
|
||||
child: child!,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
if (pickedDate != null) {
|
||||
// if (pickedDate.isBefore(eighteenYearsAgo)) {
|
||||
setState(() {
|
||||
// selectedDate.value = pickedDate;
|
||||
_selectedDate = pickedDate;
|
||||
datecontroller.text =
|
||||
"${_selectedDate!.year.toString().padLeft(2, '0')}-${_selectedDate!.month.toString().padLeft(2, '0')}-${_selectedDate!.day.toString().padLeft(2, '0')}";
|
||||
});
|
||||
// // } else {
|
||||
// showDialog(
|
||||
// context: context,
|
||||
// builder: (context) {
|
||||
// return AlertDialog(
|
||||
// backgroundColor: Colors.black,
|
||||
// title: const Text(
|
||||
// "Age Restriction",
|
||||
// style: TextStyle(color: Colors.white),
|
||||
// ),
|
||||
// content: const Text(
|
||||
// "Sorry, you must be above 18 years age",
|
||||
// style: TextStyle(color: Colors.white),
|
||||
// ),
|
||||
// actions: [
|
||||
// TextButton(
|
||||
// onPressed: () {
|
||||
// Navigator.of(context).pop();
|
||||
// },
|
||||
// child: const Text(
|
||||
// "OK",
|
||||
// style: TextStyle(color: Colors.white),
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// );
|
||||
// },
|
||||
// );
|
||||
// }
|
||||
if (pickedDate.isBefore(eighteenYearsAgo)) {
|
||||
setState(() {
|
||||
_selectedDate = pickedDate;
|
||||
datecontroller.text =
|
||||
"${_selectedDate!.year.toString().padLeft(2, '0')}-${_selectedDate!.month.toString().padLeft(2, '0')}-${_selectedDate!.day.toString().padLeft(2, '0')}";
|
||||
});
|
||||
} else {
|
||||
setState(() {
|
||||
_selectedDate = null;
|
||||
datecontroller.text = ''; // Clear the text field
|
||||
});
|
||||
|
||||
Get.snackbar(
|
||||
"Error!",
|
||||
'User should be 18+',
|
||||
duration: const Duration(seconds: 2),
|
||||
colorText: Colors.white,
|
||||
backgroundColor: Colors.red,
|
||||
margin: const EdgeInsets.all(8),
|
||||
snackStyle: SnackStyle.FLOATING,
|
||||
snackPosition: SnackPosition.BOTTOM,
|
||||
);
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text('User should be 18+'),
|
||||
// ),
|
||||
// );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,350 +179,342 @@ class _TellusaboutIndividualState extends State<TellusaboutIndividual> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return WillPopScope(
|
||||
onWillPop: () async {
|
||||
SystemNavigator.pop();
|
||||
Navigator.pop(context);
|
||||
return true;
|
||||
},
|
||||
child: GestureDetector(
|
||||
onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
|
||||
child: Scaffold(
|
||||
backgroundColor: Color.fromARGB(255, 18, 32, 47),
|
||||
body: Stack(
|
||||
children: [
|
||||
Positioned(top: 70, left: -30, child: CommonBlurLeftSecond()),
|
||||
Positioned(top: 310, right: -30, child: CommonBlurRightSecond()),
|
||||
Positioned(top: 510, left: -30, child: CommonBlurLeftBlue()),
|
||||
GlassmorphicContainer(
|
||||
width: MediaQuery.of(context).size.width,
|
||||
height:
|
||||
// 500.h,
|
||||
MediaQuery.of(context).size.height,
|
||||
borderRadius: 2,
|
||||
blur: 6,
|
||||
alignment: Alignment.bottomLeft,
|
||||
border: 2,
|
||||
linearGradient: LinearGradient(
|
||||
begin: Alignment.topCenter,
|
||||
end: Alignment.bottomCenter,
|
||||
colors: [
|
||||
Color(0XFF222935).withOpacity(0.60),
|
||||
Color(0XFF222935).withOpacity(0.60),
|
||||
Color(0XFF222935).withOpacity(0.60),
|
||||
Color(0XFF222935).withOpacity(0.60),
|
||||
|
||||
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
|
||||
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
|
||||
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
|
||||
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
|
||||
],
|
||||
),
|
||||
borderGradient: LinearGradient(
|
||||
begin: Alignment.topCenter,
|
||||
end: Alignment.bottomCenter,
|
||||
colors: [
|
||||
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
|
||||
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
|
||||
Color(0XFF222935).withOpacity(0.60),
|
||||
|
||||
Color(0XFF222935).withOpacity(0.60),
|
||||
],
|
||||
),
|
||||
child: ListView(physics: ScrollPhysics(), children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
// const Spacer(flex: 1),
|
||||
sizedBoxHeight(50.h),
|
||||
Center(
|
||||
child: text20400white('Tell us about yourself')),
|
||||
sizedBoxHeight(10.w),
|
||||
Center(
|
||||
child: Container(
|
||||
width: 154,
|
||||
decoration: ShapeDecoration(
|
||||
shape: RoundedRectangleBorder(
|
||||
side: BorderSide(
|
||||
width: 1,
|
||||
strokeAlign: BorderSide.strokeAlignCenter,
|
||||
color: Color(0xFF858585),
|
||||
),
|
||||
),
|
||||
)),
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
ImageUploadBottomSheet().showModal(
|
||||
context,
|
||||
false,
|
||||
(result) {
|
||||
print("File path is $result");
|
||||
editProfileImage.profilePicPath.value =
|
||||
result;
|
||||
var filenameresult = extractFileName(result);
|
||||
print("File name is $filenameresult");
|
||||
photographController.text = filenameresult;
|
||||
},
|
||||
);
|
||||
},
|
||||
child: Center(
|
||||
child: Column(
|
||||
children: [
|
||||
Stack(
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
// Outer circle
|
||||
Container(
|
||||
width: 139.w,
|
||||
height: 139.h,
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: Colors.transparent,
|
||||
border: Border.all(
|
||||
color: Color(0XFFD90B2E)
|
||||
.withOpacity(0.50),
|
||||
width: 2),
|
||||
),
|
||||
),
|
||||
// Middle circle
|
||||
Container(
|
||||
width: 119.w,
|
||||
height: 119.h,
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: Colors.transparent,
|
||||
border: Border.all(
|
||||
color: Color(0XFFD90B2E)
|
||||
.withOpacity(0.50),
|
||||
width: 2),
|
||||
),
|
||||
),
|
||||
// Inner circle
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: Colors.transparent,
|
||||
border: Border.all(
|
||||
color: Color(0XFFD90B2E)
|
||||
.withOpacity(0.50),
|
||||
width: 2),
|
||||
),
|
||||
child: Obx(() =>
|
||||
// editProfileImage
|
||||
// .profilePicPath.value !=
|
||||
// ''
|
||||
// ?
|
||||
editProfileImage.profilePicPath
|
||||
.value !=
|
||||
''
|
||||
? ClipOval(
|
||||
child:
|
||||
SizedBox.fromSize(
|
||||
size: Size.fromRadius(
|
||||
50.r),
|
||||
child: Image(
|
||||
image: FileImage(
|
||||
File(
|
||||
editProfileImage
|
||||
.profilePicPath
|
||||
.value,
|
||||
),
|
||||
),
|
||||
fit: BoxFit.cover,
|
||||
width: 200.w,
|
||||
height: 200.h,
|
||||
),
|
||||
),
|
||||
)
|
||||
: Image.asset(
|
||||
"assets/images/png/camera.png")
|
||||
// : Image.asset(
|
||||
// "assets/images/png/camera.png")
|
||||
)),
|
||||
// Main button
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 9),
|
||||
text16400white('Add profile picture')
|
||||
],
|
||||
)),
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
text16400white('Full name'),
|
||||
sizedBoxHeight(10.h),
|
||||
CustomTextFormField(
|
||||
textEditingController: fullNameController,
|
||||
texttype: TextInputType.text,
|
||||
hintText: "Enter your full name",
|
||||
leadingIcon:
|
||||
// const Icon(Icons.mail_outline),
|
||||
Image.asset(
|
||||
width: 22.w,
|
||||
height: 17.h,
|
||||
'assets/images/png/user.png',
|
||||
return GestureDetector(
|
||||
onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
|
||||
child: Scaffold(
|
||||
backgroundColor: Color.fromARGB(255, 18, 32, 47),
|
||||
body: Stack(
|
||||
children: [
|
||||
// Positioned(top: 70, left: -30, child: CommonBlurLeftSecond()),
|
||||
// Positioned(top: 310, right: -30, child: CommonBlurRightSecond()),
|
||||
// Positioned(top: 510, left: -30, child: CommonBlurLeftBlue()),
|
||||
// GlassmorphicContainer(
|
||||
// width: MediaQuery.of(context).size.width,
|
||||
// height:
|
||||
// // 500.h,
|
||||
// MediaQuery.of(context).size.height,
|
||||
// borderRadius: 2,
|
||||
// blur: 6,
|
||||
// alignment: Alignment.bottomLeft,
|
||||
// border: 2,
|
||||
// linearGradient: LinearGradient(
|
||||
// begin: Alignment.topCenter,
|
||||
// end: Alignment.bottomCenter,
|
||||
// colors: [
|
||||
// Color(0XFF222935).withOpacity(0.60),
|
||||
// Color(0XFF222935).withOpacity(0.60),
|
||||
// Color(0XFF222935).withOpacity(0.60),
|
||||
// Color(0XFF222935).withOpacity(0.60),
|
||||
|
||||
// // Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
|
||||
// // Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
|
||||
// // Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
|
||||
// // Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
|
||||
// ],
|
||||
// ),
|
||||
// borderGradient: LinearGradient(
|
||||
// begin: Alignment.topCenter,
|
||||
// end: Alignment.bottomCenter,
|
||||
// colors: [
|
||||
// // Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
|
||||
// // Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
|
||||
// Color(0XFF222935).withOpacity(0.60),
|
||||
|
||||
// Color(0XFF222935).withOpacity(0.60),
|
||||
// ],
|
||||
// ),
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage("assets/images/png/Ellipse 1496.png"),
|
||||
fit: BoxFit.fill)),
|
||||
),
|
||||
ListView(physics: ScrollPhysics(), children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
// const Spacer(flex: 1),
|
||||
sizedBoxHeight(50.h),
|
||||
Center(child: text20400white('Tell us about yourself')),
|
||||
sizedBoxHeight(10.w),
|
||||
Center(
|
||||
child: Container(
|
||||
width: 154,
|
||||
decoration: ShapeDecoration(
|
||||
shape: RoundedRectangleBorder(
|
||||
side: BorderSide(
|
||||
width: 1,
|
||||
strokeAlign: BorderSide.strokeAlignCenter,
|
||||
color: Color(0xFF858585),
|
||||
),
|
||||
),
|
||||
// validatorText: "Enter your full name",
|
||||
validator: (value) {
|
||||
if (value!.isEmpty) {
|
||||
return 'Enter your full name ';
|
||||
}
|
||||
return null;
|
||||
},
|
||||
inputFormatters: [
|
||||
// LengthLimitingTextInputFormatter(20),
|
||||
RemoveEmojiInputFormatter(),
|
||||
FilteringTextInputFormatter.allow(
|
||||
RegExp('[a-zA-Z ]'))
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(10.h),
|
||||
text16400white('User name'),
|
||||
sizedBoxHeight(10.h),
|
||||
CustomTextFormField(
|
||||
textEditingController: userNameController,
|
||||
texttype: TextInputType.text,
|
||||
hintText: "Enter your user name",
|
||||
leadingIcon:
|
||||
// const Icon(Icons.mail_outline),
|
||||
Image.asset(
|
||||
width: 22.w,
|
||||
height: 17.h,
|
||||
'assets/images/png/user.png',
|
||||
),
|
||||
// validatorText: "Enter your user name",
|
||||
validator: (value) {
|
||||
if (value!.isEmpty) {
|
||||
return 'Enter your user name ';
|
||||
}
|
||||
return null;
|
||||
},
|
||||
inputFormatters: [
|
||||
// LengthLimitingTextInputFormatter(20),
|
||||
RemoveEmojiInputFormatter(),
|
||||
FilteringTextInputFormatter.allow(
|
||||
RegExp('[a-zA-Z ]'))
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(10.h),
|
||||
text16400white('Date of birth'),
|
||||
sizedBoxHeight(10.h),
|
||||
CustomTextFormField(
|
||||
textEditingController: datecontroller,
|
||||
readonly: true,
|
||||
onTap: () {
|
||||
_selectDate(context);
|
||||
},
|
||||
// texttype: TextInputType.text,
|
||||
hintText: "Enter your date of birth",
|
||||
leadingIcon:
|
||||
// const Icon(Icons.mail_outline),
|
||||
Image.asset(
|
||||
width: 22.w,
|
||||
height: 17.h,
|
||||
'assets/images/png/dateimage.png',
|
||||
),
|
||||
// validatorText: "Enter date of birth",
|
||||
validator: (value) {
|
||||
if (value!.isEmpty) {
|
||||
return 'Enter your date of birth';
|
||||
}
|
||||
return null;
|
||||
},
|
||||
),
|
||||
sizedBoxHeight(10.h),
|
||||
text16400white('Gender'),
|
||||
sizedBoxHeight(10.h),
|
||||
CustomDropDownWidgetSignup(
|
||||
header: 'Select gender',
|
||||
title: '',
|
||||
listData: _gender,
|
||||
onItemSelected: _onItemSelected,
|
||||
leadingImage:
|
||||
Image.asset('assets/images/png/gendericon.png'),
|
||||
),
|
||||
sizedBoxHeight(10.h),
|
||||
Row(
|
||||
children: [
|
||||
text16400white('Location'),
|
||||
sizedBoxWidth(5.w),
|
||||
Image.asset(
|
||||
'assets/images/png/informationicon.png')
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(10.h),
|
||||
CustomTextFormField(
|
||||
textEditingController: locationcontroller,
|
||||
texttype: TextInputType.text,
|
||||
hintText: "Enter your location",
|
||||
leadingIcon:
|
||||
// const Icon(Icons.mail_outline),
|
||||
Image.asset(
|
||||
width: 22.w,
|
||||
height: 17.h,
|
||||
'assets/images/png/location.png',
|
||||
),
|
||||
// validatorText: "Enter your location",
|
||||
validator: (value) {
|
||||
if (value!.isEmpty) {
|
||||
return 'Enter your location ';
|
||||
}
|
||||
return null;
|
||||
},
|
||||
inputFormatters: [
|
||||
// LengthLimitingTextInputFormatter(20),
|
||||
RemoveEmojiInputFormatter(),
|
||||
FilteringTextInputFormatter.allow(
|
||||
RegExp('[a-zA-Z ]'))
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
CustomButton(
|
||||
text: "Continue",
|
||||
onPressed: () {
|
||||
if (
|
||||
// isValid!
|
||||
// fullNameController.text.isBlank! &&
|
||||
// userNameController.text.isBlank! &&
|
||||
// datecontroller.text.isBlank! &&
|
||||
// _selectedgendertype.isEmpty &&
|
||||
// locationcontroller.text.isBlank! &&
|
||||
// editProfileImage.profilePicPath.value ==
|
||||
// ''
|
||||
fullNameController.text.isBlank! ||
|
||||
userNameController.text.isBlank! ||
|
||||
datecontroller.text.isBlank! ||
|
||||
_selectedgendertype.isEmpty ||
|
||||
locationcontroller.text.isBlank! ||
|
||||
editProfileImage.profilePicPath.value ==
|
||||
'') {
|
||||
utils.showToast('Please fill all fields');
|
||||
} else {
|
||||
TellusUploadData();
|
||||
}
|
||||
// if (_selectedgendertype.isNotEmpty) {
|
||||
// Get.toNamed(RouteName.individualprofilestep1);
|
||||
|
||||
// // Get.to(() => BusinessPage());
|
||||
// } else {
|
||||
// // Handle case where no selection is made
|
||||
// utils.showToast('Please select an gender type');
|
||||
// }
|
||||
}),
|
||||
sizedBoxHeight(30.h),
|
||||
// const Spacer(
|
||||
// flex: 3,
|
||||
// )
|
||||
],
|
||||
),
|
||||
)),
|
||||
),
|
||||
])),
|
||||
],
|
||||
)),
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
ImageUploadBottomSheet().showModal(
|
||||
context,
|
||||
false,
|
||||
(result) {
|
||||
print("File path is $result");
|
||||
editProfileImage.profilePicPath.value = result;
|
||||
var filenameresult = extractFileName(result);
|
||||
print("File name is $filenameresult");
|
||||
photographController.text = filenameresult;
|
||||
},
|
||||
);
|
||||
},
|
||||
child: Center(
|
||||
child: Column(
|
||||
children: [
|
||||
Stack(
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
// Outer circle
|
||||
Container(
|
||||
width: 139.w,
|
||||
height: 139.h,
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: Colors.transparent,
|
||||
border: Border.all(
|
||||
color:
|
||||
Color(0XFFD90B2E).withOpacity(0.50),
|
||||
width: 2),
|
||||
),
|
||||
),
|
||||
// Middle circle
|
||||
Container(
|
||||
width: 119.w,
|
||||
height: 119.h,
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: Colors.transparent,
|
||||
border: Border.all(
|
||||
color:
|
||||
Color(0XFFD90B2E).withOpacity(0.50),
|
||||
width: 2),
|
||||
),
|
||||
),
|
||||
// Inner circle
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: Colors.transparent,
|
||||
border: Border.all(
|
||||
color: Color(0XFFD90B2E)
|
||||
.withOpacity(0.50),
|
||||
width: 2),
|
||||
),
|
||||
child: Obx(() =>
|
||||
// editProfileImage
|
||||
// .profilePicPath.value !=
|
||||
// ''
|
||||
// ?
|
||||
editProfileImage
|
||||
.profilePicPath.value !=
|
||||
''
|
||||
? ClipOval(
|
||||
child: SizedBox.fromSize(
|
||||
size:
|
||||
Size.fromRadius(50.r),
|
||||
child: Image(
|
||||
image: FileImage(
|
||||
File(
|
||||
editProfileImage
|
||||
.profilePicPath
|
||||
.value,
|
||||
),
|
||||
),
|
||||
fit: BoxFit.cover,
|
||||
width: 200.w,
|
||||
height: 200.h,
|
||||
),
|
||||
),
|
||||
)
|
||||
: Image.asset(
|
||||
"assets/images/png/camera.png")
|
||||
// : Image.asset(
|
||||
// "assets/images/png/camera.png")
|
||||
)),
|
||||
// Main button
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 9),
|
||||
text16400white('Add profile picture')
|
||||
],
|
||||
)),
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
text16400white('Full name'),
|
||||
sizedBoxHeight(10.h),
|
||||
CustomTextFormField(
|
||||
textEditingController: fullNameController,
|
||||
texttype: TextInputType.text,
|
||||
hintText: "Enter your full name",
|
||||
leadingIcon:
|
||||
// const Icon(Icons.mail_outline),
|
||||
Image.asset(
|
||||
width: 22.w,
|
||||
height: 17.h,
|
||||
'assets/images/png/user.png',
|
||||
),
|
||||
// validatorText: "Enter your full name",
|
||||
validator: (value) {
|
||||
if (value!.isEmpty) {
|
||||
return 'Enter your full name ';
|
||||
}
|
||||
return null;
|
||||
},
|
||||
inputFormatters: [
|
||||
// LengthLimitingTextInputFormatter(20),
|
||||
RemoveEmojiInputFormatter(),
|
||||
FilteringTextInputFormatter.allow(RegExp('[a-zA-Z ]'))
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(10.h),
|
||||
text16400white('User name'),
|
||||
sizedBoxHeight(10.h),
|
||||
CustomTextFormField(
|
||||
textEditingController: userNameController,
|
||||
texttype: TextInputType.text,
|
||||
hintText: "Enter your user name",
|
||||
leadingIcon:
|
||||
// const Icon(Icons.mail_outline),
|
||||
Image.asset(
|
||||
width: 22.w,
|
||||
height: 17.h,
|
||||
'assets/images/png/user.png',
|
||||
),
|
||||
// validatorText: "Enter your user name",
|
||||
validator: (value) {
|
||||
if (value!.isEmpty) {
|
||||
return 'Enter your user name ';
|
||||
}
|
||||
return null;
|
||||
},
|
||||
inputFormatters: [
|
||||
// LengthLimitingTextInputFormatter(20),
|
||||
RemoveEmojiInputFormatter(),
|
||||
FilteringTextInputFormatter.allow(RegExp('[a-zA-Z ]'))
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(10.h),
|
||||
text16400white('Date of birth'),
|
||||
sizedBoxHeight(10.h),
|
||||
CustomTextFormField(
|
||||
textEditingController: datecontroller,
|
||||
readonly: true,
|
||||
onTap: () {
|
||||
_selectDate(context);
|
||||
},
|
||||
// texttype: TextInputType.text,
|
||||
hintText: "Enter your date of birth",
|
||||
leadingIcon:
|
||||
// const Icon(Icons.mail_outline),
|
||||
Image.asset(
|
||||
width: 22.w,
|
||||
height: 17.h,
|
||||
'assets/images/png/dateimage.png',
|
||||
),
|
||||
// validatorText: "Enter date of birth",
|
||||
validator: (value) {
|
||||
if (value!.isEmpty) {
|
||||
return 'Enter your date of birth';
|
||||
}
|
||||
return null;
|
||||
},
|
||||
),
|
||||
sizedBoxHeight(10.h),
|
||||
text16400white('Gender'),
|
||||
sizedBoxHeight(10.h),
|
||||
CustomDropDownWidgetSignup(
|
||||
header: 'Select gender',
|
||||
title: '',
|
||||
listData: _gender,
|
||||
onItemSelected: _onItemSelected,
|
||||
leadingImage:
|
||||
Image.asset('assets/images/png/gendericon.png'),
|
||||
),
|
||||
sizedBoxHeight(10.h),
|
||||
Row(
|
||||
children: [
|
||||
text16400white('Location'),
|
||||
sizedBoxWidth(5.w),
|
||||
Image.asset('assets/images/png/informationicon.png')
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(10.h),
|
||||
CustomTextFormField(
|
||||
textEditingController: locationcontroller,
|
||||
texttype: TextInputType.text,
|
||||
hintText: "Enter your location",
|
||||
leadingIcon:
|
||||
// const Icon(Icons.mail_outline),
|
||||
Image.asset(
|
||||
width: 22.w,
|
||||
height: 17.h,
|
||||
'assets/images/png/location.png',
|
||||
),
|
||||
// validatorText: "Enter your location",
|
||||
validator: (value) {
|
||||
if (value!.isEmpty) {
|
||||
return 'Enter your location ';
|
||||
}
|
||||
return null;
|
||||
},
|
||||
inputFormatters: [
|
||||
// LengthLimitingTextInputFormatter(20),
|
||||
RemoveEmojiInputFormatter(),
|
||||
FilteringTextInputFormatter.allow(RegExp('[a-zA-Z ]'))
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
CustomButton(
|
||||
text: "Continue",
|
||||
onPressed: () {
|
||||
if (
|
||||
// isValid!
|
||||
// fullNameController.text.isBlank! &&
|
||||
// userNameController.text.isBlank! &&
|
||||
// datecontroller.text.isBlank! &&
|
||||
// _selectedgendertype.isEmpty &&
|
||||
// locationcontroller.text.isBlank! &&
|
||||
// editProfileImage.profilePicPath.value ==
|
||||
// ''
|
||||
fullNameController.text.isBlank! ||
|
||||
userNameController.text.isBlank! ||
|
||||
datecontroller.text.isBlank! ||
|
||||
_selectedgendertype.isEmpty ||
|
||||
locationcontroller.text.isBlank! ||
|
||||
editProfileImage.profilePicPath.value ==
|
||||
'') {
|
||||
utils.showToast('Please fill all fields');
|
||||
} else {
|
||||
TellusUploadData();
|
||||
}
|
||||
// if (_selectedgendertype.isNotEmpty) {
|
||||
// Get.toNamed(RouteName.individualprofilestep1);
|
||||
|
||||
// // Get.to(() => BusinessPage());
|
||||
// } else {
|
||||
// // Handle case where no selection is made
|
||||
// utils.showToast('Please select an gender type');
|
||||
// }
|
||||
}),
|
||||
sizedBoxHeight(30.h),
|
||||
// const Spacer(
|
||||
// flex: 3,
|
||||
// )
|
||||
],
|
||||
),
|
||||
),
|
||||
])
|
||||
],
|
||||
)),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,21 +90,16 @@ class _SignupScreenState extends State<SignupScreen> {
|
||||
|
||||
String selectedCategory = _selectedAccountType;
|
||||
|
||||
Get.toNamed(RouteName.verifyusercreen,
|
||||
arguments:
|
||||
{
|
||||
"emailid" : emailidcontroller.text,
|
||||
"password" : passwordController.text,
|
||||
"accounttype" : selectedCategory,
|
||||
'accountypenumber' : accountTypeValue
|
||||
|
||||
}
|
||||
|
||||
);
|
||||
Get.toNamed(RouteName.verifyusercreen, arguments: {
|
||||
"emailid": emailidcontroller.text,
|
||||
"password": passwordController.text,
|
||||
"accounttype": selectedCategory,
|
||||
'accountypenumber': accountTypeValue
|
||||
});
|
||||
|
||||
// if (selectedCategory == "Individual") {
|
||||
// Get.toNamed(RouteName.verifyusercreen,
|
||||
// arguments:
|
||||
// arguments:
|
||||
// {
|
||||
// "emailid" : emailidcontroller.text,
|
||||
// "password" : passwordController.text,
|
||||
@@ -112,11 +107,11 @@ class _SignupScreenState extends State<SignupScreen> {
|
||||
// 'accountypenumber' : accountTypeValue
|
||||
|
||||
// }
|
||||
|
||||
|
||||
// );
|
||||
// } else if (selectedCategory == "Individual") {
|
||||
// Get.toNamed(RouteName.verifyusercreen,
|
||||
// arguments:
|
||||
// Get.toNamed(RouteName.verifyusercreen,
|
||||
// arguments:
|
||||
// {
|
||||
// "emailid" : emailidcontroller.text,
|
||||
// "password" : passwordController.text,
|
||||
@@ -282,7 +277,7 @@ class _SignupScreenState extends State<SignupScreen> {
|
||||
children: [
|
||||
SizedBox(
|
||||
width: 320.w,
|
||||
height: 42.h,
|
||||
// height: 42.h,
|
||||
child: Text.rich(
|
||||
TextSpan(
|
||||
children: [
|
||||
@@ -405,16 +400,18 @@ class _SignupScreenState extends State<SignupScreen> {
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.verifygoogleapplepage);
|
||||
Get.toNamed(
|
||||
RouteName.verifygoogleapplepage);
|
||||
},
|
||||
child: Container(
|
||||
width: 55,
|
||||
height: 55,
|
||||
decoration: ShapeDecoration(
|
||||
gradient: LinearGradient(
|
||||
begin:
|
||||
const Alignment(0.71, -0.70),
|
||||
end: const Alignment(-0.71, 0.7),
|
||||
begin: const Alignment(
|
||||
0.71, -0.70),
|
||||
end:
|
||||
const Alignment(-0.71, 0.7),
|
||||
colors: [
|
||||
Colors.white.withOpacity(
|
||||
0.07999999821186066),
|
||||
@@ -435,17 +432,18 @@ class _SignupScreenState extends State<SignupScreen> {
|
||||
const Spacer(),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.verifygoogleapplepage);
|
||||
|
||||
Get.toNamed(
|
||||
RouteName.verifygoogleapplepage);
|
||||
},
|
||||
child: Container(
|
||||
width: 55,
|
||||
height: 55,
|
||||
decoration: ShapeDecoration(
|
||||
gradient: LinearGradient(
|
||||
begin:
|
||||
const Alignment(0.71, -0.70),
|
||||
end: const Alignment(-0.71, 0.7),
|
||||
begin: const Alignment(
|
||||
0.71, -0.70),
|
||||
end:
|
||||
const Alignment(-0.71, 0.7),
|
||||
colors: [
|
||||
Colors.white.withOpacity(
|
||||
0.07999999821186066),
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
@@ -21,7 +20,6 @@ import 'package:regroup/resources/routes/route_name.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:timer_button/timer_button.dart';
|
||||
|
||||
|
||||
class VerifyuserScreenState extends StatefulWidget {
|
||||
const VerifyuserScreenState({super.key});
|
||||
|
||||
@@ -69,11 +67,26 @@ class _VerifyuserScreenStateState extends State<VerifyuserScreenState> {
|
||||
}
|
||||
|
||||
return utils.showToast(data.message);
|
||||
} else {
|
||||
Get.back();
|
||||
print("verification not done");
|
||||
return utils.showToast(data.message);
|
||||
}
|
||||
}
|
||||
else {
|
||||
// btnController.error();
|
||||
// btnController.reset();
|
||||
Get.snackbar(
|
||||
"Error!",
|
||||
data.data['message'],
|
||||
duration: Duration(seconds: 2),
|
||||
colorText: Colors.white,
|
||||
backgroundColor: Colors.red,
|
||||
margin: EdgeInsets.all(8),
|
||||
snackStyle: SnackStyle.FLOATING,
|
||||
snackPosition: SnackPosition.BOTTOM,
|
||||
);
|
||||
}
|
||||
// else {
|
||||
// Get.back();
|
||||
// print("verification not done");
|
||||
// return utils.showToast(data.message);
|
||||
// }
|
||||
}
|
||||
|
||||
Uploadataresendotp() async {
|
||||
@@ -95,7 +108,6 @@ class _VerifyuserScreenStateState extends State<VerifyuserScreenState> {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
@@ -153,9 +165,7 @@ class _VerifyuserScreenStateState extends State<VerifyuserScreenState> {
|
||||
text22400white('Check your email'),
|
||||
sizedBoxHeight(10.h),
|
||||
text14400white(
|
||||
|
||||
'Enter the verification code that we sent to $email'),
|
||||
|
||||
sizedBoxHeight(40.h),
|
||||
text16400white('Enter code'),
|
||||
sizedBoxHeight(20.h),
|
||||
@@ -241,7 +251,6 @@ class _VerifyuserScreenStateState extends State<VerifyuserScreenState> {
|
||||
CustomButton(
|
||||
text: 'Continue',
|
||||
onPressed: () {
|
||||
|
||||
if (pincode.text.isEmpty) {
|
||||
utils.showToast('Pin field is empty');
|
||||
} else if (pincode.text.length < 4) {
|
||||
@@ -258,7 +267,6 @@ class _VerifyuserScreenStateState extends State<VerifyuserScreenState> {
|
||||
// Get.toNamed(RouteName.tellusbusinessscreen);
|
||||
// }
|
||||
}
|
||||
|
||||
}),
|
||||
const Spacer(
|
||||
// flex: 2,
|
||||
@@ -270,4 +278,4 @@ class _VerifyuserScreenStateState extends State<VerifyuserScreenState> {
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,8 @@ class ForgotPassAPI {
|
||||
//Map<String, dynamic> responseData = jsonDecode(response.data);
|
||||
if (response.data['status'] == "success") {
|
||||
return ResponseData<dynamic>(
|
||||
response.data['message'], ResponseStatus.SUCCESS,data: response.data);
|
||||
response.data['message'], ResponseStatus.SUCCESS,
|
||||
data: response.data);
|
||||
} else {
|
||||
return ResponseData<dynamic>(
|
||||
response.data['message'], ResponseStatus.FAILED);
|
||||
@@ -50,4 +51,3 @@ class ForgotPassAPI {
|
||||
return response;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user