passo_mobile_app/lib/screens/profile/profile.dart

155 lines
6.5 KiB
Dart
Raw Normal View History

2023-01-26 02:15:00 +00:00
import 'package:expandable_group/expandable_group_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/src/widgets/container.dart';
import 'package:flutter/src/widgets/framework.dart';
import 'package:flutter_bloc/flutter_bloc.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/font_awesome_icons.dart';
import 'package:fluttericon/modern_pictograms_icons.dart';
import 'package:fluttericon/typicons_icons.dart';
import 'package:unit2/bloc/bloc/user_bloc.dart';
import 'package:unit2/theme-data.dart/colors.dart';
import 'components/main_menu.dart';
import 'components/submenu.dart';
class ProfileInfo extends StatefulWidget {
const ProfileInfo({super.key});
@override
State<ProfileInfo> createState() => _ProfileInfoState();
}
class _ProfileInfoState extends State<ProfileInfo> {
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
appBar: AppBar(
backgroundColor: primary,
centerTitle: true,
title: const Text('Profile'),
),
body: BlocConsumer<UserBloc, UserState>(
listener: (context, state) {
// TODO: implement listener
},
builder: (context, state) {
if (state is UserLoggedIn) {
return Container(
padding: const EdgeInsets.symmetric(
vertical: 12, horizontal: 12),
child: ListView(
children: [
2023-01-26 05:35:07 +00:00
const Text("View and Update your Profile Information"),
2023-01-26 02:15:00 +00:00
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"),
subMenu(Icons.home, "Home Addresses"),
subMenu(Icons.contact_mail, "Identifications"),
subMenu(Icons.contact_phone, "Contact Info"),
subMenu(Icons.flag, "Citizenships"),
]),
2023-01-26 05:35:07 +00:00
const Divider(),
2023-01-26 02:15:00 +00:00
const MainMenu(
icon: Elusive.group,
title: "Family",
),
2023-01-26 05:35:07 +00:00
const Divider(),
2023-01-26 02:15:00 +00:00
const MainMenu(
icon: FontAwesome5.graduation_cap,
title: "Education",
),
2023-01-26 05:35:07 +00:00
const Divider(),
2023-01-26 02:15:00 +00:00
const MainMenu(
icon: Icons.stars,
title: "Eligibility",
),
2023-01-26 05:35:07 +00:00
const Divider(),
2023-01-26 02:15:00 +00:00
const MainMenu(
icon: FontAwesome5.shopping_bag,
title: "Work History",
),
2023-01-26 05:35:07 +00:00
const Divider(),
2023-01-26 02:15:00 +00:00
const MainMenu(
icon: FontAwesome5.walking,
title: "Voluntary Work & Civic Services",
),
2023-01-26 05:35:07 +00:00
const Divider(),
2023-01-26 02:15:00 +00:00
const MainMenu(
icon: Elusive.lightbulb,
title: "Learning & Development",
),
2023-01-26 05:35:07 +00:00
const Divider(),
2023-01-26 02:15:00 +00:00
const MainMenu(
icon: Brandico.codepen,
title: "Personal 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"),
subMenu(FontAwesome5.certificate,
"Organization Memberships"),
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"),
]),
],
),
);
}
return const Center(
child: Text("default"),
);
},
)));
}
}