import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:ride/constant/colors.dart'; import 'package:ride/constant/style.dart'; import 'package:ride/controller/profile/profile_controller.dart'; import 'package:ride/views/widgets/elevated_btn.dart'; import 'package:ride/views/widgets/my_scafold.dart'; import 'package:ride/views/widgets/mycircular.dart'; class PassengerProfilePage extends StatelessWidget { const PassengerProfilePage({super.key}); @override Widget build(BuildContext context) { Get.put(ProfileController()); return MyScafolld( isleading: true, title: 'My Profile', body: [ GetBuilder( builder: (controller) => controller.isloading ? const MyCircularProgressIndicator() : Padding( padding: const EdgeInsets.symmetric(horizontal: 15), child: SingleChildScrollView( child: Column( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( 'Edit Profile'.tr, style: AppStyle.headtitle2, ), ListTile( title: Text( 'Name'.tr, style: AppStyle.title, ), leading: const Icon( Icons.person_pin_rounded, size: 35, ), trailing: const Icon(Icons.arrow_forward_ios), subtitle: Text( '${controller.prfoileData['first_name']} ${controller.prfoileData['last_name']}'), onTap: () { controller.updatField('first_name'); }, ), ListTile( title: Text( 'Gender'.tr, style: AppStyle.title, ), leading: Image.asset( 'assets/images/gender.png', width: 35, ), trailing: const Icon(Icons.arrow_forward_ios), subtitle: Text( controller.prfoileData['gender'].toString()), onTap: () { Get.defaultDialog( title: 'Update Gender'.tr, content: Column( children: [ GenderPicker(), MyElevatedButton( title: 'Update'.tr, onPressed: () { controller.updateColumn({ 'id': controller.prfoileData['id'] .toString(), 'gender': controller.gender, }); Get.back(); }, ) ], )); // controller.updatField('gender'); }, ), ListTile( title: Text( 'Education'.tr, style: AppStyle.title, ), leading: Image.asset( 'assets/images/education.png', width: 35, ), trailing: const Icon(Icons.arrow_forward_ios), subtitle: Text( controller.prfoileData['education'].toString()), onTap: () { Get.defaultDialog( title: 'Update Education'.tr, content: Column( children: [ EducationDegreePicker(), MyElevatedButton( title: 'Update Education'.tr, onPressed: () { controller.updateColumn({ 'id': controller.prfoileData['id'] .toString(), 'education': controller.selectedDegree, }); Get.back(); }, ) ], )); }, ), ListTile( title: Text( 'Employment Type'.tr, style: AppStyle.title, ), leading: Image.asset( 'assets/images/employmentType.png', width: 35, ), trailing: const Icon(Icons.arrow_forward_ios), subtitle: Text(controller .prfoileData['employmentType'] .toString()), onTap: () { controller.updatField('employmentType'); }, ), ListTile( title: Text( 'Marital Status'.tr, style: AppStyle.title, ), leading: Image.asset( 'assets/images/maritalStatus.png', width: 35, ), trailing: const Icon(Icons.arrow_forward_ios), subtitle: Text(controller .prfoileData['maritalStatus'] .toString()), onTap: () { controller.updatField('maritalStatus'); }, ), ], ), ), )) ], ); } } class GenderPicker extends StatelessWidget { final ProfileController controller = Get.put(ProfileController()); final List genderOptions = ['Male', 'Female', 'Other']; GenderPicker({super.key}); @override Widget build(BuildContext context) { return CupertinoPicker( itemExtent: 32.0, onSelectedItemChanged: (int index) { controller.setGender(genderOptions[index]); }, children: genderOptions.map((String value) { return Text(value); }).toList(), ); } } class EducationDegreePicker extends StatelessWidget { final ProfileController controller = Get.put(ProfileController()); final List degreeOptions = [ 'High School Diploma', 'Associate Degree', 'Bachelor\'s Degree', 'Master\'s Degree', 'Doctoral Degree', ]; EducationDegreePicker({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return CupertinoPicker( // backgroundColor: AppColor.accentColor, looping: true, squeeze: 2, diameterRatio: 2, itemExtent: 32.0, onSelectedItemChanged: (int index) { controller.setDegree(degreeOptions[index]); }, children: degreeOptions.map((String value) { return Text(value); }).toList(), ); } }