import 'package:cheminova/screens/authentication/verification_success_screen.dart'; import 'package:cheminova/widgets/custom_button.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:get/get.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:pin_code_fields/pin_code_fields.dart'; class VerifyOtpScreen extends StatefulWidget { const VerifyOtpScreen({super.key}); @override State createState() => _VerifyOtpScreenState(); } class _VerifyOtpScreenState extends State { final otpController = TextEditingController(); @override Widget build(BuildContext context) { return Scaffold( extendBodyBehindAppBar: true, appBar: AppBar( backgroundColor: Colors.transparent, elevation: 0, leading: GestureDetector( onTap: () => Get.back(), child: Padding( padding: const EdgeInsets.all(8.0), // Adjust the padding as needed child: SizedBox( width: 24, // Adjust the width as needed height: 24, // Adjust the height as needed child: SvgPicture.asset( 'assets/svg/back_arrow.svg', ), ), ), ), ), body: Stack( alignment: Alignment.topCenter, children: [ Container( decoration: const BoxDecoration( image: DecorationImage( fit: BoxFit.cover, image: AssetImage( 'assets/images/image_1.png', ), ), borderRadius: BorderRadius.only( bottomLeft: Radius.circular(50.0), bottomRight: Radius.circular(50.0), ), ), child: SizedBox( width: Get.width, height: Get.height * 0.7, ), ), Center( child: SingleChildScrollView( child: Card( margin: const EdgeInsets.symmetric(horizontal: 24), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(19), side: const BorderSide(color: Color(0xFFFDFDFD)), ), color: const Color(0xFFB4D1E5).withOpacity(0.9), child: Padding( padding: const EdgeInsets.all(16.0), child: Column( children: [ Container( alignment: Alignment.centerLeft, padding: const EdgeInsets.only(bottom: 10), child: SvgPicture.asset( 'assets/svg/verify_otp.svg', height: Get.height * 0.05, ), ), Container( padding: const EdgeInsets.only(bottom: 10), alignment: Alignment.centerLeft, child: Text( 'Verification Code', style: GoogleFonts.getFont( 'Roboto', fontWeight: FontWeight.w500, fontSize: 30, height: 1.2, ), ), ), Container( padding: const EdgeInsets.only(bottom: 10), alignment: Alignment.centerLeft, child: Text( 'OTP has sent to your registered mobile number, Please verify', style: GoogleFonts.getFont( 'Roboto', fontWeight: FontWeight.w300, fontSize: 14, height: 1.8, ), ), ), SizedBox( width: Get.width * 0.8, child: PinCodeTextField( appContext: context, length: 6, obscureText: false, animationType: AnimationType.fade, pinTheme: PinTheme( shape: PinCodeFieldShape.box, borderRadius: BorderRadius.circular(5), fieldHeight: 50, fieldWidth: 40, activeFillColor: Colors.white, inactiveFillColor: Colors.white, selectedFillColor: Colors.white, activeColor: Colors.blue, inactiveColor: Colors.grey, selectedColor: Colors.blue, ), animationDuration: const Duration(milliseconds: 300), backgroundColor: Colors.transparent, enableActiveFill: true, controller: otpController, onCompleted: (v) { print("Completed: $v"); }, onChanged: (value) { print(value); }, ), ), const SizedBox(height: 30), Container( alignment: Alignment.center, child: Text( 'Resend in 30 seconds', style: GoogleFonts.getFont( 'Roboto', fontWeight: FontWeight.w300, fontSize: 14, height: 1.8, ), ), ), const SizedBox(height: 30), GestureDetector( onTap: () => Get.back(), child: Text( 'Cancel', style: GoogleFonts.getFont( 'Roboto', fontWeight: FontWeight.w400, fontSize: 20, height: 1, letterSpacing: -0.2, ), ), ), const SizedBox(height: 30), CustomButton( text: "Verify", onPressed: () => Get.to( () => const VerificationSuccessScreen(), ), ), ], ), ), ), ), ), ], ), ); } }