import 'package:expandable_group/expandable_group_widget.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_progress_hud/flutter_progress_hud.dart'; import 'package:fluttericon/brandico_icons.dart'; import 'package:fluttericon/elusive_icons.dart'; import 'package:fluttericon/entypo_icons.dart'; import 'package:fluttericon/font_awesome5_icons.dart'; import 'package:fluttericon/modern_pictograms_icons.dart'; import 'package:unit2/bloc/profile/profile_bloc.dart'; import 'package:unit2/screens/profile/components/basic_information/citizenship_screen.dart'; import 'package:unit2/screens/profile/components/basic_information/contact_information.dart'; import 'package:unit2/screens/profile/components/basic_information/identification_information.dart'; import 'package:unit2/screens/profile/components/basic_information/primary_information.dart'; import 'package:unit2/screens/profile/components/education_screen.dart'; import 'package:unit2/screens/profile/components/eligibility.dart'; import 'package:unit2/screens/profile/components/learning_and_development_screen.dart'; import 'package:unit2/screens/profile/components/loading_screen.dart'; import 'package:unit2/screens/profile/components/other_information/org_membership.dart'; import 'package:unit2/screens/profile/components/other_information/skills_and_hobbies_screen.dart'; import 'package:unit2/screens/profile/components/references_screen.dart'; import 'package:unit2/screens/profile/components/work_history_screen.dart'; import 'package:unit2/screens/profile/voluntary_works.dart'; import 'package:unit2/theme-data.dart/colors.dart'; import '../../bloc/user/user_bloc.dart'; import 'components/main_menu.dart'; import 'components/submenu.dart'; class ProfileInfo extends StatefulWidget { const ProfileInfo({super.key}); @override State createState() => _ProfileInfoState(); } class _ProfileInfoState extends State { @override Widget build(BuildContext context) { return SafeArea( child: Scaffold( appBar: AppBar( backgroundColor: primary, centerTitle: true, title: const Text('Profile'), ), body: ProgressHUD( child: BlocBuilder(builder: (context, state) { if (state is UserLoggedIn) { return BlocConsumer( listener: (context, state) { if (state is ProfileLoading) { final progress = ProgressHUD.of(context); progress?.showWithText( 'Loading Profile', ); } if (state is ProfileLoaded) { final progress = ProgressHUD.of(context); progress?.dismiss(); } }, builder: (context, state) { if (state is ProfileLoaded) { return Container( padding: const EdgeInsets.symmetric( vertical: 12, horizontal: 12), child: ListView( children: [ const Text( "View and Update your Profile Information"), ExpandableGroup( collapsedIcon: const Icon(Icons.keyboard_arrow_down), expandedIcon: const Icon(Icons.keyboard_arrow_up), header: const ListTile( leading: Icon( Elusive.address_book, color: primary, ), title: Text( "Basic Information", style: TextStyle( fontWeight: FontWeight.bold), ), ), items: [ subMenu(Icons.person, "Primary",(){ Navigator.push(context,MaterialPageRoute(builder: (BuildContext context){ return PrimaryInfo(primaryInformation: state.profileInformation.basicInfo.primaryInformation); }) ); }), subMenu(Icons.home, "Home Addresses",(){}), subMenu( Icons.contact_mail, "Identifications",(){ Navigator.push(context, MaterialPageRoute(builder: (BuildContext context){ return IdentificationInformations(identities: state.profileInformation.basicInfo.identifications); })); }), subMenu( Icons.contact_phone, "Contact Info",(){ Navigator.push(context, MaterialPageRoute(builder: (BuildContext context){ return ContactInformation(contacts: state.profileInformation.basicInfo.contactInformation,); })); }), subMenu(Icons.flag, "Citizenships",(){ Navigator.push(context, MaterialPageRoute(builder: (BuildContext context){ return CitizenShipScreen(citizenships: state.profileInformation.basicInfo.citizenships,); })); }), ]), const Divider(), MainMenu( icon: Elusive.group, title: "Family", onTap: (){}, ), const Divider(), MainMenu( icon: FontAwesome5.graduation_cap, title: "Education", onTap: (){ Navigator.push(context, MaterialPageRoute(builder: (BuildContext context){ return EducationScreen(educationBackgrounds: state.profileInformation.educationalBackgrounds); })); }, ), const Divider(), MainMenu( icon: Icons.stars, title: "Eligibility", onTap: (){ Navigator.push(context, MaterialPageRoute(builder: (BuildContext context){ return EligibiltyScreen(eligibilities: state.profileInformation.eligibilities); })); }, ), const Divider(), MainMenu( icon: FontAwesome5.shopping_bag, title: "Work History", onTap: (){ Navigator.push(context, MaterialPageRoute(builder: (BuildContext context){ return WorkHistoryScreen(workExperiences: state.profileInformation.workExperiences); })); }, ), const Divider(), MainMenu( icon: FontAwesome5.walking, title: "Voluntary Work & Civic Services", onTap: (){ Navigator.push(context, MaterialPageRoute(builder: (BuildContext context){ return VolunataryWorkScreen(voluntaryWorks: state.profileInformation.voluntaryWorks); })); }, ), const Divider(), MainMenu( icon: Elusive.lightbulb, title: "Learning & Development", onTap: (){ Navigator.push(context, MaterialPageRoute(builder: (BuildContext context){ return LearningAndDevelopmentScreen(learningDevelopments: state.profileInformation.learningsAndDevelopment); })); }, ), const Divider(), MainMenu( icon: Brandico.codepen, title: "Personal References", onTap: (){ Navigator.push(context, MaterialPageRoute(builder: (BuildContext context){ return ReferencesScreen(references: state.profileInformation.references); })); }, ), ExpandableGroup( collapsedIcon: const Icon(Icons.keyboard_arrow_down), expandedIcon: const Icon(Icons.keyboard_arrow_up), header: const ListTile( leading: Icon( Icons.info, color: primary, ), title: Text( "Other Information", style: TextStyle( fontWeight: FontWeight.bold), ), ), items: [ subMenu(Icons.fitness_center, "Skills & Hobbies",(){ Navigator.push(context, MaterialPageRoute(builder: (BuildContext context){ return SkillHobbiesScreen(skillsHobbies: state.profileInformation.otherInformation.skillsAndHobbies); })); }), subMenu(FontAwesome5.certificate, "Organization Memberships",(){ Navigator.push(context, MaterialPageRoute(builder: (BuildContext context){ return OrgMembershipsScreen(orgMemberships: state.profileInformation.otherInformation.orgMemberships); })); }), subMenu(Entypo.doc_text, "Non-Academic Recognitions",(){}), ]), ExpandableGroup( collapsedIcon: const Icon(Icons.keyboard_arrow_down), expandedIcon: const Icon(Icons.keyboard_arrow_up), header: const ListTile( leading: Icon( FontAwesome5.laptop_house, color: primary, ), title: Text( "Assets", style: TextStyle( fontWeight: FontWeight.bold), ), ), items: [ subMenu(ModernPictograms.home, "Real Property Tax",(){}), ]), ], ), ); } if (state is ProfileLoading) { return const LoadingScreen(); } return Container(); }, ); } return Container(); }), ))); } }