BIN
assets/images/png/whatsapp.png
Normal file
BIN
assets/images/png/whatsapp.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.1 KiB |
@@ -3,6 +3,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:traderscircuit/Utils/text.dart';
|
||||
|
||||
class CommonAppbar extends StatelessWidget implements PreferredSizeWidget {
|
||||
@override
|
||||
@@ -10,6 +11,7 @@ class CommonAppbar extends StatelessWidget implements PreferredSizeWidget {
|
||||
const CommonAppbar(
|
||||
{Key? key,
|
||||
required this.titleTxt,
|
||||
this.suffixIcon,
|
||||
this.showLeading = true,
|
||||
this.customBack,
|
||||
this.backPageName = '',
|
||||
@@ -17,6 +19,7 @@ class CommonAppbar extends StatelessWidget implements PreferredSizeWidget {
|
||||
: super(key: key);
|
||||
|
||||
final String titleTxt;
|
||||
final String? suffixIcon;
|
||||
final bool? showLeading;
|
||||
final bool? customBack;
|
||||
final String? backPageName;
|
||||
@@ -50,20 +53,35 @@ class CommonAppbar extends StatelessWidget implements PreferredSizeWidget {
|
||||
centerTitle: false,
|
||||
titlePadding: EdgeInsets.all(0),
|
||||
title: Padding(
|
||||
padding: EdgeInsets.only(left: 16.w),
|
||||
padding: EdgeInsets.only(left: 16.w, right: 16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: [
|
||||
Text(
|
||||
titleTxt,
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 24.sp,
|
||||
fontWeight: FontWeight.w500,
|
||||
fontFamily: 'manrope'),
|
||||
maxLines: 2,
|
||||
softWrap: true,
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
titleTxt,
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 24.sp,
|
||||
fontWeight: FontWeight.w500,
|
||||
fontFamily: 'manrope'),
|
||||
maxLines: 2,
|
||||
softWrap: true,
|
||||
),
|
||||
Text(
|
||||
suffixIcon == null ? "" : "skip",
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 18.sp,
|
||||
fontWeight: FontWeight.w400,
|
||||
fontFamily: 'manrope'),
|
||||
maxLines: 2,
|
||||
softWrap: true,
|
||||
),
|
||||
],
|
||||
),
|
||||
// newTextfield(
|
||||
// FontWeight.w400, 0)
|
||||
|
||||
@@ -18,6 +18,8 @@ class CustomTextFormField extends StatefulWidget {
|
||||
this.texttype,
|
||||
this.inputFormatters,
|
||||
this.onInput,
|
||||
this.onTap,
|
||||
this.suffixIcon,
|
||||
}) : super(key: key);
|
||||
|
||||
final dynamic validator;
|
||||
@@ -34,6 +36,8 @@ class CustomTextFormField extends StatefulWidget {
|
||||
final TextInputType? texttype;
|
||||
final dynamic inputFormatters;
|
||||
final Function(String)? onInput;
|
||||
final VoidCallback? onTap;
|
||||
final Widget? suffixIcon;
|
||||
|
||||
@override
|
||||
State<CustomTextFormField> createState() => _CustomTextFormFieldState();
|
||||
@@ -80,6 +84,7 @@ class _CustomTextFormFieldState extends State<CustomTextFormField> {
|
||||
cursorColor: Colors.red,
|
||||
initialValue: widget.value,
|
||||
readOnly: widget.readonly,
|
||||
onTap: widget.onTap,
|
||||
enabled: widget.enabled,
|
||||
enableInteractiveSelection: false,
|
||||
maxLines: widget.maxlines,
|
||||
@@ -117,7 +122,9 @@ class _CustomTextFormFieldState extends State<CustomTextFormField> {
|
||||
],
|
||||
),
|
||||
)
|
||||
: null,
|
||||
: widget.suffixIcon == null
|
||||
? null
|
||||
: widget.suffixIcon!,
|
||||
border: InputBorder.none,
|
||||
contentPadding: EdgeInsets.symmetric(horizontal: 10),
|
||||
),
|
||||
|
||||
@@ -177,12 +177,26 @@ Widget text14W300(String text) {
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Widget text14W400(String text) { return Text(
|
||||
text,
|
||||
style: TextStyle(
|
||||
fontSize: 14.sp,
|
||||
color: Colors.white,
|
||||
|
||||
fontWeight: FontWeight.w400,
|
||||
fontFamily: 'manrope'),
|
||||
);
|
||||
}
|
||||
|
||||
Widget text14W500(String text) {
|
||||
|
||||
return Text(
|
||||
text,
|
||||
style: TextStyle(
|
||||
fontSize: 14.sp,
|
||||
color: Colors.white,
|
||||
|
||||
fontWeight: FontWeight.w500,
|
||||
fontFamily: 'manrope'),
|
||||
);
|
||||
@@ -194,11 +208,13 @@ Widget text16W400_DADADA(String text) {
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Color(0xFFDADADA),
|
||||
|
||||
fontWeight: FontWeight.w400,
|
||||
fontFamily: 'manrope'),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Widget text14W400_979797(String text) {
|
||||
return Text(
|
||||
text,
|
||||
@@ -242,3 +258,4 @@ Widget text14W500_black(String text) {
|
||||
fontFamily: 'manrope'),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -24,4 +24,10 @@ class RouteName {
|
||||
static const String faceid = '/faceid';
|
||||
static const String fingerprint = '/fingerprint';
|
||||
static const String pin = '/pin';
|
||||
|
||||
//add details
|
||||
static const String adddetails = '/adddetails';
|
||||
|
||||
//kyc
|
||||
static const String kyc = '/kyc';
|
||||
}
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
import 'package:get/get.dart';
|
||||
import 'package:traderscircuit/Utils/Common/noInternet.dart';
|
||||
import 'package:traderscircuit/resources/routes/route_name.dart';
|
||||
|
||||
import 'package:traderscircuit/view/login/AddDetails.dart';
|
||||
import 'package:traderscircuit/view/login/Kyc.dart';
|
||||
|
||||
import 'package:traderscircuit/view/MainScreen/HomeScreen.dart';
|
||||
import 'package:traderscircuit/view/MainScreen/MainScreen.dart';
|
||||
import 'package:traderscircuit/view/MainScreen/ShortTrade.dart';
|
||||
import 'package:traderscircuit/view/Sidemenu/Sidemenu.dart';
|
||||
|
||||
import 'package:traderscircuit/view/login/LoginScreen.dart';
|
||||
import 'package:traderscircuit/view/login/VerifyOtp.dart';
|
||||
import 'package:traderscircuit/view/onBoarding/splashScreen.dart';
|
||||
@@ -84,5 +89,17 @@ class AppRoutes {
|
||||
name: RouteName.pin,
|
||||
page: () => const Pin(),
|
||||
),
|
||||
|
||||
//add details
|
||||
GetPage(
|
||||
name: RouteName.adddetails,
|
||||
page: () => const AddDetails(),
|
||||
),
|
||||
|
||||
//kyc
|
||||
GetPage(
|
||||
name: RouteName.kyc,
|
||||
page: () => const Kyc(),
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
213
lib/view/login/AddDetails.dart
Normal file
213
lib/view/login/AddDetails.dart
Normal file
@@ -0,0 +1,213 @@
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:traderscircuit/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:traderscircuit/Utils/Common/CustomTextFormField.dart';
|
||||
import 'package:traderscircuit/Utils/Common/commonBotton.dart';
|
||||
import 'package:traderscircuit/Utils/text.dart';
|
||||
import 'package:traderscircuit/resources/routes/route_name.dart';
|
||||
import 'package:traderscircuit/view/onBoarding/splashScreen1.dart';
|
||||
|
||||
class AddDetails extends StatefulWidget {
|
||||
const AddDetails({super.key});
|
||||
|
||||
@override
|
||||
State<AddDetails> createState() => _AddDetailsState();
|
||||
}
|
||||
|
||||
class _AddDetailsState extends State<AddDetails> {
|
||||
TextEditingController pincode = TextEditingController();
|
||||
TextEditingController dobcontroller = TextEditingController();
|
||||
Color primaryColor = Colors.transparent.withOpacity(0.2);
|
||||
Color secondaryColor = Colors.grey.shade800;
|
||||
|
||||
bool isSwitched = false;
|
||||
|
||||
void _toggleSwitch(bool value) {
|
||||
setState(() {
|
||||
isSwitched = value;
|
||||
});
|
||||
}
|
||||
|
||||
DateTime timebackPressed = DateTime.now();
|
||||
|
||||
Future<void> _selectDate(BuildContext context) async {
|
||||
final DateTime? picked = await showDatePicker(
|
||||
context: context,
|
||||
initialDate: DateTime.now(),
|
||||
firstDate: DateTime(1900),
|
||||
lastDate: DateTime.now(),
|
||||
builder: (context, child) {
|
||||
return Theme(
|
||||
data: Theme.of(context).copyWith(
|
||||
colorScheme: ColorScheme.light(
|
||||
surface: Colors.black,
|
||||
onSurface: Colors.white,
|
||||
primary: Color(0xff9A0000),
|
||||
onPrimary: Colors.white,
|
||||
),
|
||||
textButtonTheme: TextButtonThemeData(
|
||||
style: TextButton.styleFrom(
|
||||
foregroundColor: Colors.white,
|
||||
),
|
||||
),
|
||||
),
|
||||
child: child!);
|
||||
});
|
||||
|
||||
if (picked != null && picked != DateTime.now()) {
|
||||
setState(() {
|
||||
dobcontroller.text = "${picked.toLocal()}".split(' ')[0];
|
||||
final birthDate = DateTime(
|
||||
picked.year,
|
||||
picked.month,
|
||||
picked.day,
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: CommonAppbar(titleTxt: "Add Details"),
|
||||
backgroundColor: Colors.black,
|
||||
extendBody: true,
|
||||
body: Stack(
|
||||
children: [
|
||||
CommonBlurLeft(),
|
||||
CommonBlurRight(),
|
||||
Stack(
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16, vertical: 16),
|
||||
child: ListView(
|
||||
physics: BouncingScrollPhysics(),
|
||||
// mainAxisAlignment: MainAxisAlignment.start,
|
||||
// crossAxisAlignment: CrossAxisAlignment.start,
|
||||
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
text18W400("Full Name"),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 15.h,
|
||||
),
|
||||
CustomTextFormField(),
|
||||
SizedBox(
|
||||
height: 30.h,
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
text18W400("Email Address"),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 15.h,
|
||||
),
|
||||
CustomTextFormField(),
|
||||
SizedBox(
|
||||
height: 30.h,
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
text18W400("Phone Number"),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 15.h,
|
||||
),
|
||||
CustomTextFormField(),
|
||||
SizedBox(
|
||||
height: 30.h,
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
text18W400("Date Of Birth"),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 15.h,
|
||||
),
|
||||
CustomTextFormField(
|
||||
suffixIcon: Icon(
|
||||
Icons.calendar_month_outlined,
|
||||
color: Colors.white,
|
||||
),
|
||||
readonly: true,
|
||||
onTap: () {
|
||||
_selectDate(context);
|
||||
},
|
||||
),
|
||||
SizedBox(
|
||||
height: 30.h,
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
text18W400("City"),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 15.h,
|
||||
),
|
||||
CustomTextFormField(),
|
||||
SizedBox(
|
||||
height: 40.h,
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
Image.asset(
|
||||
"assets/images/png/whatsapp.png",
|
||||
height: 34.h,
|
||||
width: 34.w,
|
||||
),
|
||||
SizedBox(
|
||||
width: 10.w,
|
||||
),
|
||||
text18W600("Get Updates on WhatsApp"),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: [
|
||||
Switch(
|
||||
value: isSwitched,
|
||||
onChanged: _toggleSwitch,
|
||||
activeTrackColor: Colors.green,
|
||||
activeColor: Colors.white,
|
||||
inactiveTrackColor: Colors.white,
|
||||
inactiveThumbColor: Colors.black,
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 70.h,
|
||||
),
|
||||
CommonBtn(
|
||||
text: "Next",
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.kyc);
|
||||
},
|
||||
),
|
||||
SizedBox(
|
||||
height: 10.h,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
388
lib/view/login/Kyc.dart
Normal file
388
lib/view/login/Kyc.dart
Normal file
@@ -0,0 +1,388 @@
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:glassmorphism/glassmorphism.dart';
|
||||
import 'package:traderscircuit/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:traderscircuit/Utils/Common/CustomTextFormField.dart';
|
||||
import 'package:traderscircuit/Utils/Common/commonBotton.dart';
|
||||
import 'package:traderscircuit/Utils/text.dart';
|
||||
import 'package:traderscircuit/view/onBoarding/splashScreen1.dart';
|
||||
|
||||
class Kyc extends StatefulWidget {
|
||||
const Kyc({super.key});
|
||||
|
||||
@override
|
||||
State<Kyc> createState() => _KycState();
|
||||
}
|
||||
|
||||
class _KycState extends State<Kyc> {
|
||||
TextEditingController pincode = TextEditingController();
|
||||
TextEditingController dobcontroller = TextEditingController();
|
||||
Color primaryColor = Colors.transparent.withOpacity(0.2);
|
||||
Color secondaryColor = Colors.grey.shade800;
|
||||
|
||||
bool isSwitched = false;
|
||||
|
||||
void _toggleSwitch(bool value) {
|
||||
setState(() {
|
||||
isSwitched = value;
|
||||
});
|
||||
}
|
||||
|
||||
DateTime timebackPressed = DateTime.now();
|
||||
|
||||
Future<void> _selectDate(BuildContext context) async {
|
||||
final DateTime? picked = await showDatePicker(
|
||||
context: context,
|
||||
initialDate: DateTime.now(),
|
||||
firstDate: DateTime(1900),
|
||||
lastDate: DateTime.now(),
|
||||
builder: (context, child) {
|
||||
return Theme(
|
||||
data: Theme.of(context).copyWith(
|
||||
colorScheme: ColorScheme.light(
|
||||
surface: Colors.black,
|
||||
onSurface: Colors.white,
|
||||
primary: Color(0xff9A0000),
|
||||
onPrimary: Colors.white,
|
||||
),
|
||||
textButtonTheme: TextButtonThemeData(
|
||||
style: TextButton.styleFrom(
|
||||
foregroundColor: Colors.white,
|
||||
),
|
||||
),
|
||||
),
|
||||
child: child!);
|
||||
});
|
||||
|
||||
if (picked != null && picked != DateTime.now()) {
|
||||
setState(() {
|
||||
dobcontroller.text = "${picked.toLocal()}".split(' ')[0];
|
||||
final birthDate = DateTime(
|
||||
picked.year,
|
||||
picked.month,
|
||||
picked.day,
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "KYC",
|
||||
suffixIcon: "skip",
|
||||
),
|
||||
backgroundColor: Colors.black,
|
||||
extendBody: true,
|
||||
body: Stack(
|
||||
children: [
|
||||
CommonBlurLeft(),
|
||||
CommonBlurRight(),
|
||||
Stack(
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16, vertical: 16),
|
||||
child: ListView(
|
||||
physics: BouncingScrollPhysics(),
|
||||
// mainAxisAlignment: MainAxisAlignment.start,
|
||||
// crossAxisAlignment: CrossAxisAlignment.start,
|
||||
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
text18W400("Full Name"),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 15.h,
|
||||
),
|
||||
CustomTextFormField(),
|
||||
SizedBox(
|
||||
height: 30.h,
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
text18W400("Email Address"),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 15.h,
|
||||
),
|
||||
CustomTextFormField(),
|
||||
SizedBox(
|
||||
height: 30.h,
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
text18W400("Phone Number"),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 15.h,
|
||||
),
|
||||
CustomTextFormField(),
|
||||
SizedBox(
|
||||
height: 30.h,
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
text18W400("Date Of Birth"),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 15.h,
|
||||
),
|
||||
CustomTextFormField(
|
||||
suffixIcon: Icon(
|
||||
Icons.calendar_month_outlined,
|
||||
color: Colors.white,
|
||||
),
|
||||
readonly: true,
|
||||
onTap: () {
|
||||
_selectDate(context);
|
||||
},
|
||||
),
|
||||
SizedBox(
|
||||
height: 30.h,
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
text18W400("City"),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 15.h,
|
||||
),
|
||||
CustomTextFormField(),
|
||||
SizedBox(
|
||||
height: 30.h,
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
text18W400("Upload pan card image"),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 15.h,
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
GlassmorphicContainer(
|
||||
width: 170.w,
|
||||
height: 105.h,
|
||||
borderRadius: 8,
|
||||
linearGradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
Color(0xFFffffff).withOpacity(0.1),
|
||||
Color(0xFFFFFFFF).withOpacity(0.05),
|
||||
],
|
||||
stops: [
|
||||
0.1,
|
||||
1,
|
||||
]),
|
||||
border: 0.8,
|
||||
blur: 10,
|
||||
borderGradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
Color(0xff9A0000).withOpacity(0.5),
|
||||
Color(0xFFffffff).withOpacity(0.5),
|
||||
],
|
||||
),
|
||||
child: Center(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Icon(
|
||||
Icons.file_upload_outlined,
|
||||
size: 42,
|
||||
color: Colors.white,
|
||||
),
|
||||
SizedBox(
|
||||
height: 10.h,
|
||||
),
|
||||
text14W400("Front Side")
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
GlassmorphicContainer(
|
||||
width: 170.w,
|
||||
height: 105.h,
|
||||
borderRadius: 8,
|
||||
linearGradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
Color(0xFFffffff).withOpacity(0.1),
|
||||
Color(0xFFFFFFFF).withOpacity(0.05),
|
||||
],
|
||||
stops: [
|
||||
0.1,
|
||||
1,
|
||||
]),
|
||||
border: 0.8,
|
||||
blur: 10,
|
||||
borderGradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
Color(0xff9A0000).withOpacity(0.5),
|
||||
Color(0xFFffffff).withOpacity(0.5),
|
||||
],
|
||||
),
|
||||
child: Center(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Icon(
|
||||
Icons.file_upload_outlined,
|
||||
size: 42,
|
||||
color: Colors.white,
|
||||
),
|
||||
SizedBox(
|
||||
height: 10.h,
|
||||
),
|
||||
text14W400("Back Side")
|
||||
],
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 30.h,
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
text18W400("Aadhaar Number"),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 15.h,
|
||||
),
|
||||
CustomTextFormField(),
|
||||
SizedBox(
|
||||
height: 30.h,
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
text18W400("Upload Aadhaar card image"),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 15.h,
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
GlassmorphicContainer(
|
||||
width: 170.w,
|
||||
height: 105.h,
|
||||
borderRadius: 8,
|
||||
linearGradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
Color(0xFFffffff).withOpacity(0.1),
|
||||
Color(0xFFFFFFFF).withOpacity(0.05),
|
||||
],
|
||||
stops: [
|
||||
0.1,
|
||||
1,
|
||||
]),
|
||||
border: 0.8,
|
||||
blur: 10,
|
||||
borderGradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
Color(0xff9A0000).withOpacity(0.5),
|
||||
Color(0xFFffffff).withOpacity(0.5),
|
||||
],
|
||||
),
|
||||
child: Center(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Icon(
|
||||
Icons.file_upload_outlined,
|
||||
size: 42,
|
||||
color: Colors.white,
|
||||
),
|
||||
SizedBox(
|
||||
height: 10.h,
|
||||
),
|
||||
text14W400("Front Side")
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
GlassmorphicContainer(
|
||||
width: 170.w,
|
||||
height: 105.h,
|
||||
borderRadius: 8,
|
||||
linearGradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
Color(0xFFffffff).withOpacity(0.1),
|
||||
Color(0xFFFFFFFF).withOpacity(0.05),
|
||||
],
|
||||
stops: [
|
||||
0.1,
|
||||
1,
|
||||
]),
|
||||
border: 0.8,
|
||||
blur: 10,
|
||||
borderGradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
Color(0xff9A0000).withOpacity(0.5),
|
||||
Color(0xFFffffff).withOpacity(0.5),
|
||||
],
|
||||
),
|
||||
child: Center(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Icon(
|
||||
Icons.file_upload_outlined,
|
||||
size: 42,
|
||||
color: Colors.white,
|
||||
),
|
||||
SizedBox(
|
||||
height: 10.h,
|
||||
),
|
||||
text14W400("Back Side")
|
||||
],
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 70.h,
|
||||
),
|
||||
CommonBtn(text: "Next"),
|
||||
SizedBox(
|
||||
height: 10.h,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -37,9 +37,6 @@ class _FaceidState extends State<Faceid> {
|
||||
// crossAxisAlignment: CrossAxisAlignment.start,
|
||||
|
||||
children: [
|
||||
SizedBox(
|
||||
height: 10.h,
|
||||
),
|
||||
text18W400("Quickly set up Face ID for secure access."),
|
||||
SizedBox(
|
||||
height: 180.h,
|
||||
@@ -56,7 +53,7 @@ class _FaceidState extends State<Faceid> {
|
||||
CommonBtn(
|
||||
text: "Setup",
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.loginscreen);
|
||||
Get.toNamed(RouteName.adddetails);
|
||||
},
|
||||
)
|
||||
],
|
||||
|
||||
@@ -37,9 +37,6 @@ class _FingerprintState extends State<Fingerprint> {
|
||||
// crossAxisAlignment: CrossAxisAlignment.start,
|
||||
|
||||
children: [
|
||||
SizedBox(
|
||||
height: 10.h,
|
||||
),
|
||||
text18W400("Quickly set up Fingerprint for secure access."),
|
||||
SizedBox(
|
||||
height: 180.h,
|
||||
@@ -56,7 +53,7 @@ class _FingerprintState extends State<Fingerprint> {
|
||||
CommonBtn(
|
||||
text: "Setup",
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.loginscreen);
|
||||
Get.toNamed(RouteName.adddetails);
|
||||
},
|
||||
)
|
||||
],
|
||||
|
||||
@@ -22,7 +22,7 @@ class _PinState extends State<Pin> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: CommonAppbar(titleTxt: "Verify your number"),
|
||||
appBar: CommonAppbar(titleTxt: "Secure your access"),
|
||||
backgroundColor: Colors.black,
|
||||
extendBody: true,
|
||||
body: Stack(
|
||||
@@ -39,75 +39,67 @@ class _PinState extends State<Pin> {
|
||||
// crossAxisAlignment: CrossAxisAlignment.start,
|
||||
|
||||
children: [
|
||||
SizedBox(
|
||||
height: 10.h,
|
||||
),
|
||||
text18W400("Quickly set up pin for secure access."),
|
||||
SizedBox(
|
||||
height: 180.h,
|
||||
height: 60.h,
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Container(
|
||||
child: PinCodeTextField(
|
||||
showCursor: true,
|
||||
cursorColor: Colors.white,
|
||||
textStyle:
|
||||
TextStyle(fontSize: 18.sp, color: Colors.white),
|
||||
errorTextSpace: 22,
|
||||
validator: (value) {
|
||||
if (value != null && value.isEmpty) {
|
||||
return "Please Enter verification code";
|
||||
} else if (value != null && value.length < 4) {
|
||||
return "OTP length should be atleast 4";
|
||||
}
|
||||
return null;
|
||||
},
|
||||
keyboardType: TextInputType.number,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
length: 4,
|
||||
obscureText: false,
|
||||
animationType: AnimationType.fade,
|
||||
pinTheme: PinTheme(
|
||||
selectedFillColor: primaryColor,
|
||||
inactiveFillColor: primaryColor,
|
||||
activeFillColor: primaryColor,
|
||||
inactiveColor: secondaryColor,
|
||||
activeColor: secondaryColor,
|
||||
selectedColor: secondaryColor,
|
||||
shape: PinCodeFieldShape.box,
|
||||
borderRadius: BorderRadius.circular(15),
|
||||
fieldHeight: 60.h,
|
||||
fieldWidth: 60.w,
|
||||
),
|
||||
animationDuration: Duration(milliseconds: 300),
|
||||
enableActiveFill: true,
|
||||
controller: pin,
|
||||
onCompleted: (v) {
|
||||
print("Completed");
|
||||
},
|
||||
onChanged: (value) {
|
||||
print(value);
|
||||
setState(() {});
|
||||
},
|
||||
beforeTextPaste: (text) {
|
||||
print("Allowing to paste $text");
|
||||
|
||||
return true;
|
||||
},
|
||||
appContext: context,
|
||||
),
|
||||
Container(
|
||||
child: PinCodeTextField(
|
||||
showCursor: true,
|
||||
cursorColor: Colors.white,
|
||||
textStyle:
|
||||
TextStyle(fontSize: 18.sp, color: Colors.white),
|
||||
errorTextSpace: 22,
|
||||
validator: (value) {
|
||||
if (value != null && value.isEmpty) {
|
||||
return "Please Enter verification code";
|
||||
} else if (value != null && value.length < 4) {
|
||||
return "OTP length should be atleast 4";
|
||||
}
|
||||
return null;
|
||||
},
|
||||
keyboardType: TextInputType.number,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
length: 4,
|
||||
obscureText: false,
|
||||
animationType: AnimationType.fade,
|
||||
pinTheme: PinTheme(
|
||||
selectedFillColor: primaryColor,
|
||||
inactiveFillColor: primaryColor,
|
||||
activeFillColor: primaryColor,
|
||||
inactiveColor: secondaryColor,
|
||||
activeColor: secondaryColor,
|
||||
selectedColor: secondaryColor,
|
||||
shape: PinCodeFieldShape.box,
|
||||
borderRadius: BorderRadius.circular(15),
|
||||
fieldHeight: 60.h,
|
||||
fieldWidth: 60.w,
|
||||
),
|
||||
],
|
||||
animationDuration: Duration(milliseconds: 300),
|
||||
enableActiveFill: true,
|
||||
controller: pin,
|
||||
onCompleted: (v) {
|
||||
print("Completed");
|
||||
},
|
||||
onChanged: (value) {
|
||||
print(value);
|
||||
setState(() {});
|
||||
},
|
||||
beforeTextPaste: (text) {
|
||||
print("Allowing to paste $text");
|
||||
|
||||
return true;
|
||||
},
|
||||
appContext: context,
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 180.h,
|
||||
height: 200.h,
|
||||
),
|
||||
CommonBtn(
|
||||
text: "Setup",
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.loginscreen);
|
||||
Get.toNamed(RouteName.adddetails);
|
||||
},
|
||||
)
|
||||
],
|
||||
|
||||
@@ -22,7 +22,7 @@ class _SecureAccessState extends State<SecureAccess> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: CommonAppbar(titleTxt: "Secure ypur access"),
|
||||
appBar: CommonAppbar(titleTxt: "Secure your access"),
|
||||
backgroundColor: Colors.black,
|
||||
extendBody: true,
|
||||
body: Stack(
|
||||
@@ -183,7 +183,9 @@ class _SecureAccessState extends State<SecureAccess> {
|
||||
height: 20.h,
|
||||
),
|
||||
InkWell(
|
||||
onTap: () {},
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.pin);
|
||||
},
|
||||
child: GlassmorphicContainer(
|
||||
width: double.infinity,
|
||||
height: 80.h,
|
||||
@@ -250,9 +252,9 @@ class _SecureAccessState extends State<SecureAccess> {
|
||||
height: 250.h,
|
||||
),
|
||||
CommonBtn(
|
||||
text: "Verify OTP",
|
||||
text: "Setup Later",
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.loginscreen);
|
||||
Get.toNamed(RouteName.adddetails);
|
||||
},
|
||||
)
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user