conflict resolve

This commit is contained in:
priyanka
2024-03-21 00:17:38 -07:00
21 changed files with 1222 additions and 96 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@@ -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,16 +11,22 @@ class CommonAppbar extends StatelessWidget implements PreferredSizeWidget {
const CommonAppbar(
{Key? key,
required this.titleTxt,
this.suffixIcon,
this.showLeading = true,
this.customBack,
this.backPageName = '',
this.customActionWidget,
this.onCustomActionPressed,
this.height = 105})
: super(key: key);
final String titleTxt;
final String? suffixIcon;
final bool? showLeading;
final bool? customBack;
final String? backPageName;
final Widget? customActionWidget;
final VoidCallback? onCustomActionPressed;
final double height;
@override
Widget build(BuildContext context) {
@@ -50,27 +57,55 @@ 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,
),
],
),
// newTextfield(
// FontWeight.w400, 0)
],
),
),
),
actions: [
// if (calendarWidget == true)
// InkWell(
// onTap: onCustomActionPressed,
// child: Padding(
// padding: EdgeInsets.only(right: 14.w),
// child: Icon(
// Icons.calendar_month_outlined,
// color: Color(0xFF3192D8),
// size: 28,
// ),
// ),
// ),
if (customActionWidget != null)
InkWell(
onTap: onCustomActionPressed,
child: Padding(
padding: EdgeInsets.only(right: 14.w),
child: customActionWidget,
),
),
],
),
);
}

View File

@@ -0,0 +1,172 @@
// ignore_for_file: prefer_const_constructors
import 'dart:ui';
import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_svg/flutter_svg.dart';
class CommonDropdownBtn extends StatefulWidget {
const CommonDropdownBtn({
required this.hint,
required this.items,
this.isEnabled = true,
this.islocation = false,
this.textcolor = false,
this.onItemSelected,
bool showAddButton = false,
super.key,
});
final String hint;
final List<String>? items;
final void Function(String)? onItemSelected;
final bool isEnabled;
final bool islocation;
final bool textcolor;
@override
State<CommonDropdownBtn> createState() => _CommonDropdownBtnState();
}
class _CommonDropdownBtnState extends State<CommonDropdownBtn> {
final kInnerDecoration = BoxDecoration(
color: Colors.white,
border: Border.all(color: Colors.white),
borderRadius: BorderRadius.circular(32),
);
late String label;
final List<String> items = [
'Item1',
'Item2',
'Item3',
'Item4',
'Item5',
'Item6',
'Item7',
'Item8',
];
String? selectedValue;
@override
Widget build(BuildContext context) {
return DropdownButtonHideUnderline(
child: Row(
children: [
widget.islocation
? Padding(
padding: EdgeInsets.only(left: 4.w),
child: SvgPicture.asset("assets/svg/location.svg"),
)
: SizedBox(),
Expanded(
child: DropdownButton2(
isExpanded: true,
hint: Row(
children: [
// SizedBox(
// width: 4,
// ),
// widget.islocation
// ? SvgPicture.asset("assets/svg/location.svg")
// : SizedBox(),
// widget.islocation ? sizedBoxWidth(4.w) : SizedBox(),
Expanded(
child: Text(
widget.hint,
style: TextStyle(
fontSize: 12.sp,
//fontWeight: FontWeight.bold,
color: Colors.white,
fontWeight: FontWeight.w500),
overflow: TextOverflow.ellipsis,
),
),
],
),
items: widget.items!
.map((item) => DropdownMenuItem<String>(
value: item,
child: Text(
item,
style: TextStyle(
color: Colors.white,
fontSize: 16.sp,
fontFamily: 'manrope',
fontWeight: FontWeight.w500,
),
overflow: TextOverflow.ellipsis,
),
))
.toList(),
value: selectedValue,
onChanged: (value) {
setState(() {
selectedValue = value as String;
});
},
buttonStyleData: ButtonStyleData(
height: 50.h,
width: double.infinity,
padding: EdgeInsets.only(left: 12.w, right: 4.w),
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [
Color(0xFFffffff).withOpacity(0.1),
Color(0xFFFFFFFF).withOpacity(0.05),
],
stops: [
0.1,
1,
]),
borderRadius: BorderRadius.circular(10),
border: Border.all(
color: Color(0xffFEF3F8),
),
color: Color(0xFFFFFFFF).withOpacity(0.05),
),
elevation: 0,
),
iconStyleData: IconStyleData(
icon: Icon(
Icons.keyboard_arrow_down,
),
iconSize: 23.sp,
iconEnabledColor: Color(0xFF9A0000),
iconDisabledColor: Color(0xFF9A0000),
),
dropdownStyleData: DropdownStyleData(
maxHeight: 200,
width: 350,
padding: null,
// padding: EdgeInsets.symmetric(horizontal: 16.w),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
border: Border.all(
color: Color(0xffCCCCCC),
),
color: Color(0xFF9A0000).withOpacity(0.9),
),
elevation: 0,
// offset: const Offset(-20, 0),
scrollbarTheme: ScrollbarThemeData(
radius: const Radius.circular(40),
thickness: MaterialStateProperty.all<double>(6),
thumbVisibility: MaterialStateProperty.all<bool>(true),
),
),
menuItemStyleData: const MenuItemStyleData(
height: 40,
padding: EdgeInsets.only(left: 14, right: 14),
),
),
),
],
),
);
}
}

View File

@@ -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),
),

View File

@@ -231,23 +231,34 @@ Widget text14W300(String text) {
);
}
<<<<<<< HEAD
Widget text14W400(String text) {
return Text(
=======
Widget text14W400(String text) { return Text(
>>>>>>> 9a3ee57750db74808606d8117676461f7d75fd06
text,
style: TextStyle(
fontSize: 14.sp,
color: Colors.white,
<<<<<<< HEAD
=======
>>>>>>> 9a3ee57750db74808606d8117676461f7d75fd06
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'),
);
@@ -259,11 +270,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,
@@ -307,3 +320,4 @@ Widget text14W500_black(String text) {
fontFamily: 'manrope'),
);
}

View File

@@ -95,12 +95,9 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver {
theme: ThemeData(
primarySwatch: Colors.blue,
fontFamily: 'manrope',
// textTheme: GoogleFonts.manropeTextTheme(),
),
debugShowCheckedModeBanner: false,
initialRoute: RouteName.mainscreen,
//initialRoute: RouteName.mainScreen,
getPages: AppRoutes.appRoutes(),
),
designSize: const Size(390, 844),

View File

@@ -18,9 +18,6 @@ class RouteName {
static const String verifyotp = '/verifyotp';
//secureaccess
@@ -28,4 +25,18 @@ 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';
//update risk profile
static const String updateriskprofile = '/updateriskprofile';
//sidemenu
static const String termsandcondition = '/termsandcondition';
static const String privacypolicy = '/privacypolicy';
static const String aboutus = '/aboutus';
}

View File

@@ -2,12 +2,21 @@ import 'package:get/get.dart';
import 'package:traderscircuit/Utils/Common/noInternet.dart';
import 'package:traderscircuit/resources/routes/route_name.dart';
import 'package:traderscircuit/view/MainScreen/ExploreUnseen.dart';
import 'package:traderscircuit/view/Sidemenu/AboutUs.dart';
import 'package:traderscircuit/view/Sidemenu/PrivacyPolicy.dart';
import 'package:traderscircuit/view/Sidemenu/TermsAndCondition.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/Notification.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/UpdateRiskProfile.dart';
import 'package:traderscircuit/view/login/VerifyOtp.dart';
import 'package:traderscircuit/view/onBoarding/splashScreen.dart';
import 'package:traderscircuit/view/onBoarding/splashScreen1.dart';
@@ -94,5 +103,36 @@ class AppRoutes {
name: RouteName.exploreUnseen,
page: () => const ExploreUnseen(),
),
//add details
GetPage(
name: RouteName.adddetails,
page: () => const AddDetails(),
),
//kyc
GetPage(
name: RouteName.kyc,
page: () => const Kyc(),
),
//update risk profile
GetPage(
name: RouteName.updateriskprofile,
page: () => const UpdateRiskProfile(),
),
//sidemenu
GetPage(
name: RouteName.termsandcondition,
page: () => const TermsAndConditions(),
),
GetPage(
name: RouteName.privacypolicy,
page: () => const PrivacyPolicy(),
),
GetPage(
name: RouteName.aboutus,
page: () => const AboutUs(),
),
];
}

View File

@@ -0,0 +1,56 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:traderscircuit/Utils/Common/CommonAppbar.dart';
import 'package:traderscircuit/Utils/text.dart';
import 'package:traderscircuit/view/onBoarding/splashScreen1.dart';
class AboutUs extends StatefulWidget {
const AboutUs({super.key});
@override
State<AboutUs> createState() => _AboutUsState();
}
class _AboutUsState extends State<AboutUs> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: CommonAppbar(
titleTxt: "About Us",
),
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: [
// CommonDropdownBtn(hint: "hint", items: ["hi", "hii"]),
SizedBox(
height: 10.h,
),
text16W400(
"""Lorem ipsum dolor sit amet, conse consectetur adipiscing elit, sed do euio eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ulla ullamco laboris nisi ut aliquip ex ea It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. \n\ncommodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla velit pariatur. Excepteur sint occaecat velit cupidatat non proident, sunt in culpa qui \n\nofficia deserunt mollit anim id est laborum. cupidatat non proident, sunt in culpa qui commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla velit pariatur. Excepteur sint occaecat velit cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."""),
SizedBox(
height: 10.h,
),
],
),
),
],
),
],
),
);
}
}

View File

@@ -0,0 +1,56 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:traderscircuit/Utils/Common/CommonAppbar.dart';
import 'package:traderscircuit/Utils/text.dart';
import 'package:traderscircuit/view/onBoarding/splashScreen1.dart';
class PrivacyPolicy extends StatefulWidget {
const PrivacyPolicy({super.key});
@override
State<PrivacyPolicy> createState() => _PrivacyPolicyState();
}
class _PrivacyPolicyState extends State<PrivacyPolicy> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: CommonAppbar(
titleTxt: "Privacy Policy",
),
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: [
// CommonDropdownBtn(hint: "hint", items: ["hi", "hii"]),
SizedBox(
height: 10.h,
),
text16W400(
"""Lorem ipsum dolor sit amet, conse consectetur adipiscing elit, sed do euio eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ulla ullamco laboris nisi ut aliquip ex ea It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. \n\ncommodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla velit pariatur. Excepteur sint occaecat velit cupidatat non proident, sunt in culpa qui \n\nofficia deserunt mollit anim id est laborum. cupidatat non proident, sunt in culpa qui commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla velit pariatur. Excepteur sint occaecat velit cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."""),
SizedBox(
height: 10.h,
),
],
),
),
],
),
],
),
);
}
}

View File

@@ -4,6 +4,7 @@ import 'package:flutter_svg/svg.dart';
import 'package:get/get.dart';
import 'package:traderscircuit/Utils/Common/sized_box.dart';
import 'package:traderscircuit/Utils/text.dart';
import 'package:traderscircuit/resources/routes/route_name.dart';
import 'package:traderscircuit/view/onBoarding/splashScreen1.dart';
class SideMenu extends StatefulWidget {
@@ -85,8 +86,8 @@ class _SideMenuState extends State<SideMenu> {
),
body: Stack(
children: [
CommonBlurLeft(),
CommonBlurRight(),
// CommonBlurLeft(),
// CommonBlurRight(),
Stack(children: [
ListView(children: [
sizedBoxHeight(30.h),
@@ -360,7 +361,7 @@ LogOutdialog(context) {
"Are you sure you want to logout ?",
textAlign: TextAlign.center,
style: TextStyle(
fontFamily: "Georgia",
fontFamily: "manrope",
fontWeight: FontWeight.w400,
fontSize: 20.sp,
color: const Color(0xFFFFFFFF)),
@@ -425,17 +426,22 @@ void navigateTo(int index, BuildContext context) {
case 4:
{
// Get.toNamed(RouteName.termsCondition);
Get.toNamed(RouteName.termsandcondition);
}
break;
case 5:
{
// Get.toNamed(RouteName.privacyPolicy);
Get.toNamed(RouteName.privacypolicy);
}
break;
case 6:
{
Get.toNamed(RouteName.aboutus);
}
break;
case 6:
case 7:
{
Get.bottomSheet(
Column(

View File

@@ -0,0 +1,57 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:traderscircuit/Utils/Common/CommonAppbar.dart';
import 'package:traderscircuit/Utils/text.dart';
import 'package:traderscircuit/view/onBoarding/splashScreen1.dart';
class TermsAndConditions extends StatefulWidget {
const TermsAndConditions({super.key});
@override
State<TermsAndConditions> createState() => _TermsAndConditionsState();
}
class _TermsAndConditionsState extends State<TermsAndConditions> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: CommonAppbar(
titleTxt: "Terms & Conditions",
),
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: [
// CommonDropdownBtn(hint: "hint", items: ["hi", "hii"]),
SizedBox(
height: 10.h,
),
text16W400(
"""Lorem ipsum dolor sit amet, conse consectetur adipiscing elit, sed do euio eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ulla ullamco laboris nisi ut aliquip ex ea It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. \n\ncommodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla velit pariatur. Excepteur sint occaecat velit cupidatat non proident, sunt in culpa qui \n\nofficia deserunt mollit anim id est laborum. cupidatat non proident, sunt in culpa qui commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla velit pariatur. Excepteur sint occaecat velit cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."""),
SizedBox(
height: 10.h,
),
],
),
),
],
),
],
),
);
}
}

View 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,
),
],
),
),
],
),
],
),
);
}
}

397
lib/view/login/Kyc.dart Normal file
View File

@@ -0,0 +1,397 @@
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:glassmorphism/glassmorphism.dart';
import 'package:traderscircuit/Utils/Common/CommonAppbar.dart';
import 'package:traderscircuit/Utils/Common/CommonDropdown.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 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",
customActionWidget: text16W400("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: [
// CommonDropdownBtn(hint: "hint", items: ["hi", "hii"]),
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",
onTap: () {
Get.toNamed(RouteName.updateriskprofile);
},
),
SizedBox(
height: 10.h,
),
],
),
),
],
),
],
),
);
}
}

View File

@@ -0,0 +1,65 @@
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:glassmorphism/glassmorphism.dart';
import 'package:traderscircuit/Utils/Common/CommonAppbar.dart';
import 'package:traderscircuit/Utils/Common/CommonDropdown.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 UpdateRiskProfile extends StatefulWidget {
const UpdateRiskProfile({super.key});
@override
State<UpdateRiskProfile> createState() => _UpdateRiskProfileState();
}
class _UpdateRiskProfileState extends State<UpdateRiskProfile> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: CommonAppbar(
titleTxt: "Update Risk Profile",
customActionWidget: text16W400("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: [
// CommonDropdownBtn(hint: "hint", items: ["hi", "hii"]),
CommonBtn(
text: "Next",
onTap: () {
Get.toNamed(RouteName.mainscreen);
},
),
SizedBox(
height: 10.h,
),
],
),
),
],
),
],
),
);
}
}

View File

@@ -20,7 +20,10 @@ class _FaceidState extends State<Faceid> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: CommonAppbar(titleTxt: "Secure your access"),
appBar: CommonAppbar(
titleTxt: "Secure your access",
// customActionWidget: SizedBox(),
),
backgroundColor: Colors.black,
extendBody: true,
body: Stack(
@@ -37,9 +40,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 +56,7 @@ class _FaceidState extends State<Faceid> {
CommonBtn(
text: "Setup",
onTap: () {
Get.toNamed(RouteName.loginscreen);
Get.toNamed(RouteName.adddetails);
},
)
],

View File

@@ -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);
},
)
],

View File

@@ -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);
},
)
],

View File

@@ -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);
},
)
],

View File

@@ -81,6 +81,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.7.10"
dropdown_button2:
dependency: "direct main"
description:
name: dropdown_button2
sha256: b0fe8d49a030315e9eef6c7ac84ca964250155a6224d491c1365061bc974a9e1
url: "https://pub.dev"
source: hosted
version: "2.3.9"
fake_async:
dependency: transitive
description:

View File

@@ -42,6 +42,7 @@ dependencies:
glassmorphism: ^3.0.0
pin_code_fields: ^8.0.1
fluttertoast: ^8.0.9
dropdown_button2: ^2.1.4
dev_dependencies:
flutter_test: