diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 2a8ac42..ab55086 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -4,6 +4,10 @@
android:label="Trader's Circuit"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher">
+
+
+
+
diff --git a/assets/images/svg/cancel.svg b/assets/images/svg/cancel.svg
new file mode 100644
index 0000000..578cbc6
--- /dev/null
+++ b/assets/images/svg/cancel.svg
@@ -0,0 +1,3 @@
+
diff --git a/assets/images/svg/upload-cloud.svg b/assets/images/svg/upload-cloud.svg
new file mode 100644
index 0000000..183197a
--- /dev/null
+++ b/assets/images/svg/upload-cloud.svg
@@ -0,0 +1,6 @@
+
diff --git a/lib/Utils/Common/CommonAppbar.dart b/lib/Utils/Common/CommonAppbar.dart
index 4fde113..9c9ec29 100644
--- a/lib/Utils/Common/CommonAppbar.dart
+++ b/lib/Utils/Common/CommonAppbar.dart
@@ -7,7 +7,7 @@ import 'package:traderscircuit/Utils/text.dart';
class CommonAppbar extends StatelessWidget implements PreferredSizeWidget {
@override
- Size get preferredSize => Size.fromHeight(height);
+ Size get preferredSize => Size.fromHeight(height!);
const CommonAppbar(
{Key? key,
required this.titleTxt,
@@ -27,11 +27,11 @@ class CommonAppbar extends StatelessWidget implements PreferredSizeWidget {
final String? backPageName;
final Widget? customActionWidget;
final VoidCallback? onCustomActionPressed;
- final double height;
+ final double? height;
@override
Widget build(BuildContext context) {
return PreferredSize(
- preferredSize: Size.fromHeight(130),
+ preferredSize: Size.fromHeight(height ?? 130),
child: AppBar(
scrolledUnderElevation: 0.0,
backgroundColor: Colors.black,
diff --git a/lib/Utils/Common/ImagePicker.dart b/lib/Utils/Common/ImagePicker.dart
new file mode 100644
index 0000000..20d518a
--- /dev/null
+++ b/lib/Utils/Common/ImagePicker.dart
@@ -0,0 +1,36 @@
+import 'package:image_cropper/image_cropper.dart';
+import 'package:image_picker/image_picker.dart';
+
+class ImagePickerMethod {
+ Future getImage(ImageSource imgSource) async {
+ final ImagePicker picker = ImagePicker();
+
+ final XFile? pickedImg = await picker.pickImage(source: imgSource);
+ if (pickedImg != null) {
+ final croppedImg = await ImageCropper().cropImage(
+ sourcePath: pickedImg.path,
+ aspectRatio: const CropAspectRatio(ratioX: 1, ratioY: 1),
+ compressFormat: ImageCompressFormat.jpg,
+ maxHeight: 512,
+ maxWidth: 512,
+ uiSettings: [
+ IOSUiSettings(
+ rotateButtonsHidden: true,
+ rotateClockwiseButtonHidden: true,
+ )
+ ],
+ compressQuality: 100,
+ aspectRatioPresets: [
+ CropAspectRatioPreset.square,
+ ],
+ );
+ if (croppedImg != null) {
+ return croppedImg.path;
+ } else {
+ return "";
+ }
+ } else {
+ return "";
+ }
+ }
+}
diff --git a/lib/Utils/Common/commonBotton.dart b/lib/Utils/Common/commonBotton.dart
index 1c6b2f5..8819c2d 100644
--- a/lib/Utils/Common/commonBotton.dart
+++ b/lib/Utils/Common/commonBotton.dart
@@ -23,3 +23,40 @@ Widget CommonBtn({void Function()? onTap, required String text}) {
),
));
}
+
+Widget kycBtn({
+ void Function()? onTap,
+ required String text,
+ required Color bgClr,
+ required Color borderClr,
+}) {
+ return InkWell(
+ onTap: onTap,
+ child: Container(
+ width: 191,
+ height: 50,
+ decoration: ShapeDecoration(
+ color: bgClr,
+ shape: RoundedRectangleBorder(
+ side: BorderSide(
+ width: 1,
+ color: borderClr,
+ ),
+ borderRadius: BorderRadius.circular(8),
+ ),
+ ),
+ child: Center(
+ child: Text(
+ text,
+ textAlign: TextAlign.center,
+ style: TextStyle(
+ color: Colors.white,
+ fontSize: 20.sp,
+ fontFamily: 'Cambria',
+ fontWeight: FontWeight.w400,
+ ),
+ ),
+ ),
+ ),
+ );
+}
diff --git a/lib/Utils/Common/custom_drop_down.dart b/lib/Utils/Common/custom_drop_down.dart
new file mode 100644
index 0000000..b2aec98
--- /dev/null
+++ b/lib/Utils/Common/custom_drop_down.dart
@@ -0,0 +1,192 @@
+import 'package:flutter/material.dart';
+import 'package:get/get.dart';
+
+import '../text.dart';
+
+class CustomDropDownWidget extends StatefulWidget {
+ const CustomDropDownWidget(
+ {super.key, required this.header, required this.listData});
+ final String header;
+ final List listData;
+
+ @override
+ State createState() => _CustomDropDownWidgetState();
+}
+
+class _CustomDropDownWidgetState extends State {
+ RxBool onDropTap = false.obs;
+ RxString selectedValue = "".obs;
+ @override
+ Widget build(BuildContext context) {
+ return Obx(
+ () => SizedBox(
+ width: Get.width,
+ // height: onDropTap.value ? 350 : 55,
+ child: Column(
+ mainAxisSize: MainAxisSize.min,
+ mainAxisAlignment: MainAxisAlignment.center,
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ InkWell(
+ onTap: () {
+ onDropTap.value = !onDropTap.value;
+ },
+ child: SizedBox(
+ width: 398,
+ height: 55,
+ child: Stack(
+ children: [
+ Positioned(
+ left: 398,
+ top: 55,
+ child: Opacity(
+ opacity: 0.50,
+ child: Transform(
+ transform: Matrix4.identity()
+ ..translate(0.0, 0.0)
+ ..rotateZ(-3.14),
+ child: Container(
+ width: 398,
+ height: 55,
+ decoration: BoxDecoration(
+ gradient: LinearGradient(
+ begin: const Alignment(0.98, -0.21),
+ end: const Alignment(-0.98, 0.21),
+ colors: [
+ Colors.white
+ .withOpacity(0.03999999910593033),
+ Colors.white
+ .withOpacity(0.05999999865889549)
+ ],
+ ),
+ border: Border(
+ top: onDropTap.value
+ ? const BorderSide(
+ width: 0, color: Color(0xFF393939))
+ : const BorderSide(
+ width: 0.50,
+ color: Color(0xFF393939)),
+ bottom: const BorderSide(
+ width: 0.50, color: Color(0xFF393939)),
+ left: const BorderSide(
+ width: 0.50,
+ color: Color(0xFF393939),
+ ),
+ right: const BorderSide(
+ width: 0.50,
+ color: Color(0xFF393939),
+ ),
+ )),
+ ),
+ ),
+ ),
+ ),
+ Positioned(
+ left: 14,
+ top: 16,
+ child: Text(
+ selectedValue.isNotEmpty
+ ? selectedValue.value
+ : widget.header,
+ style: const TextStyle(
+ color: Color(0xFFADADAD),
+ fontSize: 16,
+ fontFamily: 'Manrope',
+ fontWeight: FontWeight.w400,
+ height: 0,
+ ),
+ ),
+ ),
+ Positioned(
+ right: 14,
+ top: 16,
+ child: onDropTap.value
+ ? const Icon(
+ Icons.keyboard_arrow_up_rounded,
+ color: Colors.white,
+ )
+ : const Icon(
+ Icons.keyboard_arrow_down_rounded,
+ color: Colors.white,
+ )),
+ ],
+ ),
+ ),
+ ),
+ !onDropTap.value
+ ? const SizedBox()
+ : Opacity(
+ opacity: 0.50,
+ child: Container(
+ width: Get.width,
+ // height: 216,
+ decoration: ShapeDecoration(
+ gradient: LinearGradient(
+ begin: const Alignment(0.98, -0.21),
+ end: const Alignment(-0.98, 0.21),
+ colors: [
+ Colors.white.withOpacity(0.03999999910593033),
+ Colors.white.withOpacity(0.05999999865889549)
+ ],
+ ),
+ shape: const RoundedRectangleBorder(
+ side:
+ BorderSide(width: 0.50, color: Color(0xFF393939)),
+ borderRadius: BorderRadius.only(
+ bottomLeft: Radius.circular(8),
+ bottomRight: Radius.circular(8),
+ ),
+ ),
+ ),
+ child: ListView.builder(
+ shrinkWrap: true,
+ itemCount: widget.listData.length,
+ itemBuilder: (context, index) {
+ return InkWell(
+ onTap: () {
+ selectedValue.value = widget.listData[index];
+ onDropTap.value = !onDropTap.value;
+ },
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ Container(
+ margin: EdgeInsets.only(
+ left: 14,
+ top: index == 0 ? 16 : 0,
+ bottom: index ==
+ widget.listData.length - 1
+ ? 16
+ : 0),
+ child:
+ text16W400(widget.listData[index])),
+ index == widget.listData.length - 1
+ ? const SizedBox()
+ : Container(
+ width: Get.width,
+ margin: const EdgeInsets.only(
+ top: 16, bottom: 16),
+ decoration: const ShapeDecoration(
+ shape: RoundedRectangleBorder(
+ side: BorderSide(
+ width: 0.60,
+ strokeAlign: BorderSide
+ .strokeAlignCenter,
+ color: Color(0xFF393939),
+ ),
+ ),
+ ),
+ ),
+ ],
+ ),
+ );
+ }),
+ ),
+ ),
+ ],
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/Utils/text.dart b/lib/Utils/text.dart
index 413446d..1d8141f 100644
--- a/lib/Utils/text.dart
+++ b/lib/Utils/text.dart
@@ -56,6 +56,19 @@ Widget text18W400(String text) {
);
}
+Widget text24W500(String text) {
+ return Text(
+ text,
+ style: TextStyle(
+ color: Colors.white,
+ fontSize: 24.sp,
+ fontWeight: FontWeight.w500,
+ fontFamily: 'manrope'),
+ maxLines: 2,
+ softWrap: true,
+ );
+}
+
Widget text16W400(String text) {
return Text(
text,
@@ -231,8 +244,8 @@ Widget text14W300(String text) {
);
}
-
-Widget text14W400(String text) { return Text(
+Widget text14W400(String text) {
+ return Text(
text,
style: TextStyle(
fontSize: 14.sp,
@@ -243,13 +256,11 @@ Widget text14W400(String text) { return Text(
}
Widget text14W500(String text) {
-
return Text(
text,
style: TextStyle(
fontSize: 14.sp,
color: Colors.white,
-
fontWeight: FontWeight.w500,
fontFamily: 'manrope'),
);
@@ -261,13 +272,11 @@ 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,
@@ -311,4 +320,3 @@ Widget text14W500_black(String text) {
fontFamily: 'manrope'),
);
}
-
diff --git a/lib/controller/kyc_controller.dart b/lib/controller/kyc_controller.dart
new file mode 100644
index 0000000..dcaa715
--- /dev/null
+++ b/lib/controller/kyc_controller.dart
@@ -0,0 +1,8 @@
+import 'package:get/get.dart';
+
+class KYCController extends GetxController {
+ RxString panFrontImage = "".obs;
+ RxString panBackImage = "".obs;
+ RxString aadharFrontImage = "".obs;
+ RxString aadharBackImage = "".obs;
+}
diff --git a/lib/main.dart b/lib/main.dart
index 406c806..26695f6 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -97,7 +97,7 @@ class _MyAppState extends State with WidgetsBindingObserver {
fontFamily: 'manrope',
),
debugShowCheckedModeBanner: false,
- initialRoute: RouteName.mainscreen,
+ initialRoute: RouteName.splashScreen,
getPages: AppRoutes.appRoutes(),
),
designSize: const Size(390, 844),
diff --git a/lib/resources/routes/route_name.dart b/lib/resources/routes/route_name.dart
index 341676a..60a26a0 100644
--- a/lib/resources/routes/route_name.dart
+++ b/lib/resources/routes/route_name.dart
@@ -31,6 +31,7 @@ class RouteName {
//kyc
static const String kyc = '/kyc';
+ static const String kycImage = "/kycImage";
//update risk profile
static const String updateriskprofile = '/updateriskprofile';
diff --git a/lib/resources/routes/routes.dart b/lib/resources/routes/routes.dart
index 47e36af..d233d14 100644
--- a/lib/resources/routes/routes.dart
+++ b/lib/resources/routes/routes.dart
@@ -27,6 +27,8 @@ import 'package:traderscircuit/view/secureAccess.dart/Fingerprint.dart';
import 'package:traderscircuit/view/secureAccess.dart/Pin.dart';
import 'package:traderscircuit/view/secureAccess.dart/SecureAccess.dart';
+import '../../view/login/uploadKycImage.dart';
+
class AppRoutes {
static appRoutes() => [
GetPage(
@@ -114,6 +116,10 @@ class AppRoutes {
name: RouteName.kyc,
page: () => const Kyc(),
),
+ GetPage(
+ name: RouteName.kycImage,
+ page: () => const UploadKYCImage(),
+ ),
//update risk profile
GetPage(
@@ -130,7 +136,7 @@ class AppRoutes {
name: RouteName.privacypolicy,
page: () => const PrivacyPolicy(),
),
- GetPage(
+ GetPage(
name: RouteName.aboutus,
page: () => const AboutUs(),
),
diff --git a/lib/view/login/Kyc.dart b/lib/view/login/Kyc.dart
index 1225b12..488328b 100644
--- a/lib/view/login/Kyc.dart
+++ b/lib/view/login/Kyc.dart
@@ -1,7 +1,9 @@
+import 'dart:io';
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
+import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import 'package:glassmorphism/glassmorphism.dart';
import 'package:traderscircuit/Utils/Common/CommonAppbar.dart';
@@ -12,6 +14,8 @@ import 'package:traderscircuit/Utils/text.dart';
import 'package:traderscircuit/resources/routes/route_name.dart';
import 'package:traderscircuit/view/onBoarding/splashScreen1.dart';
+import '../../controller/kyc_controller.dart';
+
class Kyc extends StatefulWidget {
const Kyc({super.key});
@@ -25,372 +29,554 @@ class _KycState extends State {
Color primaryColor = Colors.transparent.withOpacity(0.2);
Color secondaryColor = Colors.grey.shade800;
- bool isSwitched = false;
+ KYCController kycController = Get.put(KYCController());
- void _toggleSwitch(bool value) {
- setState(() {
- isSwitched = value;
- });
- }
+ // DateTime timebackPressed = DateTime.now();
- DateTime timebackPressed = DateTime.now();
+ // Future _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: const ColorScheme.light(
+ // surface: Colors.black,
+ // onSurface: Colors.white,
+ // primary: Color(0xff9A0000),
+ // onPrimary: Colors.white,
+ // ),
+ // textButtonTheme: TextButtonThemeData(
+ // style: TextButton.styleFrom(
+ // foregroundColor: Colors.white,
+ // ),
+ // ),
+ // ),
+ // child: child!);
+ // });
- Future _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,
- );
- });
- }
- }
+ // 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,
+ return Obx(
+ () => Scaffold(
+ appBar: CommonAppbar(
+ titleTxt: "KYC",
+ customActionWidget: text16W400(""),
+ ),
+ backgroundColor: Colors.black,
+ extendBody: true,
+ body: Stack(
+ children: [
+ const CommonBlurLeft(),
+ const CommonBlurRight(),
+ Stack(
+ children: [
+ Padding(
+ padding:
+ const EdgeInsets.symmetric(horizontal: 16, vertical: 16),
+ child: ListView(
+ physics: const 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,
+ 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(),
+ Row(
+ children: [
+ text18W500("Step 1 : Personal Information"),
+ ],
),
- 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")
- ],
+ SizedBox(
+ height: 30.h,
+ ),
+ Row(
+ children: [
+ text18W400("Upload pan card image"),
+ ],
+ ),
+ SizedBox(
+ height: 15.h,
+ ),
+ Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ InkWell(
+ onTap: () {
+ if (kycController.panFrontImage.isEmpty) {
+ Get.toNamed(RouteName.kycImage, arguments: {
+ "type": "pan front",
+ });
+ }
+ },
+ child: GlassmorphicContainer(
+ width: 170.w,
+ height: 105.h,
+ borderRadius: 8,
+ linearGradient: LinearGradient(
+ begin: Alignment.topLeft,
+ end: Alignment.bottomRight,
+ colors: [
+ const Color(0xFFffffff).withOpacity(0.1),
+ const Color(0xFFFFFFFF).withOpacity(0.05),
+ ],
+ stops: const [
+ 0.1,
+ 1,
+ ]),
+ border: 0.8,
+ blur: 10,
+ borderGradient: LinearGradient(
+ begin: Alignment.topLeft,
+ end: Alignment.bottomRight,
+ colors: [
+ const Color(0xff9A0000).withOpacity(0.5),
+ const Color(0xFFffffff).withOpacity(0.5),
+ ],
+ ),
+ child: (kycController.panFrontImage.isNotEmpty)
+ ? Stack(
+ children: [
+ Padding(
+ padding: const EdgeInsets.symmetric(
+ vertical: 20, horizontal: 40),
+ child: Image(
+ image: FileImage(
+ File(
+ kycController
+ .panFrontImage.value,
+ ),
+ ),
+ fit: BoxFit.cover,
+ width: Get.width,
+ height: 50.h,
+ ),
+ ),
+ Positioned(
+ top: 6,
+ right: 10,
+ child: InkWell(
+ onTap: () {
+ kycController
+ .panFrontImage.value = "";
+ },
+ child: SvgPicture.asset(
+ "assets/images/svg/cancel.svg",
+ width: 18,
+ height: 18,
+ ),
+ ),
+ )
+ ],
+ )
+ : Center(
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.center,
+ children: [
+ const 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")
- ],
+ InkWell(
+ onTap: () {
+ if (kycController.panBackImage.isEmpty) {
+ Get.toNamed(RouteName.kycImage, arguments: {
+ "type": "pan back",
+ });
+ }
+ },
+ child: GlassmorphicContainer(
+ width: 170.w,
+ height: 105.h,
+ borderRadius: 8,
+ linearGradient: LinearGradient(
+ begin: Alignment.topLeft,
+ end: Alignment.bottomRight,
+ colors: [
+ const Color(0xFFffffff).withOpacity(0.1),
+ const Color(0xFFFFFFFF).withOpacity(0.05),
+ ],
+ stops: const [
+ 0.1,
+ 1,
+ ]),
+ border: 0.8,
+ blur: 10,
+ borderGradient: LinearGradient(
+ begin: Alignment.topLeft,
+ end: Alignment.bottomRight,
+ colors: [
+ const Color(0xff9A0000).withOpacity(0.5),
+ const Color(0xFFffffff).withOpacity(0.5),
+ ],
+ ),
+ child: (kycController.panBackImage.isNotEmpty)
+ ? Stack(
+ children: [
+ Padding(
+ padding: const EdgeInsets.symmetric(
+ vertical: 20, horizontal: 40),
+ child: Image(
+ image: FileImage(
+ File(
+ kycController
+ .panBackImage.value,
+ ),
+ ),
+ fit: BoxFit.cover,
+ width: Get.width,
+ height: 50.h,
+ ),
+ ),
+ Positioned(
+ top: 6,
+ right: 10,
+ child: InkWell(
+ onTap: () {
+ kycController.panBackImage.value =
+ "";
+ },
+ child: SvgPicture.asset(
+ "assets/images/svg/cancel.svg",
+ width: 18,
+ height: 18,
+ ),
+ ),
+ )
+ ],
+ )
+ : Center(
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.center,
+ children: [
+ const Icon(
+ Icons.file_upload_outlined,
+ size: 42,
+ color: Colors.white,
+ ),
+ SizedBox(
+ height: 10.h,
+ ),
+ text14W400("Back Side")
+ ],
+ ),
+ ),
+ ),
+ )
+ ],
+ ),
+ SizedBox(
+ height: 30.h,
+ ),
+ Row(
+ children: [
+ text18W400("Aadhar Number"),
+ ],
+ ),
+ SizedBox(
+ height: 15.h,
+ ),
+ const CustomTextFormField(),
+ SizedBox(
+ height: 30.h,
+ ),
+ Row(
+ children: [
+ text18W400("Upload Aadhar card image"),
+ ],
+ ),
+ SizedBox(
+ height: 15.h,
+ ),
+ Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ InkWell(
+ onTap: () {
+ if (kycController.aadharFrontImage.isEmpty) {
+ Get.toNamed(RouteName.kycImage, arguments: {
+ "type": "aadhar front",
+ });
+ }
+ },
+ child: GlassmorphicContainer(
+ width: 170.w,
+ height: 105.h,
+ borderRadius: 8,
+ linearGradient: LinearGradient(
+ begin: Alignment.topLeft,
+ end: Alignment.bottomRight,
+ colors: [
+ const Color(0xFFffffff).withOpacity(0.1),
+ const Color(0xFFFFFFFF).withOpacity(0.05),
+ ],
+ stops: const [
+ 0.1,
+ 1,
+ ]),
+ border: 0.8,
+ blur: 10,
+ borderGradient: LinearGradient(
+ begin: Alignment.topLeft,
+ end: Alignment.bottomRight,
+ colors: [
+ const Color(0xff9A0000).withOpacity(0.5),
+ const Color(0xFFffffff).withOpacity(0.5),
+ ],
+ ),
+ child: (kycController.aadharFrontImage.isNotEmpty)
+ ? Stack(
+ children: [
+ Padding(
+ padding: const EdgeInsets.symmetric(
+ vertical: 20, horizontal: 40),
+ child: Image(
+ image: FileImage(
+ File(
+ kycController
+ .aadharFrontImage.value,
+ ),
+ ),
+ fit: BoxFit.cover,
+ width: Get.width,
+ height: 50.h,
+ ),
+ ),
+ Positioned(
+ top: 6,
+ right: 10,
+ child: InkWell(
+ onTap: () {
+ kycController
+ .aadharFrontImage.value = "";
+ },
+ child: SvgPicture.asset(
+ "assets/images/svg/cancel.svg",
+ width: 18,
+ height: 18,
+ ),
+ ),
+ )
+ ],
+ )
+ : Center(
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.center,
+ children: [
+ const Icon(
+ Icons.file_upload_outlined,
+ size: 42,
+ color: Colors.white,
+ ),
+ SizedBox(
+ height: 10.h,
+ ),
+ text14W400("Front 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")
- ],
+ InkWell(
+ onTap: () {
+ if (kycController.aadharBackImage.isEmpty) {
+ Get.toNamed(RouteName.kycImage, arguments: {
+ "type": "aadhar back",
+ });
+ }
+ },
+ child: GlassmorphicContainer(
+ width: 170.w,
+ height: 105.h,
+ borderRadius: 8,
+ linearGradient: LinearGradient(
+ begin: Alignment.topLeft,
+ end: Alignment.bottomRight,
+ colors: [
+ const Color(0xFFffffff).withOpacity(0.1),
+ const Color(0xFFFFFFFF).withOpacity(0.05),
+ ],
+ stops: const [
+ 0.1,
+ 1,
+ ]),
+ border: 0.8,
+ blur: 10,
+ borderGradient: LinearGradient(
+ begin: Alignment.topLeft,
+ end: Alignment.bottomRight,
+ colors: [
+ const Color(0xff9A0000).withOpacity(0.5),
+ const Color(0xFFffffff).withOpacity(0.5),
+ ],
+ ),
+ child: (kycController.aadharBackImage.isNotEmpty)
+ ? Stack(
+ children: [
+ Padding(
+ padding: const EdgeInsets.symmetric(
+ vertical: 20, horizontal: 40),
+ child: Image(
+ image: FileImage(
+ File(
+ kycController
+ .aadharBackImage.value,
+ ),
+ ),
+ fit: BoxFit.cover,
+ width: Get.width,
+ height: 50.h,
+ ),
+ ),
+ Positioned(
+ top: 6,
+ right: 10,
+ child: InkWell(
+ onTap: () {
+ kycController
+ .aadharBackImage.value = "";
+ },
+ child: SvgPicture.asset(
+ "assets/images/svg/cancel.svg",
+ width: 18,
+ height: 18,
+ ),
+ ),
+ )
+ ],
+ )
+ : Center(
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.center,
+ children: [
+ const Icon(
+ Icons.file_upload_outlined,
+ size: 42,
+ color: Colors.white,
+ ),
+ SizedBox(
+ height: 10.h,
+ ),
+ text14W400("Back 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,
- ),
- ],
+ )
+ ],
+ ),
+ SizedBox(
+ height: 70.h,
+ ),
+ CommonBtn(
+ text: "Next",
+ onTap: () {
+ Get.toNamed(RouteName.updateriskprofile);
+ },
+ ),
+ SizedBox(
+ height: 10.h,
+ ),
+ ],
+ ),
),
- ),
- ],
- ),
- ],
+ ],
+ ),
+ ],
+ ),
),
);
}
diff --git a/lib/view/login/LoginScreen.dart b/lib/view/login/LoginScreen.dart
index abacfef..6f8e5d4 100644
--- a/lib/view/login/LoginScreen.dart
+++ b/lib/view/login/LoginScreen.dart
@@ -3,13 +3,11 @@ import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
-import 'package:flutter_svg/svg.dart';
import 'package:get/get.dart';
import 'package:glassmorphism/glassmorphism.dart';
import 'package:traderscircuit/Utils/Common/CustomTextFormField.dart';
import 'package:traderscircuit/Utils/Common/commonBotton.dart';
import 'package:traderscircuit/Utils/text.dart';
-import 'package:traderscircuit/main.dart';
import 'package:traderscircuit/resources/routes/route_name.dart';
import 'package:traderscircuit/view/onBoarding/splashScreen1.dart';
@@ -35,14 +33,15 @@ class _LoginScreenState extends State {
extendBody: true,
body: Stack(
children: [
- CommonBlurLeft(),
- CommonBlurRight(),
+ const CommonBlurLeft(),
+ const CommonBlurRight(),
Stack(
children: [
Padding(
- padding: EdgeInsets.symmetric(horizontal: 16, vertical: 16),
+ padding:
+ const EdgeInsets.symmetric(horizontal: 16, vertical: 16),
child: ListView(
- physics: BouncingScrollPhysics(),
+ physics: const BouncingScrollPhysics(),
// mainAxisAlignment: MainAxisAlignment.start,
// crossAxisAlignment: CrossAxisAlignment.start,
children: [
@@ -80,59 +79,61 @@ class _LoginScreenState extends State {
),
Row(
children: [
- GlassmorphicContainer(
- width: 60,
- height: 50,
- borderRadius: 8,
- blur: 10,
- alignment: Alignment.center,
- border: 0.8,
- linearGradient: LinearGradient(
+ Expanded(
+ child: GlassmorphicContainer(
+ width: 60,
+ height: 50,
+ borderRadius: 8,
+ blur: 10,
+ alignment: Alignment.center,
+ border: 0.8,
+ linearGradient: LinearGradient(
+ begin: Alignment.topLeft,
+ end: Alignment.bottomRight,
+ colors: [
+ Colors.white.withOpacity(0.1),
+ const Color(0xFFFFFFFF).withOpacity(0.05),
+ ],
+ stops: const [
+ 0.1,
+ 1,
+ ]),
+ borderGradient: LinearGradient(
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [
- Colors.white.withOpacity(0.1),
- Color(0xFFFFFFFF).withOpacity(0.05),
+ const Color(0xff9A0000).withOpacity(0.5),
+ const Color(0xFFffffff).withOpacity(0.5),
],
- stops: [
- 0.1,
- 1,
- ]),
- borderGradient: LinearGradient(
- begin: Alignment.topLeft,
- end: Alignment.bottomRight,
- colors: [
- Color(0xff9A0000).withOpacity(0.5),
- Color(0xFFffffff).withOpacity(0.5),
- ],
- ),
- child: Row(
- crossAxisAlignment: CrossAxisAlignment.center,
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- // SvgPicture.asset("assets/images/svg/india.svg"),
- Image.asset(
- "assets/images/png/india.png",
- height: 25.h,
- width: 25.h,
- ),
- SizedBox(
- width: 2,
- ),
- Text(
- "+91",
- style: TextStyle(
- fontSize: 15,
- color: Colors.white,
+ ),
+ child: Row(
+ crossAxisAlignment: CrossAxisAlignment.center,
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ // SvgPicture.asset("assets/images/svg/india.svg"),
+ Image.asset(
+ "assets/images/png/india.png",
+ height: 25.h,
+ width: 25.h,
),
- )
- ],
+ const SizedBox(
+ width: 2,
+ ),
+ const Text(
+ "+91",
+ style: TextStyle(
+ fontSize: 15,
+ color: Colors.white,
+ ),
+ )
+ ],
+ ),
),
),
- SizedBox(
+ const SizedBox(
width: 10,
),
- Container(
+ SizedBox(
width: 285.w,
child: CustomTextFormField(
texttype: TextInputType.phone,
@@ -157,7 +158,7 @@ class _LoginScreenState extends State {
)
],
),
- SizedBox(
+ const SizedBox(
height: 10,
),
text14W300(
@@ -211,10 +212,10 @@ class _LoginScreenState extends State {
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [
- Color(0xFFffffff).withOpacity(0.1),
- Color(0xFFFFFFFF).withOpacity(0.05),
+ const Color(0xFFffffff).withOpacity(0.1),
+ const Color(0xFFFFFFFF).withOpacity(0.05),
],
- stops: [
+ stops: const [
0.1,
1,
]),
@@ -224,11 +225,11 @@ class _LoginScreenState extends State {
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [
- Color(0xFFAF2E89).withOpacity(0.2),
- Color(0xFFA23E31).withOpacity(0.2),
- Color(0xFF0000).withOpacity(0.2),
+ const Color(0xFFAF2E89).withOpacity(0.2),
+ const Color(0xFFA23E31).withOpacity(0.2),
+ const Color(0xFF0000).withOpacity(0.2),
],
- stops: [
+ stops: const [
0.3,
0.6,
1,
@@ -261,10 +262,10 @@ class _LoginScreenState extends State {
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [
- Color(0xFFffffff).withOpacity(0.1),
- Color(0xFFFFFFFF).withOpacity(0.05),
+ const Color(0xFFffffff).withOpacity(0.1),
+ const Color(0xFFFFFFFF).withOpacity(0.05),
],
- stops: [
+ stops: const [
0.1,
1,
]),
@@ -274,11 +275,11 @@ class _LoginScreenState extends State {
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [
- Color(0xFFAF2E89).withOpacity(0.2),
- Color(0xFFA23E31).withOpacity(0.2),
- Color(0xFF0000).withOpacity(0.2),
+ const Color(0xFFAF2E89).withOpacity(0.2),
+ const Color(0xFFA23E31).withOpacity(0.2),
+ const Color(0xFF0000).withOpacity(0.2),
],
- stops: [
+ stops: const [
0.3,
0.6,
1,
diff --git a/lib/view/login/UpdateRiskProfile.dart b/lib/view/login/UpdateRiskProfile.dart
index 8cc0b34..c1bfd49 100644
--- a/lib/view/login/UpdateRiskProfile.dart
+++ b/lib/view/login/UpdateRiskProfile.dart
@@ -3,15 +3,14 @@ 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';
+import '../../Utils/Common/custom_drop_down.dart';
+
class UpdateRiskProfile extends StatefulWidget {
const UpdateRiskProfile({super.key});
@@ -25,27 +24,54 @@ class _UpdateRiskProfileState extends State {
return Scaffold(
appBar: CommonAppbar(
titleTxt: "Update Risk Profile",
- customActionWidget: text16W400("skip"),
+ customActionWidget: text16W400(""),
),
backgroundColor: Colors.black,
extendBody: true,
body: Stack(
children: [
- CommonBlurLeft(),
- CommonBlurRight(),
+ const CommonBlurLeft(),
+ const CommonBlurRight(),
Stack(
children: [
Padding(
- padding: EdgeInsets.symmetric(horizontal: 16, vertical: 16),
+ padding:
+ const EdgeInsets.symmetric(horizontal: 16, vertical: 16),
child: ListView(
- physics: BouncingScrollPhysics(),
+ physics: const BouncingScrollPhysics(),
// mainAxisAlignment: MainAxisAlignment.start,
// crossAxisAlignment: CrossAxisAlignment.start,
children: [
- // CommonDropdownBtn(hint: "hint", items: ["hi", "hii"]),
+ updateRiskProfileData(
+ "What is your investment goal?",
+ "Select your goal",
+ ),
+ updateRiskProfileData(
+ "Add Investment Experience field",
+ "Select your Experience",
+ ),
+ updateRiskProfileData(
+ "What types of stocks do you prefer?",
+ "Select types of stock",
+ ),
+ updateRiskProfileData(
+ "What is your Risk Perception?",
+ "Select your Perception",
+ ),
+ updateRiskProfileData(
+ "What is your favoured Market Condition?",
+ "Select Condition",
+ ),
+ updateRiskProfileData(
+ "What is your Emotional Response to Market Volatility?",
+ "Choose your query",
+ ),
+ SizedBox(
+ height: 70.h,
+ ),
CommonBtn(
- text: "Next",
+ text: "Submit",
onTap: () {
Get.toNamed(RouteName.mainscreen);
},
@@ -63,3 +89,64 @@ class _UpdateRiskProfileState extends State {
);
}
}
+
+Widget updateRiskProfileData(
+ String tilte,
+ String headerText,
+) {
+ return Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ text18W400(tilte),
+ SizedBox(
+ height: 15.h,
+ ),
+ CustomDropDownWidget(
+ header: headerText,
+ listData: dropHeader[headerText]!,
+ ),
+ SizedBox(
+ height: 35.h,
+ ),
+ ],
+ );
+}
+
+Map> dropHeader = {
+ "Select your goal": [
+ "Wealth Preservation",
+ "Capital Growth",
+ "Income Generation",
+ "Retirement Planning"
+ ],
+ "Select your Experience": [
+ "No Experience",
+ "Beginner (0 - 3 months)",
+ "Intermediate (3 - 12 months)",
+ "Expert ( > 12 months)",
+ "Professional ( 3 - 5 years )"
+ ],
+ "Select types of stock": [
+ "Swing Trade",
+ "Options",
+ "Multibagger",
+ "Long term",
+ ],
+ "Select your Perception": [
+ "Very Conservative",
+ "Conservative",
+ "Moderate",
+ "Aggressive",
+ ],
+ "Select Condition": [
+ "Bullish",
+ "Neutral",
+ "Bearish",
+ ],
+ "Choose your query": [
+ "Calm",
+ "Neutral",
+ "Anxious",
+ "Stressed",
+ ],
+};
diff --git a/lib/view/login/uploadKycImage.dart b/lib/view/login/uploadKycImage.dart
new file mode 100644
index 0000000..e47d5d4
--- /dev/null
+++ b/lib/view/login/uploadKycImage.dart
@@ -0,0 +1,384 @@
+import 'dart:io';
+
+import 'package:dotted_border/dotted_border.dart';
+import 'package:flutter/material.dart';
+import 'package:flutter_screenutil/flutter_screenutil.dart';
+import 'package:flutter_svg/flutter_svg.dart';
+import 'package:gap/gap.dart';
+import 'package:get/get.dart';
+import 'package:image_picker/image_picker.dart';
+import 'package:traderscircuit/controller/kyc_controller.dart';
+
+import '../../Utils/Common/ImagePicker.dart';
+import '../../Utils/Common/commonBotton.dart';
+import '../../Utils/text.dart';
+import '../onBoarding/splashScreen1.dart';
+
+class UploadKYCImage extends StatefulWidget {
+ const UploadKYCImage({super.key});
+
+ @override
+ State createState() => _UploadKYCImageState();
+}
+
+class _UploadKYCImageState extends State {
+ KYCController kycController = Get.put(KYCController());
+ String type = Get.arguments["type"];
+ @override
+ Widget build(BuildContext context) {
+ return Obx(
+ () => WillPopScope(
+ onWillPop: () async {
+ type == "pan front"
+ ? kycController.panFrontImage.value = ""
+ : type == "pan back"
+ ? kycController.panBackImage.value = ""
+ : type == "aadhar front"
+ ? kycController.aadharFrontImage.value = ""
+ : kycController.aadharBackImage.value = "";
+ await Future.delayed(const Duration(milliseconds: 210));
+
+ return true;
+ },
+ child: Scaffold(
+ bottomNavigationBar: (type == "pan front" &&
+ kycController.panFrontImage.isNotEmpty) ||
+ (type == "pan back" &&
+ kycController.panBackImage.isNotEmpty) ||
+ (type == "aadhar front" &&
+ kycController.aadharFrontImage.isNotEmpty) ||
+ (type == "aadhar back" &&
+ kycController.aadharBackImage.isNotEmpty)
+ ? Padding(
+ padding:
+ const EdgeInsets.symmetric(horizontal: 17, vertical: 100),
+ child: Row(
+ children: [
+ Expanded(
+ child: SizedBox(
+ width: 191.w,
+ child: kycBtn(
+ text: "Retake",
+ onTap: () {
+ if (type == "pan front") {
+ kycController.panFrontImage.value = "";
+ } else if (type == "pan back") {
+ kycController.panBackImage.value = "";
+ } else if (type == "aadhar front") {
+ kycController.aadharFrontImage.value = "";
+ } else {
+ kycController.aadharBackImage.value = "";
+ }
+ },
+ bgClr: const Color(0xFF111313),
+ borderClr: const Color(0xFF990000),
+ ),
+ ),
+ ),
+ const Gap(16),
+ Expanded(
+ child: SizedBox(
+ width: 191.w,
+ child: kycBtn(
+ text: "Submit",
+ onTap: () {
+ Get.back();
+ },
+ bgClr: const Color(0xFF6C0000),
+ borderClr: const Color(0xFF990000),
+ ),
+ ),
+ ),
+ ],
+ ),
+ )
+ : const SizedBox(),
+ appBar: AppBar(
+ elevation: 0,
+ backgroundColor: Colors.transparent,
+ automaticallyImplyLeading: false,
+ toolbarHeight: 80,
+ leadingWidth: 56.w,
+ leading: Padding(
+ padding: EdgeInsets.only(left: 16.w, top: 20.h),
+ child: GestureDetector(
+ onTap: () async {
+ type == "pan front"
+ ? kycController.panFrontImage.value = ""
+ : type == "pan back"
+ ? kycController.panBackImage.value = ""
+ : type == "aadhar front"
+ ? kycController.aadharFrontImage.value = ""
+ : kycController.aadharBackImage.value = "";
+ await Future.delayed(const Duration(milliseconds: 210));
+ Get.back(result: false);
+ },
+ child: Padding(
+ padding: EdgeInsets.only(left: 8.w),
+ child: Icon(
+ Icons.arrow_back_ios,
+ color: Colors.white,
+ size: 25.r,
+ ),
+ ),
+ ),
+ ),
+ ),
+ backgroundColor: Colors.black,
+ extendBody: true,
+ body: Stack(
+ children: [
+ const CommonBlurLeft(),
+ const CommonBlurRight(),
+ Stack(
+ children: [
+ Padding(
+ padding:
+ const EdgeInsets.symmetric(horizontal: 16, vertical: 0),
+ child: ListView(
+ physics: const NeverScrollableScrollPhysics(),
+ children: [
+ (type == "pan front" &&
+ kycController.panFrontImage.isNotEmpty) ||
+ (type == "pan back" &&
+ kycController.panBackImage.isNotEmpty) ||
+ (type == "aadhar front" &&
+ kycController
+ .aadharFrontImage.isNotEmpty) ||
+ (type == "aadhar back" &&
+ kycController.aadharBackImage.isNotEmpty)
+ ? text24W500("Preview")
+ : text24W500(type.contains("pan")
+ ? "Upload Image of pan card"
+ : "Upload Image of Aadhar card"),
+ (type == "pan front" &&
+ kycController.panFrontImage.isNotEmpty) ||
+ (type == "pan back" &&
+ kycController.panBackImage.isNotEmpty) ||
+ (type == "aadhar front" &&
+ kycController
+ .aadharFrontImage.isNotEmpty) ||
+ (type == "aadhar back" &&
+ kycController.aadharBackImage.isNotEmpty)
+ ? const SizedBox()
+ : const Gap(14),
+ (type == "pan front" &&
+ kycController.panFrontImage.isNotEmpty) ||
+ (type == "pan back" &&
+ kycController.panBackImage.isNotEmpty) ||
+ (type == "aadhar front" &&
+ kycController
+ .aadharFrontImage.isNotEmpty) ||
+ (type == "aadhar back" &&
+ kycController.aadharBackImage.isNotEmpty)
+ ? const SizedBox()
+ : text18W400(
+ type.contains("front") ? "Front" : " Back"),
+ const Gap(40),
+ InkWell(
+ onTap: () async {
+ if ((type == "pan front" &&
+ kycController.panFrontImage.isNotEmpty) ||
+ (type == "pan back" &&
+ kycController.panBackImage.isNotEmpty) ||
+ (type == "aadhar front" &&
+ kycController
+ .aadharFrontImage.isNotEmpty) ||
+ (type == "aadhar back" &&
+ kycController.aadharBackImage.isNotEmpty)) {
+ } else {
+ var result = await ImagePickerMethod()
+ .getImage(ImageSource.gallery);
+ if (type == "pan front") {
+ kycController.panFrontImage.value = result;
+ } else if (type == "pan back") {
+ kycController.panBackImage.value = result;
+ } else if (type == "aadhar front") {
+ kycController.aadharFrontImage.value = result;
+ } else {
+ kycController.aadharBackImage.value = result;
+ }
+ }
+ },
+ child: DottedBorder(
+ radius: const Radius.circular(10),
+ borderType: BorderType.RRect,
+ color: const Color(0xFF393939),
+ strokeWidth: 1,
+ child: Container(
+ width: Get.width,
+ height: 170,
+ decoration: ShapeDecoration(
+ gradient: LinearGradient(
+ begin: const Alignment(0.98, -0.21),
+ end: const Alignment(-0.98, 0.21),
+ colors: [
+ Colors.white
+ .withOpacity(0.03999999910593033),
+ Colors.white
+ .withOpacity(0.05999999865889549)
+ ],
+ ),
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(10),
+ ),
+ ),
+ child: (type == "pan front" &&
+ kycController.panFrontImage.isNotEmpty)
+ ? Padding(
+ padding: const EdgeInsets.symmetric(
+ vertical: 17, horizontal: 30),
+ child: Image(
+ image: FileImage(
+ File(
+ kycController.panFrontImage.value,
+ ),
+ ),
+ fit: BoxFit.cover,
+ width: Get.width,
+ height: 150.h,
+ ),
+ )
+ : (type == "pan back" &&
+ kycController.panBackImage.isNotEmpty)
+ ? Padding(
+ padding: const EdgeInsets.symmetric(
+ vertical: 17, horizontal: 30),
+ child: Image(
+ image: FileImage(
+ File(
+ kycController
+ .panBackImage.value,
+ ),
+ ),
+ fit: BoxFit.cover,
+ width: Get.width,
+ height: 150.h,
+ ),
+ )
+ : (type == "aadhar front" &&
+ kycController
+ .aadharFrontImage.isNotEmpty)
+ ? Padding(
+ padding:
+ const EdgeInsets.symmetric(
+ vertical: 17,
+ horizontal: 30),
+ child: Image(
+ image: FileImage(
+ File(
+ kycController
+ .aadharFrontImage.value,
+ ),
+ ),
+ fit: BoxFit.cover,
+ width: Get.width,
+ height: 150.h,
+ ),
+ )
+ : (type == "aadhar back" &&
+ kycController.aadharBackImage
+ .isNotEmpty)
+ ? Padding(
+ padding: const EdgeInsets
+ .symmetric(
+ vertical: 17,
+ horizontal: 30),
+ child: Image(
+ image: FileImage(
+ File(
+ kycController
+ .aadharBackImage
+ .value,
+ ),
+ ),
+ fit: BoxFit.cover,
+ width: Get.width,
+ height: 150.h,
+ ),
+ )
+ : Column(
+ mainAxisAlignment:
+ MainAxisAlignment.center,
+ children: [
+ SvgPicture.asset(
+ "assets/images/svg/upload-cloud.svg"),
+ text16W400(
+ "Upload from gallery")
+ ],
+ ),
+ ),
+ ),
+ ),
+ const Gap(20),
+ (type == "pan front" &&
+ kycController.panFrontImage.isNotEmpty) ||
+ (type == "pan back" &&
+ kycController.panBackImage.isNotEmpty) ||
+ (type == "aadhar front" &&
+ kycController
+ .aadharFrontImage.isNotEmpty) ||
+ (type == "aadhar back" &&
+ kycController.aadharBackImage.isNotEmpty)
+ ? const SizedBox()
+ : InkWell(
+ onTap: () async {
+ var result = await ImagePickerMethod()
+ .getImage(ImageSource.camera);
+ if (type == "pan front") {
+ kycController.panFrontImage.value = result;
+ } else if (type == "pan back") {
+ kycController.panBackImage.value = result;
+ } else if (type == "aadhar front") {
+ kycController.aadharFrontImage.value =
+ result;
+ } else {
+ kycController.aadharBackImage.value =
+ result;
+ }
+ },
+ child: Container(
+ width: Get.width,
+ height: 47,
+ decoration: ShapeDecoration(
+ gradient: LinearGradient(
+ begin: const Alignment(0.98, -0.21),
+ end: const Alignment(-0.98, 0.21),
+ colors: [
+ Colors.white
+ .withOpacity(0.03999999910593033),
+ Colors.white
+ .withOpacity(0.05999999865889549)
+ ],
+ ),
+ shape: RoundedRectangleBorder(
+ side: const BorderSide(
+ width: 1, color: Color(0xFF393939)),
+ borderRadius: BorderRadius.circular(8),
+ ),
+ ),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ crossAxisAlignment:
+ CrossAxisAlignment.center,
+ children: [
+ SvgPicture.asset(
+ "assets/images/svg/camera.svg"),
+ const Gap(10),
+ text16W400('Click an image')
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ ],
+ )
+ ],
+ ),
+ ),
+ ),
+ );
+ }
+}
diff --git a/pubspec.lock b/pubspec.lock
index 950f7f8..6eb065e 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -45,10 +45,10 @@ packages:
dependency: transitive
description:
name: collection
- sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
+ sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
url: "https://pub.dev"
source: hosted
- version: "1.18.0"
+ version: "1.17.2"
connectivity_plus:
dependency: "direct main"
description:
@@ -65,6 +65,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.2.4"
+ cross_file:
+ dependency: transitive
+ description:
+ name: cross_file
+ sha256: "2f9d2cbccb76127ba28528cb3ae2c2326a122446a83de5a056aaa3880d3882c5"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.3.3+7"
cupertino_icons:
dependency: "direct main"
description:
@@ -81,6 +89,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.7.10"
+ dotted_border:
+ dependency: "direct main"
+ description:
+ name: dotted_border
+ sha256: "108837e11848ca776c53b30bc870086f84b62ed6e01c503ed976e8f8c7df9c04"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.1.0"
dropdown_button2:
dependency: "direct main"
description:
@@ -113,6 +129,38 @@ packages:
url: "https://pub.dev"
source: hosted
version: "7.0.0"
+ file_selector_linux:
+ dependency: transitive
+ description:
+ name: file_selector_linux
+ sha256: "045d372bf19b02aeb69cacf8b4009555fb5f6f0b7ad8016e5f46dd1387ddd492"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.9.2+1"
+ file_selector_macos:
+ dependency: transitive
+ description:
+ name: file_selector_macos
+ sha256: b15c3da8bd4908b9918111fa486903f5808e388b8d1c559949f584725a6594d6
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.9.3+3"
+ file_selector_platform_interface:
+ dependency: transitive
+ description:
+ name: file_selector_platform_interface
+ sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.6.2"
+ file_selector_windows:
+ dependency: transitive
+ description:
+ name: file_selector_windows
+ sha256: d3547240c20cabf205c7c7f01a50ecdbc413755814d6677f3cb366f04abcead0
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.9.3+1"
flutter:
dependency: "direct main"
description: flutter
@@ -126,6 +174,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.0.3"
+ flutter_plugin_android_lifecycle:
+ dependency: transitive
+ description:
+ name: flutter_plugin_android_lifecycle
+ sha256: b068ffc46f82a55844acfa4fdbb61fad72fa2aef0905548419d97f0f95c456da
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.0.17"
flutter_screenutil:
dependency: "direct main"
description:
@@ -138,10 +194,10 @@ packages:
dependency: "direct main"
description:
name: flutter_svg
- sha256: "7b4ca6cf3304575fe9c8ec64813c8d02ee41d2afe60bcfe0678bcb5375d596a2"
+ sha256: d39e7f95621fc84376bc0f7d504f05c3a41488c562f4a8ad410569127507402c
url: "https://pub.dev"
source: hosted
- version: "2.0.10+1"
+ version: "2.0.9"
flutter_test:
dependency: "direct dev"
description: flutter
@@ -160,6 +216,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "8.2.4"
+ gap:
+ dependency: "direct main"
+ description:
+ name: gap
+ sha256: f19387d4e32f849394758b91377f9153a1b41d79513ef7668c088c77dbc6955d
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.0.1"
get:
dependency: "direct main"
description:
@@ -180,10 +244,10 @@ packages:
dependency: transitive
description:
name: http
- sha256: a2bbf9d017fcced29139daa8ed2bba4ece450ab222871df93ca9eec6f80c34ba
+ sha256: "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2"
url: "https://pub.dev"
source: hosted
- version: "1.2.0"
+ version: "0.13.6"
http_parser:
dependency: transitive
description:
@@ -192,6 +256,94 @@ packages:
url: "https://pub.dev"
source: hosted
version: "4.0.2"
+ image_cropper:
+ dependency: "direct main"
+ description:
+ name: image_cropper
+ sha256: "542c3453109d16bcc388e43ae2276044d2cd6a6d20c68bdcff2c94ab9363ea15"
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.0.1"
+ image_cropper_for_web:
+ dependency: transitive
+ description:
+ name: image_cropper_for_web
+ sha256: "89c936aa772a35b69ca67b78049ae9fa163a4fb8da2f6dee3893db8883fb49d2"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.0.0"
+ image_cropper_platform_interface:
+ dependency: transitive
+ description:
+ name: image_cropper_platform_interface
+ sha256: b232175c132b2f7ede3e1f101652bcd635cb4079a77c6dded8e6d32e6578d685
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.0.0"
+ image_picker:
+ dependency: "direct main"
+ description:
+ name: image_picker
+ sha256: "26222b01a0c9a2c8fe02fc90b8208bd3325da5ed1f4a2acabf75939031ac0bdd"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.7"
+ image_picker_android:
+ dependency: transitive
+ description:
+ name: image_picker_android
+ sha256: "39f2bfe497e495450c81abcd44b62f56c2a36a37a175da7d137b4454977b51b1"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.8.9+3"
+ image_picker_for_web:
+ dependency: transitive
+ description:
+ name: image_picker_for_web
+ sha256: e2423c53a68b579a7c37a1eda967b8ae536c3d98518e5db95ca1fe5719a730a3
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.0.2"
+ image_picker_ios:
+ dependency: transitive
+ description:
+ name: image_picker_ios
+ sha256: fadafce49e8569257a0cad56d24438a6fa1f0cbd7ee0af9b631f7492818a4ca3
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.8.9+1"
+ image_picker_linux:
+ dependency: transitive
+ description:
+ name: image_picker_linux
+ sha256: "4ed1d9bb36f7cd60aa6e6cd479779cc56a4cb4e4de8f49d487b1aaad831300fa"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.2.1+1"
+ image_picker_macos:
+ dependency: transitive
+ description:
+ name: image_picker_macos
+ sha256: "3f5ad1e8112a9a6111c46d0b57a7be2286a9a07fc6e1976fdf5be2bd31d4ff62"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.2.1+1"
+ image_picker_platform_interface:
+ dependency: transitive
+ description:
+ name: image_picker_platform_interface
+ sha256: fa4e815e6fcada50e35718727d83ba1c92f1edf95c0b4436554cec301b56233b
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.9.3"
+ image_picker_windows:
+ dependency: transitive
+ description:
+ name: image_picker_windows
+ sha256: "6ad07afc4eb1bc25f3a01084d28520496c4a3bb0cb13685435838167c9dcedeb"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.2.1+1"
js:
dependency: transitive
description:
@@ -204,10 +356,10 @@ packages:
dependency: transitive
description:
name: lints
- sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593"
+ sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452"
url: "https://pub.dev"
source: hosted
- version: "2.0.1"
+ version: "2.1.1"
matcher:
dependency: transitive
description:
@@ -228,10 +380,18 @@ packages:
dependency: transitive
description:
name: meta
- sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e
+ sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
url: "https://pub.dev"
source: hosted
- version: "1.10.0"
+ version: "1.9.1"
+ mime:
+ dependency: transitive
+ description:
+ name: mime
+ sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.4"
nm:
dependency: transitive
description:
@@ -248,6 +408,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.8.3"
+ path_drawing:
+ dependency: transitive
+ description:
+ name: path_drawing
+ sha256: bbb1934c0cbb03091af082a6389ca2080345291ef07a5fa6d6e078ba8682f977
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.1"
path_parsing:
dependency: transitive
description:
@@ -284,10 +452,10 @@ packages:
dependency: transitive
description:
name: petitparser
- sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27
+ sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750
url: "https://pub.dev"
source: hosted
- version: "6.0.2"
+ version: "5.4.0"
pin_code_fields:
dependency: "direct main"
description:
@@ -356,10 +524,10 @@ packages:
dependency: transitive
description:
name: shared_preferences_web
- sha256: "7b15ffb9387ea3e237bb7a66b8a23d2147663d391cafc5c8f37b2e7b4bde5d21"
+ sha256: d762709c2bbe80626ecc819143013cc820fa49ca5e363620ee20a8b15a3e3daf
url: "https://pub.dev"
source: hosted
- version: "2.2.2"
+ version: "2.2.1"
shared_preferences_windows:
dependency: transitive
description:
@@ -385,18 +553,18 @@ packages:
dependency: transitive
description:
name: stack_trace
- sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
+ sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
url: "https://pub.dev"
source: hosted
- version: "1.11.1"
+ version: "1.11.0"
stream_channel:
dependency: transitive
description:
name: stream_channel
- sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
+ sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
url: "https://pub.dev"
source: hosted
- version: "2.1.2"
+ version: "2.1.1"
string_scanner:
dependency: transitive
description:
@@ -417,10 +585,10 @@ packages:
dependency: transitive
description:
name: test_api
- sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
+ sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
url: "https://pub.dev"
source: hosted
- version: "0.6.1"
+ version: "0.6.0"
typed_data:
dependency: transitive
description:
@@ -433,26 +601,26 @@ packages:
dependency: transitive
description:
name: vector_graphics
- sha256: "32c3c684e02f9bc0afb0ae0aa653337a2fe022e8ab064bcd7ffda27a74e288e3"
+ sha256: "4ac59808bbfca6da38c99f415ff2d3a5d7ca0a6b4809c71d9cf30fba5daf9752"
url: "https://pub.dev"
source: hosted
- version: "1.1.11+1"
+ version: "1.1.10+1"
vector_graphics_codec:
dependency: transitive
description:
name: vector_graphics_codec
- sha256: c86987475f162fadff579e7320c7ddda04cd2fdeffbe1129227a85d9ac9e03da
+ sha256: f3247e7ab0ec77dc759263e68394990edc608fb2b480b80db8aa86ed09279e33
url: "https://pub.dev"
source: hosted
- version: "1.1.11+1"
+ version: "1.1.10+1"
vector_graphics_compiler:
dependency: transitive
description:
name: vector_graphics_compiler
- sha256: "12faff3f73b1741a36ca7e31b292ddeb629af819ca9efe9953b70bd63fc8cd81"
+ sha256: "18489bdd8850de3dd7ca8a34e0c446f719ec63e2bab2e7a8cc66a9028dd76c5a"
url: "https://pub.dev"
source: hosted
- version: "1.1.11+1"
+ version: "1.1.10+1"
vector_math:
dependency: transitive
description:
@@ -465,18 +633,18 @@ packages:
dependency: transitive
description:
name: web
- sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152
+ sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
url: "https://pub.dev"
source: hosted
- version: "0.3.0"
+ version: "0.1.4-beta"
win32:
dependency: transitive
description:
name: win32
- sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8"
+ sha256: b0f37db61ba2f2e9b7a78a1caece0052564d1bc70668156cf3a29d676fe4e574
url: "https://pub.dev"
source: hosted
- version: "5.2.0"
+ version: "5.1.1"
xdg_directories:
dependency: transitive
description:
@@ -489,10 +657,10 @@ packages:
dependency: transitive
description:
name: xml
- sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226
+ sha256: "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84"
url: "https://pub.dev"
source: hosted
- version: "6.5.0"
+ version: "6.3.0"
sdks:
- dart: ">=3.2.0 <4.0.0"
- flutter: ">=3.16.0"
+ dart: ">=3.1.0 <4.0.0"
+ flutter: ">=3.13.0"
diff --git a/pubspec.yaml b/pubspec.yaml
index bc3d451..f0a1945 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,38 +1,17 @@
name: traderscircuit
description: A new Flutter project.
-# The following line prevents the package from being accidentally published to
-# pub.dev using `flutter pub publish`. This is preferred for private packages.
-publish_to: "none" # Remove this line if you wish to publish to pub.dev
-# The following defines the version and build number for your application.
-# A version number is three numbers separated by dots, like 1.2.43
-# followed by an optional build number separated by a +.
-# Both the version and the builder number may be overridden in flutter
-# build by specifying --build-name and --build-number, respectively.
-# In Android, build-name is used as versionName while build-number used as versionCode.
-# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
-# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion.
-# Read more about iOS versioning at
-# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
-# In Windows, build-name is used as the major, minor, and patch parts
-# of the product and file versions while build-number is used as the build suffix.
+publish_to: "none"
+
version: 1.0.0+1
environment:
sdk: ">=2.19.6 <3.0.0"
-# Dependencies specify other packages that your package needs in order to work.
-# To automatically upgrade your package dependencies to the latest versions
-# consider running `flutter pub upgrade --major-versions`. Alternatively,
-# dependencies can be manually updated by changing the version numbers below to
-# the latest version available on pub.dev. To see which dependencies have newer
-# versions available, run `flutter pub outdated`.
dependencies:
flutter:
sdk: flutter
- # The following adds the Cupertino Icons font to your application.
- # Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2
get: ^4.6.5
flutter_screenutil: ^5.9.0
@@ -43,29 +22,20 @@ dependencies:
pin_code_fields: ^8.0.1
fluttertoast: ^8.0.9
dropdown_button2: ^2.1.4
+ gap: ^3.0.1
+ image_picker: ^1.0.7
+ dotted_border: ^2.1.0
+ image_cropper: ^4.0.1
dev_dependencies:
flutter_test:
sdk: flutter
- # The "flutter_lints" package below contains a set of recommended lints to
- # encourage good coding practices. The lint set provided by the package is
- # activated in the `analysis_options.yaml` file located at the root of your
- # package. See that file for information about deactivating specific lint
- # rules and activating additional ones.
flutter_lints: ^2.0.0
-# For information on the generic Dart part of this file, see the
-# following page: https://dart.dev/tools/pub/pubspec
-
-# The following section is specific to Flutter packages.
flutter:
- # The following line ensures that the Material Icons font is
- # included with your application, so that you can use the icons in
- # the material Icons class.
uses-material-design: true
- # To add assets to your application, add an assets section, like this:
assets:
- assets/images/
- assets/images/svg/
@@ -73,29 +43,7 @@ flutter:
- assets/images/png/sidemenu/
- assets/images/png/
- # - images/a_dot_ham.jpeg
-
- # An image asset can refer to one or more resolution-specific "variants", see
- # https://flutter.dev/assets-and-images/#resolution-aware
-
- # For details regarding adding assets from package dependencies, see
- # https://flutter.dev/assets-and-images/#from-packages
-
- # To add custom fonts to your application, add a fonts section here,
- # in this "flutter" section. Each entry in this list should have a
- # "family" key with the font family name, and a "fonts" key with a
- # list giving the asset and other descriptors for the font. For
- # example:
fonts:
- family: manrope
fonts:
- asset: assets/fonts/manrope/Manrope-VariableFont_wght.ttf
-
- # - family: Trajan Pro
- # fonts:
- # - asset: fonts/TrajanPro.ttf
- # - asset: fonts/TrajanPro_Bold.ttf
- # weight: 700
- #
- # For details regarding fonts from package dependencies,
- # see https://flutter.dev/custom-fonts/#from-packages