Merge pull request #18 from WDI-Ideas/priyanka
Profile tab almost done.
BIN
assets/images/png/Black13.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
assets/images/png/Black1323e.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
assets/images/png/BlackPass.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
assets/images/png/Frame 1.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
assets/images/png/Frame 1000004056.png
Normal file
|
After Width: | Height: | Size: 141 KiB |
BIN
assets/images/png/Frame 12 (1).png
Normal file
|
After Width: | Height: | Size: 912 B |
BIN
assets/images/png/Frame 12.png
Normal file
|
After Width: | Height: | Size: 912 B |
BIN
assets/images/png/Frame 24.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
assets/images/png/Group12.png
Normal file
|
After Width: | Height: | Size: 73 KiB |
BIN
assets/images/png/Rectangle 29ss.png
Normal file
|
After Width: | Height: | Size: 234 KiB |
BIN
assets/images/png/Rectangle 30aa.png
Normal file
|
After Width: | Height: | Size: 305 KiB |
BIN
assets/images/png/Rectangle 31ee.png
Normal file
|
After Width: | Height: | Size: 287 KiB |
BIN
assets/images/png/Vector (5)1.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
assets/images/png/Vector (6).png
Normal file
|
After Width: | Height: | Size: 671 B |
BIN
assets/images/png/Vector ws.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
assets/images/png/VectorDevice.png
Normal file
|
After Width: | Height: | Size: 645 B |
BIN
assets/images/png/Vectorftt.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
assets/images/png/blocked.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
assets/images/png/codicon_account.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
assets/images/png/codicon_bug.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
assets/images/png/deleteIcon (2).png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/png/eyeIcon.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
assets/images/png/fluent_chat-20-.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
assets/images/png/fluent_chat-20-22.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
assets/images/png/fluent_chat-20-regular.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
assets/images/png/fluent_person-support-20-regular.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
assets/images/png/iconoir_privacy-policy.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
assets/images/png/octicon_question-24.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
assets/images/png/profileimg.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
@@ -158,6 +158,7 @@ class CommonDropdownradioBtn extends StatefulWidget {
|
||||
const CommonDropdownradioBtn({
|
||||
required this.hint,
|
||||
required this.items,
|
||||
this.leadingIcon,
|
||||
this.textcolor = false,
|
||||
this.onItemSelected,
|
||||
this.showOtherOption = false,
|
||||
@@ -166,6 +167,7 @@ class CommonDropdownradioBtn extends StatefulWidget {
|
||||
|
||||
final String hint;
|
||||
final List<String>? items;
|
||||
final Widget? leadingIcon;
|
||||
final void Function(String)? onItemSelected;
|
||||
final bool textcolor;
|
||||
final bool showOtherOption;
|
||||
@@ -186,15 +188,19 @@ class _CommonDropdownradioBtnState extends State<CommonDropdownradioBtn> {
|
||||
hint: Obx(() {
|
||||
return Row(
|
||||
children: [
|
||||
if (widget.leadingIcon != null)
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(right: 16),
|
||||
child: widget.leadingIcon!,
|
||||
),
|
||||
Expanded(
|
||||
child: Text(
|
||||
selectedValue.isEmpty ? widget.hint : selectedValue.value,
|
||||
style: TextStyle(
|
||||
fontSize: 12,
|
||||
fontFamily: 'hiragino',
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w400,
|
||||
fontFamily: 'Helvetica'),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
),
|
||||
@@ -209,6 +215,7 @@ class _CommonDropdownradioBtnState extends State<CommonDropdownradioBtn> {
|
||||
return Obx(() {
|
||||
return Row(
|
||||
children: [
|
||||
if (widget.leadingIcon != null) widget.leadingIcon!,
|
||||
Expanded(
|
||||
child: Text(
|
||||
selectedValue.value,
|
||||
|
||||
@@ -191,6 +191,8 @@ class _ManageMembersCalState extends State<ManageMembersCal> {
|
||||
commonGlassContainer(
|
||||
width: 25.w,
|
||||
height: 25.h,
|
||||
opacity1: 0.24,
|
||||
opacity2: 0.24,
|
||||
borderradius: 100.r,
|
||||
customWidget: Center(
|
||||
child: Image.asset(
|
||||
@@ -204,6 +206,8 @@ class _ManageMembersCalState extends State<ManageMembersCal> {
|
||||
commonGlassContainer(
|
||||
width: 25.w,
|
||||
height: 25.h,
|
||||
opacity1: 0.24,
|
||||
opacity2: 0.24,
|
||||
borderradius: 100.r,
|
||||
customWidget: Center(
|
||||
child: Image.asset(
|
||||
@@ -369,5 +373,4 @@ class _ManageMembersCalState extends State<ManageMembersCal> {
|
||||
),
|
||||
));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -6,7 +6,6 @@ import 'package:regroup/Common/CommonButton.dart';
|
||||
import 'package:regroup/Common/CommonDropDown.dart';
|
||||
import 'package:regroup/Common/CommonGlassmorphism.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/CommonDropdown.dart';
|
||||
import 'package:regroup/Utils/Common/CustomTextformfield.dart';
|
||||
import 'package:regroup/Utils/Common/blureffect.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
|
||||
98
lib/Feed Module/Main_Screens/ProfileTab/Badges/Badges.dart
Normal file
@@ -0,0 +1,98 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/blureffect.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
|
||||
class Badges extends StatefulWidget {
|
||||
const Badges({super.key});
|
||||
|
||||
@override
|
||||
State<Badges> createState() => _BadgesState();
|
||||
}
|
||||
|
||||
class _BadgesState extends State<Badges> {
|
||||
List BadgesData = [
|
||||
{
|
||||
"imagePath": "assets/images/png/Frame 1000004056.png",
|
||||
"text": "Lorem ipsum is a dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Frame 1000004056.png",
|
||||
"text": "Lorem ipsum is a dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Frame 1000004056.png",
|
||||
"text": "Lorem ipsum is a dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Frame 1000004056.png",
|
||||
"text": "Lorem ipsum is a dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Frame 1000004056.png",
|
||||
"text": "Lorem ipsum is a dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Frame 1000004056.png",
|
||||
"text": "Lorem ipsum is a dummy text",
|
||||
},
|
||||
];
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Badges",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: SingleChildScrollView(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||
child: Column(children: [
|
||||
sizedBoxHeight(25.h),
|
||||
Container(
|
||||
height: 600.h,
|
||||
child: GridView.builder(
|
||||
scrollDirection: Axis.vertical,
|
||||
gridDelegate:
|
||||
const SliverGridDelegateWithFixedCrossAxisCount(
|
||||
crossAxisCount: 3,
|
||||
mainAxisSpacing: 35,
|
||||
crossAxisSpacing: 8,
|
||||
childAspectRatio: 0.65,
|
||||
),
|
||||
itemCount: BadgesData.length,
|
||||
itemBuilder: (context, index) {
|
||||
return Column(
|
||||
children: [
|
||||
Image.asset(
|
||||
BadgesData[index]["imagePath"],
|
||||
height: 100.h,
|
||||
width: 105.w,
|
||||
),
|
||||
Expanded(
|
||||
child: Center(
|
||||
child: text14w400_FCFCFC(
|
||||
BadgesData[index]["text"],
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}),
|
||||
)
|
||||
]))))
|
||||
]));
|
||||
}
|
||||
}
|
||||
220
lib/Feed Module/Main_Screens/ProfileTab/Clubs/Clubs.dart
Normal file
@@ -0,0 +1,220 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:regroup/Common/CommonGlassmorphism.dart';
|
||||
import 'package:regroup/Common/CommonWidget.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/blureffect.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
|
||||
class Clubs extends StatefulWidget {
|
||||
const Clubs({super.key});
|
||||
|
||||
@override
|
||||
State<Clubs> createState() => _ClubsState();
|
||||
}
|
||||
|
||||
class _ClubsState extends State<Clubs> {
|
||||
List ClubsData = [
|
||||
{
|
||||
"imagePath": "assets/images/png/Rectangle 65.png",
|
||||
"text": "Cardio crusaders circle",
|
||||
"members": "7 members"
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Rectangle 26.png",
|
||||
"text": "Strength squad syndicate",
|
||||
"members": "7 members"
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/img2.png",
|
||||
"text": "Flexibility faction force",
|
||||
"members": "7 members"
|
||||
},
|
||||
];
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Clubs",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: SingleChildScrollView(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||
child: Column(children: [
|
||||
sizedBoxHeight(25.h),
|
||||
ListView.builder(
|
||||
shrinkWrap: true,
|
||||
itemCount: ClubsData.length,
|
||||
itemBuilder: (context, index) {
|
||||
return clubsCard(
|
||||
ontap: () {},
|
||||
imagepath: ClubsData[index]['imagePath'],
|
||||
title: ClubsData[index]['text'],
|
||||
members: ClubsData[index]['members']);
|
||||
},
|
||||
)
|
||||
]),
|
||||
)))
|
||||
]));
|
||||
}
|
||||
|
||||
Widget clubsCard({
|
||||
required String imagepath,
|
||||
required String title,
|
||||
required void Function()? ontap,
|
||||
required String members,
|
||||
}) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.only(bottom: 25.h),
|
||||
child: GestureDetector(
|
||||
onTap: ontap,
|
||||
child: commonGlassContainer(
|
||||
border: 0.9,
|
||||
width: double.infinity,
|
||||
height: 143.h,
|
||||
borderradius: 10.r,
|
||||
customWidget: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 16.h),
|
||||
child: Column(
|
||||
children: [
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
height: 54.h,
|
||||
width: 54.h,
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
// color: Colors.amber,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Color.fromRGBO(0, 0, 0, 0.25),
|
||||
offset: Offset(0, 6),
|
||||
blurRadius: 12,
|
||||
spreadRadius: 0,
|
||||
),
|
||||
],
|
||||
),
|
||||
child:
|
||||
// Center(
|
||||
// child: Image.asset(imagepath, fit: BoxFit.cover)),
|
||||
|
||||
CircleAvatar(
|
||||
backgroundImage: AssetImage(
|
||||
imagepath,
|
||||
),
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(13.w),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text18w700_FCFCFC(title),
|
||||
sizedBoxHeight(5.h),
|
||||
Row(
|
||||
children: [
|
||||
Image.asset(
|
||||
"assets/images/png/community 1 (traced).png",
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
),
|
||||
sizedBoxWidth(6.w),
|
||||
text14w400_FCFCFCblur("Iron titans fitness crew")
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
Spacer(),
|
||||
PopupMenuButton(
|
||||
surfaceTintColor: Color(0xFF222935),
|
||||
constraints: BoxConstraints.tightFor(width: 200.w),
|
||||
offset: Offset(0, 30),
|
||||
color: Color(0xFF222935),
|
||||
tooltip: "",
|
||||
itemBuilder: (BuildContext context) =>
|
||||
<PopupMenuEntry>[
|
||||
PopupMenuItem(
|
||||
onTap: () {},
|
||||
child: Padding(
|
||||
padding:
|
||||
EdgeInsets.symmetric(horizontal: 8.w),
|
||||
child: Row(
|
||||
children: [
|
||||
text14w400_FCFCFC(""),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/Black (1).png",
|
||||
height: 18.h,
|
||||
width: 18.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
PopupMenuDivider(),
|
||||
PopupMenuItem(
|
||||
onTap: () {},
|
||||
child: Padding(
|
||||
padding:
|
||||
EdgeInsets.symmetric(horizontal: 8.w),
|
||||
child: Row(
|
||||
children: [
|
||||
text14w400_FCFCFC(""),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/logout 1 (traced).png",
|
||||
height: 18.h,
|
||||
width: 18.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
child: Container(
|
||||
height: 16.h,
|
||||
width: 22.w,
|
||||
child: Image.asset(
|
||||
"assets/images/png/Group 1000004071.png",
|
||||
height: 13.h,
|
||||
width: 3.w,
|
||||
),
|
||||
)),
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(10.h),
|
||||
commonDivider(),
|
||||
sizedBoxHeight(10.h),
|
||||
Row(
|
||||
children: [
|
||||
stackContainers(
|
||||
number: "+2",
|
||||
containerImages: [
|
||||
"assets/images/png/cimg3.png",
|
||||
"assets/images/png/cimg2.png",
|
||||
"assets/images/png/cimg3.png",
|
||||
"assets/images/png/cimg2.png",
|
||||
],
|
||||
),
|
||||
sizedBoxWidth(95.w),
|
||||
text12w400_FCFCFC_blur(members),
|
||||
],
|
||||
)
|
||||
],
|
||||
),
|
||||
)),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,228 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:regroup/Common/CommonButton.dart';
|
||||
import 'package:regroup/Common/CommonDropDown.dart';
|
||||
import 'package:regroup/Utils/Common/CommonDropdown.dart';
|
||||
import 'package:regroup/Utils/Common/CustomTextformfield.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/blureffect.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
|
||||
class EditProfile extends StatefulWidget {
|
||||
const EditProfile({super.key});
|
||||
|
||||
@override
|
||||
State<EditProfile> createState() => _EditProfileState();
|
||||
}
|
||||
|
||||
class _EditProfileState extends State<EditProfile> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: SingleChildScrollView(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||
child: Column(children: [
|
||||
sizedBoxHeight(25.h),
|
||||
Stack(
|
||||
children: [
|
||||
CircleAvatar(
|
||||
backgroundImage: AssetImage(
|
||||
"assets/images/png/cimg3.png",
|
||||
),
|
||||
radius: 50.r,
|
||||
),
|
||||
Positioned(
|
||||
bottom: 0,
|
||||
right: 0,
|
||||
child: Container(
|
||||
height: 35.h,
|
||||
width: 35.w,
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: Color(0xFFD90B2E)),
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/cameraicon2.png",
|
||||
height: 19.h,
|
||||
width: 19.w,
|
||||
),
|
||||
),
|
||||
))
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(15.h),
|
||||
text16400white("Edit profile picture"),
|
||||
sizedBoxHeight(20.h),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text16400white("Full name"),
|
||||
sizedBoxHeight(16.h),
|
||||
CustomTextFormField(
|
||||
leadingIcon: Container(
|
||||
width: 18.w,
|
||||
height: 17.h,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/Frame 24.png",
|
||||
width: 18.w,
|
||||
height: 17.h,
|
||||
),
|
||||
),
|
||||
),
|
||||
hintText: "Edward Hackett",
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
text16400white("User name"),
|
||||
sizedBoxHeight(16.h),
|
||||
CustomTextFormField(
|
||||
leadingIcon: Container(
|
||||
width: 18.w,
|
||||
height: 17.h,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/Frame 24.png",
|
||||
width: 18.w,
|
||||
height: 17.h,
|
||||
),
|
||||
),
|
||||
),
|
||||
hintText: "edward_01",
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
text16400white("Date of birth"),
|
||||
sizedBoxHeight(16.h),
|
||||
CustomTextFormField(
|
||||
leadingIcon: Container(
|
||||
width: 18.w,
|
||||
height: 17.h,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/calender.png",
|
||||
width: 18.w,
|
||||
height: 17.h,
|
||||
),
|
||||
),
|
||||
),
|
||||
hintText: "12-04-2024",
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
text16400white("Gender"),
|
||||
sizedBoxHeight(16.h),
|
||||
CustomDropDownRadio(
|
||||
showOtherOption: true,
|
||||
header: "",
|
||||
title: "",
|
||||
listData: [
|
||||
"Male",
|
||||
"Female",
|
||||
"Prefer not to say"
|
||||
],
|
||||
onItemSelected: (p0) {},
|
||||
leadingImage: SizedBox()),
|
||||
sizedBoxHeight(20),
|
||||
CommonDropdownBtn(
|
||||
hint: "",
|
||||
items: ["Male", "Female", "Prefer not to say"],
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
CommonDropdownradioBtn(
|
||||
hint: "Male",
|
||||
items: ["Male", "Female", "Prefer not to say"],
|
||||
leadingIcon: Image.asset(
|
||||
"assets/images/png/Vector ws.png",
|
||||
width: 18.w,
|
||||
height: 17.h,
|
||||
),
|
||||
showOtherOption: true,
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
Row(
|
||||
children: [
|
||||
text16400white("Location"),
|
||||
sizedBoxWidth(6.w),
|
||||
Image.asset(
|
||||
"assets/images/png/octicon_question-24.png",
|
||||
height: 16.h,
|
||||
width: 16.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(16.h),
|
||||
CustomTextFormField(
|
||||
leadingIcon: Container(
|
||||
width: 18.w,
|
||||
height: 17.h,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/Group 58645.png",
|
||||
width: 18.w,
|
||||
height: 17.h,
|
||||
),
|
||||
),
|
||||
),
|
||||
hintText: "Elm street london, United Kingdom",
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
Row(
|
||||
children: [
|
||||
text16400white("Primary sport"),
|
||||
sizedBoxWidth(6.w),
|
||||
Image.asset(
|
||||
"assets/images/png/octicon_question-24.png",
|
||||
height: 16.h,
|
||||
width: 16.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(16.h),
|
||||
CommonDropdownradioBtn(
|
||||
hint: "Rowing, Rugby, Swimming",
|
||||
items: [
|
||||
"Rowing",
|
||||
"Cycling",
|
||||
"Running",
|
||||
"Swimming",
|
||||
"Triathlon",
|
||||
"Hiking",
|
||||
"Football",
|
||||
"Rugby"
|
||||
],
|
||||
leadingIcon: Image.asset(
|
||||
"assets/images/png/Vector (4).png",
|
||||
width: 18.w,
|
||||
height: 17.h,
|
||||
),
|
||||
showOtherOption: true,
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
text16400white("Bio"),
|
||||
sizedBoxHeight(16.h),
|
||||
CustomTextFormField2(
|
||||
hintText:
|
||||
"Lorem Ipsum has been the industry's standard dummy text ever since the 1500s. Lorem Ipsum has been the industry's standard",
|
||||
maxlines: 3,
|
||||
),
|
||||
sizedBoxHeight(60.h),
|
||||
CommonBtn(text: "Save"),
|
||||
sizedBoxHeight(60.h),
|
||||
],
|
||||
)
|
||||
]))))
|
||||
]));
|
||||
}
|
||||
}
|
||||
211
lib/Feed Module/Main_Screens/ProfileTab/Followers/Followers.dart
Normal file
@@ -0,0 +1,211 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:regroup/Common/CommonWidget.dart';
|
||||
import 'package:regroup/Common/controller/CommonTextFormField.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/blureffect.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
|
||||
class Followers extends StatefulWidget {
|
||||
const Followers({super.key});
|
||||
|
||||
@override
|
||||
State<Followers> createState() => _FollowersState();
|
||||
}
|
||||
|
||||
class _FollowersState extends State<Followers> {
|
||||
List followersData = [
|
||||
{
|
||||
"imagePath": "assets/images/png/Ellipse 52.png",
|
||||
"title": "Ryan Dorwart",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Ellipse 48.png",
|
||||
"title": "Ahmad Rhiel Madsen",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Ellipse 43.png",
|
||||
"title": "Kaylynn Vaccaro",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/img2.png",
|
||||
"title": "Kianna Donin",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/img2.png",
|
||||
"title": "Maria Herwitz",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Ellipse 43.png",
|
||||
"title": "Ahmad Rhiel Madsen",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Ellipse 48.png",
|
||||
"title": "Kaylynn Vaccaro",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
];
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Followers",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: SingleChildScrollView(
|
||||
child: Column(children: [
|
||||
Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: CustomTextFormField(
|
||||
leadingIcon: SizedBox(
|
||||
height: 23,
|
||||
width: 23,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/ion_search-outline.png",
|
||||
height: 23,
|
||||
width: 23,
|
||||
),
|
||||
),
|
||||
),
|
||||
hintText: "Search people",
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(25.h),
|
||||
ListView.builder(
|
||||
shrinkWrap: true,
|
||||
itemCount: followersData.length,
|
||||
itemBuilder: (context, index) {
|
||||
return Column(
|
||||
children: [
|
||||
followerWidget(
|
||||
imagePath: followersData[index]["imagePath"],
|
||||
title: followersData[index]["title"],
|
||||
subtitle: followersData[index]["subtitle"]),
|
||||
if (index != followersData.length - 1) commonDivider(),
|
||||
],
|
||||
);
|
||||
},
|
||||
)
|
||||
])
|
||||
])))
|
||||
]));
|
||||
}
|
||||
|
||||
Widget followerWidget({
|
||||
required String imagePath,
|
||||
required String title,
|
||||
required String subtitle,
|
||||
}) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 16.h, horizontal: 16.w),
|
||||
child: Row(
|
||||
children: [
|
||||
CircleAvatar(
|
||||
backgroundImage: AssetImage(imagePath),
|
||||
radius: 25.r,
|
||||
),
|
||||
sizedBoxWidth(10.w),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text16w400_FCFCFC(title),
|
||||
sizedBoxHeight(4.h),
|
||||
text12w400_FCFCFC_blur(subtitle)
|
||||
],
|
||||
),
|
||||
Spacer(),
|
||||
PopupMenuButton(
|
||||
surfaceTintColor: Color(0xFF222935),
|
||||
constraints: BoxConstraints.tightFor(width: 176.w),
|
||||
offset: Offset(0, 20),
|
||||
color: Color(0xFF222935),
|
||||
tooltip: "",
|
||||
itemBuilder: (BuildContext context) => <PopupMenuEntry>[
|
||||
PopupMenuItem(
|
||||
onTap: () {},
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 12.w),
|
||||
child: Row(
|
||||
children: [
|
||||
text14400white("Remove user"),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/fluent_delete-28-regular.png",
|
||||
height: 15.h,
|
||||
width: 15.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
PopupMenuDivider(),
|
||||
PopupMenuItem(
|
||||
onTap: () {},
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 12.w),
|
||||
child: Row(
|
||||
children: [
|
||||
text14400white("Message user"),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/share.png",
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
PopupMenuDivider(),
|
||||
PopupMenuItem(
|
||||
onTap: () {},
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 12.w),
|
||||
child: Row(
|
||||
children: [
|
||||
text14400white("Block user"),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/f7_pin-fill (2).png",
|
||||
height: 25.h,
|
||||
width: 25.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
child: Container(
|
||||
height: 20,
|
||||
width: 20,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/Group 1000004071.png",
|
||||
height: 22.h,
|
||||
width: 4.w,
|
||||
),
|
||||
),
|
||||
)),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
193
lib/Feed Module/Main_Screens/ProfileTab/Following/Following.dart
Normal file
@@ -0,0 +1,193 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:regroup/Common/CommonWidget.dart';
|
||||
import 'package:regroup/Common/controller/CommonTextFormField.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/blureffect.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
|
||||
class Following extends StatefulWidget {
|
||||
const Following({super.key});
|
||||
|
||||
@override
|
||||
State<Following> createState() => _FollowingState();
|
||||
}
|
||||
|
||||
class _FollowingState extends State<Following> {
|
||||
List followingData = [
|
||||
{
|
||||
"imagePath": "assets/images/png/Ellipse 52.png",
|
||||
"title": "Ryan Dorwart",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Ellipse 48.png",
|
||||
"title": "Ahmad Rhiel Madsen",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Ellipse 43.png",
|
||||
"title": "Kaylynn Vaccaro",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/img2.png",
|
||||
"title": "Kianna Donin",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/img2.png",
|
||||
"title": "Maria Herwitz",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Ellipse 43.png",
|
||||
"title": "Ahmad Rhiel Madsen",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Ellipse 48.png",
|
||||
"title": "Kaylynn Vaccaro",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
];
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Following",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: SingleChildScrollView(
|
||||
child: Column(children: [
|
||||
Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: CustomTextFormField(
|
||||
leadingIcon: SizedBox(
|
||||
height: 23,
|
||||
width: 23,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/ion_search-outline.png",
|
||||
height: 23,
|
||||
width: 23,
|
||||
),
|
||||
),
|
||||
),
|
||||
hintText: "Search people",
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(25.h),
|
||||
ListView.builder(
|
||||
shrinkWrap: true,
|
||||
itemCount: followingData.length,
|
||||
itemBuilder: (context, index) {
|
||||
return Column(
|
||||
children: [
|
||||
followingWidget(
|
||||
imagePath: followingData[index]["imagePath"],
|
||||
title: followingData[index]["title"],
|
||||
subtitle: followingData[index]["subtitle"]),
|
||||
if (index != followingData.length - 1) commonDivider(),
|
||||
],
|
||||
);
|
||||
},
|
||||
)
|
||||
])
|
||||
])))
|
||||
]));
|
||||
}
|
||||
|
||||
Widget followingWidget({
|
||||
required String imagePath,
|
||||
required String title,
|
||||
required String subtitle,
|
||||
}) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 16.h, horizontal: 16.w),
|
||||
child: Row(
|
||||
children: [
|
||||
CircleAvatar(
|
||||
backgroundImage: AssetImage(imagePath),
|
||||
radius: 25.r,
|
||||
),
|
||||
sizedBoxWidth(10.w),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text16w400_FCFCFC(title),
|
||||
sizedBoxHeight(4.h),
|
||||
text12w400_FCFCFC_blur(subtitle)
|
||||
],
|
||||
),
|
||||
Spacer(),
|
||||
PopupMenuButton(
|
||||
surfaceTintColor: Color(0xFF222935),
|
||||
constraints: BoxConstraints.tightFor(width: 176.w),
|
||||
offset: Offset(0, 20),
|
||||
color: Color(0xFF222935),
|
||||
tooltip: "",
|
||||
itemBuilder: (BuildContext context) => <PopupMenuEntry>[
|
||||
PopupMenuItem(
|
||||
onTap: () {},
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 12.w),
|
||||
child: Row(
|
||||
children: [
|
||||
text14400white("Unfollow user"),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/Black1323e.png",
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
PopupMenuDivider(),
|
||||
PopupMenuItem(
|
||||
onTap: () {},
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 12.w),
|
||||
child: Row(
|
||||
children: [
|
||||
text14400white("Message user"),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/fluent_chat-20-22.png",
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
child: Container(
|
||||
height: 20,
|
||||
width: 20,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/Group 1000004071.png",
|
||||
height: 22.h,
|
||||
width: 4.w,
|
||||
),
|
||||
),
|
||||
)),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,15 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_reaction_button/flutter_reaction_button.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:regroup/Common/CommonBottomNavigationBar.dart';
|
||||
import 'package:regroup/Common/CommonGlassmorphism.dart';
|
||||
import 'package:regroup/Common/CommonWidget.dart';
|
||||
import 'package:regroup/Common/controller/MainScreen.dart';
|
||||
import 'package:regroup/Utils/Common/blureffect.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
import 'package:regroup/resources/routes/route_name.dart';
|
||||
|
||||
class ProfileTab extends StatefulWidget {
|
||||
const ProfileTab({super.key});
|
||||
@@ -12,22 +19,937 @@ class ProfileTab extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _ProfileTabState extends State<ProfileTab> {
|
||||
List cardtile = [
|
||||
{
|
||||
"imagePath": "assets/images/png/Rectangle 29ss.png",
|
||||
"title": "Cardio crusaders circle"
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Rectangle 31ee.png",
|
||||
"title": "Strength squad syndicate"
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Rectangle 30aa.png",
|
||||
"title": "Flexibility faction force"
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Rectangle 29ss.png",
|
||||
"title": "Cardio crusaders circle"
|
||||
},
|
||||
];
|
||||
|
||||
List timeline = [
|
||||
{
|
||||
"imagePath": "assets/images/png/cimg1.png",
|
||||
"title": "Cardio crusaders circle"
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/cimg1.png",
|
||||
"title": "Cardio crusaders circle"
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/cimg1.png",
|
||||
"title": "Cardio crusaders circle"
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/cimg1.png",
|
||||
"title": "Cardio crusaders circle"
|
||||
},
|
||||
];
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: SingleChildScrollView(
|
||||
child: Column(children: [
|
||||
Image.asset("assets/images/png/Rectangle 49.png")
|
||||
])))
|
||||
]));
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
body: Stack(clipBehavior: Clip.none, children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Column(children: [
|
||||
Positioned(
|
||||
child: commonGlassContainer(
|
||||
border: 0.5,
|
||||
width: double.infinity,
|
||||
height: 840,
|
||||
borderradius: 1,
|
||||
customWidget: SingleChildScrollView(
|
||||
child: Column(
|
||||
children: [
|
||||
Stack(
|
||||
children: [
|
||||
Container(
|
||||
height: 484.h,
|
||||
width: double.infinity,
|
||||
child: Image.asset(
|
||||
"assets/images/png/profileimg.png",
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
Positioned.fill(
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment.topCenter,
|
||||
end: Alignment.bottomCenter,
|
||||
colors: [
|
||||
Color.fromRGBO(34, 41, 53, 0.1),
|
||||
Color.fromRGBO(34, 41, 53, 0.79),
|
||||
],
|
||||
stops: [
|
||||
0.5788,
|
||||
0.8,
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
Positioned.fill(
|
||||
top: 60.h,
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: [
|
||||
Column(
|
||||
children: [
|
||||
text20700white("Edward Hackett"),
|
||||
sizedBoxHeight(5.h),
|
||||
text18w400white("@edward_01"),
|
||||
sizedBoxHeight(15.h),
|
||||
Row(
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.center,
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.followers);
|
||||
},
|
||||
child: Column(
|
||||
children: [
|
||||
text16400white("254"),
|
||||
sizedBoxHeight(6.h),
|
||||
text12400whiteblur("Followers")
|
||||
],
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(20.w),
|
||||
Container(
|
||||
height: 58.h,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
border: Border.all(
|
||||
color: Colors.white,
|
||||
width: 1.0,
|
||||
),
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Color(0x66000000),
|
||||
offset: Offset(0, 4),
|
||||
blurRadius: 4.0,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(20.w),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.following);
|
||||
},
|
||||
child: Column(
|
||||
children: [
|
||||
text16400white("254"),
|
||||
sizedBoxHeight(6.h),
|
||||
text12400whiteblur("Following")
|
||||
],
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(20.w),
|
||||
Container(
|
||||
height: 58.h,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
border: Border.all(
|
||||
color: Colors.white,
|
||||
width: 1.0,
|
||||
),
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Color(0x66000000),
|
||||
offset: Offset(0, 4),
|
||||
blurRadius: 4.0,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(20.w),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.clubs);
|
||||
},
|
||||
child: Column(
|
||||
children: [
|
||||
text16400white("10"),
|
||||
sizedBoxHeight(6.h),
|
||||
text12400whiteblur("Clubs")
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
sizedBoxHeight(30.h),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.editProfile);
|
||||
},
|
||||
child: Container(
|
||||
height: 40.h,
|
||||
width: 170.w,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFFD90B2E),
|
||||
borderRadius: BorderRadius.circular(30.r),
|
||||
),
|
||||
child: Center(
|
||||
child: text16w400_FCFCFC("Edit profile")),
|
||||
),
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.shareProfile);
|
||||
},
|
||||
child: commonGlassContainer(
|
||||
width: 170.w,
|
||||
height: 40.h,
|
||||
opacity1: 0.05,
|
||||
opacity2: 0.07,
|
||||
borderradius: 30.r,
|
||||
customWidget: Center(
|
||||
child: text16w400_FCFCFC("Share profile"),
|
||||
),
|
||||
border: 1,
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(30.h),
|
||||
text18w700white("Bio"),
|
||||
sizedBoxHeight(10.h),
|
||||
text14400white(
|
||||
"Lorem Ipsum has been the industry's standard dummy text ever since the 1500s."),
|
||||
sizedBoxHeight(25.h),
|
||||
Row(
|
||||
children: [
|
||||
commonGlassContainer(
|
||||
width: 25.w,
|
||||
height: 25.h,
|
||||
opacity1: 0.24,
|
||||
opacity2: 0.24,
|
||||
borderradius: 100,
|
||||
customWidget: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/Group 58645.png",
|
||||
height: 12.h,
|
||||
width: 12.w,
|
||||
)),
|
||||
border: 0.5),
|
||||
sizedBoxWidth(12.w),
|
||||
text14400whiteblur(
|
||||
"Elm street london, United Kingdom"),
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
Row(
|
||||
children: [
|
||||
commonGlassContainer(
|
||||
width: 25.w,
|
||||
height: 25.h,
|
||||
opacity1: 0.24,
|
||||
opacity2: 0.24,
|
||||
borderradius: 100,
|
||||
customWidget: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/Vector (4).png",
|
||||
height: 12.h,
|
||||
width: 12.w,
|
||||
)),
|
||||
border: 0.5),
|
||||
sizedBoxWidth(12.w),
|
||||
text14400whiteblur("Rowing, Football, Swimming"),
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(30.h),
|
||||
commonGlassContainer(
|
||||
width: double.infinity,
|
||||
height: 135.h,
|
||||
borderradius: 10,
|
||||
customWidget: Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
vertical: 12.h, horizontal: 16.w),
|
||||
child: Column(
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
text16w700white("Badges"),
|
||||
Spacer(),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.badges);
|
||||
},
|
||||
child: text12400white("View more"))
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(8.h),
|
||||
Row(
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Image.asset(
|
||||
"assets/images/png/Frame 1000004056.png",
|
||||
height: 70.h,
|
||||
width: 74.w,
|
||||
),
|
||||
Image.asset(
|
||||
"assets/images/png/Frame 1000004056.png",
|
||||
height: 70.h,
|
||||
width: 74.w,
|
||||
),
|
||||
Image.asset(
|
||||
"assets/images/png/Frame 1000004056.png",
|
||||
height: 70.h,
|
||||
width: 74.w,
|
||||
),
|
||||
Image.asset(
|
||||
"assets/images/png/Frame 1000004056.png",
|
||||
height: 70.h,
|
||||
width: 74.w,
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
border: 1),
|
||||
sizedBoxHeight(40.h),
|
||||
],
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 190.h,
|
||||
child: ListView.builder(
|
||||
shrinkWrap: true,
|
||||
scrollDirection: Axis.horizontal,
|
||||
padding: EdgeInsets.only(left: 16.w),
|
||||
itemCount: cardtile.length,
|
||||
itemBuilder: (context, index) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.only(right: 20.w),
|
||||
child: profilecardtile(
|
||||
imagePath: cardtile[index]["imagePath"],
|
||||
title: cardtile[index]["title"]),
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
text18w700white("Timeline"),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/iconamoon_edit-thin.png",
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
SizedBox(
|
||||
height: 300.h,
|
||||
child: ListView.builder(
|
||||
itemCount: timeline.length,
|
||||
itemBuilder: (context, index) {
|
||||
return commonTimelineCard(
|
||||
imagePath: timeline[index]["imagePath"],
|
||||
title: timeline[index]["title"]);
|
||||
},
|
||||
)),
|
||||
sizedBoxHeight(30.h),
|
||||
text18w700white("Posts"),
|
||||
]),
|
||||
),
|
||||
normalcardtile(
|
||||
profileImg: 'assets/images/png/Ellipse 48.png',
|
||||
title: 'Jocelyn Dokidis',
|
||||
mainImg: 'assets/images/png/Rectangle 46.png',
|
||||
containerTitle: [
|
||||
'Race',
|
||||
'Swimming',
|
||||
'Events',
|
||||
'Marathon',
|
||||
'Events'
|
||||
]),
|
||||
sizedBoxHeight(120.h),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
]),
|
||||
SafeArea(
|
||||
child: Positioned(
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: Column(
|
||||
children: [
|
||||
sizedBoxHeight(20.h),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
commonGlassContainer(
|
||||
border: 0.5,
|
||||
width: 40.w,
|
||||
height: 40.h,
|
||||
borderradius: 100,
|
||||
opacity1: 0.5,
|
||||
opacity2: 0.4,
|
||||
customWidget: Center(
|
||||
child: Image.asset(
|
||||
'assets/images/png/ph_arrow-up-thin.png',
|
||||
height: 25.h,
|
||||
width: 25.w,
|
||||
)),
|
||||
),
|
||||
Spacer(),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.settings);
|
||||
},
|
||||
child: commonGlassContainer(
|
||||
border: 0.5,
|
||||
width: 40.w,
|
||||
height: 40.h,
|
||||
borderradius: 100,
|
||||
opacity1: 0.5,
|
||||
opacity2: 0.4,
|
||||
customWidget: Center(
|
||||
child: Image.asset(
|
||||
'assets/images/png/setting2.png',
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
)),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
]),
|
||||
bottomNavigationBar: bottomnavigationbar(mainController),
|
||||
);
|
||||
}
|
||||
|
||||
Widget commonTimelineCard(
|
||||
{required String imagePath, required String title}) {
|
||||
return Row(
|
||||
children: [
|
||||
Container(
|
||||
width: 10,
|
||||
height: 170.h,
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Container(
|
||||
width: 1.w,
|
||||
height: 170.h,
|
||||
decoration: BoxDecoration(color: Colors.white),
|
||||
),
|
||||
Positioned(
|
||||
top: 60.h,
|
||||
left: -5.w,
|
||||
child: Container(
|
||||
height: 11.h,
|
||||
width: 11.w,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white, shape: BoxShape.circle))),
|
||||
],
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(20.w),
|
||||
Expanded(
|
||||
child: Column(
|
||||
children: [
|
||||
commonGlassContainer(
|
||||
width: double.infinity,
|
||||
height: 145.h,
|
||||
borderradius: 10.r,
|
||||
customWidget: Padding(
|
||||
padding:
|
||||
EdgeInsets.symmetric(vertical: 8.h, horizontal: 16.w),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
CircleAvatar(
|
||||
radius: 10.r,
|
||||
backgroundImage: AssetImage(imagePath),
|
||||
),
|
||||
sizedBoxWidth(8.w),
|
||||
text14700white(title)
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(10.h),
|
||||
text12700white("Team captain"),
|
||||
sizedBoxHeight(8.h),
|
||||
text12400white("April 2023 - May 2024"),
|
||||
sizedBoxHeight(10.h),
|
||||
text10400whiteblur(
|
||||
"Lorem Ipsum is simply dummy text of the printing and typesetting industry.")
|
||||
],
|
||||
),
|
||||
),
|
||||
border: 1),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget normalcardtile({
|
||||
required String profileImg,
|
||||
required String title,
|
||||
required String mainImg,
|
||||
required List<String> containerTitle,
|
||||
}) {
|
||||
var mainImage = 'assets/images/png/uiw_like-o.png'.obs;
|
||||
void updateImage(String reaction) {
|
||||
if (reaction == 'like') {
|
||||
mainImage.value = 'assets/images/png/f7_hand-thumbsup.png';
|
||||
} else if (reaction == 'heart') {
|
||||
mainImage.value = 'assets/images/png/heart 2.png';
|
||||
} else if (reaction == 'party') {
|
||||
mainImage.value = 'assets/images/png/party-popper 2.png';
|
||||
}
|
||||
}
|
||||
|
||||
return Column(
|
||||
children: [
|
||||
sizedBoxHeight(25.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
CircleAvatar(
|
||||
foregroundImage: AssetImage(profileImg),
|
||||
radius: 25.r,
|
||||
),
|
||||
sizedBoxWidth(12.w),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text16w400_FCFCFC(title),
|
||||
sizedBoxHeight(5.h),
|
||||
Row(
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/images/png/community 1 (traced).png',
|
||||
height: 14.w,
|
||||
width: 14.w,
|
||||
),
|
||||
sizedBoxWidth(7.w),
|
||||
text12w400_FCFCFC('Active alliance network'),
|
||||
sizedBoxWidth(7.w),
|
||||
Icon(
|
||||
Icons.circle,
|
||||
color: Color(0xFFFCFCFC),
|
||||
size: 4.sp,
|
||||
),
|
||||
sizedBoxWidth(6.w),
|
||||
text12w400_FCFCFC('1 Hour ago'),
|
||||
],
|
||||
)
|
||||
],
|
||||
),
|
||||
Spacer(),
|
||||
PopupMenuButton(
|
||||
surfaceTintColor: Color(0xFF222935),
|
||||
constraints: BoxConstraints.tightFor(width: 176.w),
|
||||
offset: Offset(0, 50),
|
||||
color: Color(0xFF222935),
|
||||
tooltip: "",
|
||||
itemBuilder: (BuildContext context) => <PopupMenuEntry>[
|
||||
PopupMenuItem(
|
||||
onTap: () {},
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 12.w),
|
||||
child: Row(
|
||||
children: [
|
||||
Text(
|
||||
'Report Post',
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w800,
|
||||
fontFamily: "Nunito Sans",
|
||||
),
|
||||
),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/Vector (5).png",
|
||||
height: 15.h,
|
||||
width: 15.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
PopupMenuDivider(),
|
||||
PopupMenuItem(
|
||||
onTap: () {},
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 12.w),
|
||||
child: Row(
|
||||
children: [
|
||||
Text(
|
||||
'Share post',
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w800,
|
||||
fontFamily: "Nunito Sans",
|
||||
),
|
||||
),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/share.png",
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
PopupMenuDivider(),
|
||||
PopupMenuItem(
|
||||
onTap: () {},
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 12.w),
|
||||
child: Row(
|
||||
children: [
|
||||
Text(
|
||||
'Pin',
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w800,
|
||||
fontFamily: "Nunito Sans",
|
||||
),
|
||||
),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/f7_pin-fill (2).png",
|
||||
height: 25.h,
|
||||
width: 25.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
child: Image.asset(
|
||||
'assets/images/png/Group 1000004071.png',
|
||||
width: 16.w,
|
||||
height: 18.h,
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(5.w)
|
||||
],
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.postdetailsScreen);
|
||||
},
|
||||
child: Container(
|
||||
height: 163.h,
|
||||
width: double.infinity,
|
||||
child: Image.asset(
|
||||
mainImg,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
)),
|
||||
sizedBoxHeight(20.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: Column(children: [
|
||||
SizedBox(
|
||||
height: 30.h,
|
||||
child: ListView.builder(
|
||||
scrollDirection: Axis.horizontal,
|
||||
shrinkWrap: true,
|
||||
itemCount: containerTitle.length,
|
||||
itemBuilder: (context, index) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.only(right: 12.w),
|
||||
child: GestureDetector(
|
||||
onTap: () {
|
||||
// Get.toNamed(RouteName.cyclescreen);
|
||||
},
|
||||
child: containertile(text: containerTitle[index])),
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
text16w400_FCFCFC(
|
||||
"Lorem Ipsum has been the industry's standard dummy text ever since the 1500s . . ."),
|
||||
Row(children: [
|
||||
stackReaction(number: '20', containerImages: [
|
||||
'assets/images/png/f7_hand-thumbsup.png',
|
||||
'assets/images/png/heart 2.png',
|
||||
'assets/images/png/party-popper 2.png'
|
||||
]),
|
||||
Spacer(),
|
||||
commonGlassContainer(
|
||||
border: 0.43,
|
||||
width: 30.w,
|
||||
height: 30.h,
|
||||
opacity1: 0.05,
|
||||
opacity2: 0.06,
|
||||
borderradius: 100,
|
||||
customWidget: Center(
|
||||
child: ReactionButton<String>(
|
||||
itemSize: Size.fromHeight(20),
|
||||
onReactionChanged: (Reaction<String>? reaction) {
|
||||
debugPrint('Selected value: ${reaction?.value}');
|
||||
},
|
||||
reactions: <Reaction<String>>[
|
||||
Reaction<String>(
|
||||
value: 'message',
|
||||
icon: Image.asset(
|
||||
'assets/images/png/Vector.png',
|
||||
height: 13.h,
|
||||
width: 13.w,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(12.w),
|
||||
text14w400_FCFCFC('20'),
|
||||
sizedBoxWidth(20.w),
|
||||
commonGlassContainer(
|
||||
border: 0.43,
|
||||
width: 30.w,
|
||||
height: 30.h,
|
||||
borderradius: 100,
|
||||
opacity1: 0.05,
|
||||
opacity2: 0.06,
|
||||
customWidget: Center(
|
||||
child: ReactionButton<String>(
|
||||
itemSize: Size.fromHeight(20),
|
||||
onReactionChanged: (Reaction<String>? reaction) {
|
||||
debugPrint('Selected value: ${reaction?.value}');
|
||||
},
|
||||
reactions: <Reaction<String>>[
|
||||
Reaction<String>(
|
||||
value: 'message',
|
||||
icon: Image.asset(
|
||||
'assets/images/png/Vector (1).png',
|
||||
height: 12.h,
|
||||
width: 12.w,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(12.w),
|
||||
text14w400_FCFCFC('10'),
|
||||
]),
|
||||
sizedBoxHeight(30.h),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: [
|
||||
Column(
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: [
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Obx(() {
|
||||
return ReactionButton<String>(
|
||||
onReactionChanged: (reaction) {
|
||||
updateImage(reaction?.value ?? 'like');
|
||||
debugPrint(
|
||||
'Selected value: ${reaction?.value}');
|
||||
},
|
||||
reactions: <Reaction<String>?>[
|
||||
Reaction<String>(
|
||||
value: 'like',
|
||||
previewIcon: _buildReactionsPreviewIcon(
|
||||
'assets/images/png/f7_hand-thumbsup.png'),
|
||||
icon: _buildReactionsIcon(
|
||||
'assets/images/png/f7_hand-thumbsup.png'),
|
||||
),
|
||||
Reaction<String>(
|
||||
value: 'heart',
|
||||
previewIcon: _buildReactionsPreviewIcon(
|
||||
'assets/images/png/heart 2.png'),
|
||||
icon: _buildReactionsIcon(
|
||||
'assets/images/png/heart 2.png'),
|
||||
),
|
||||
Reaction<String>(
|
||||
value: 'party',
|
||||
previewIcon: _buildReactionsPreviewIcon(
|
||||
'assets/images/png/party-popper 2.png'),
|
||||
icon: _buildReactionsIcon(
|
||||
'assets/images/png/party-popper 2.png'),
|
||||
),
|
||||
],
|
||||
selectedReaction: Reaction<String>(
|
||||
value: 'like',
|
||||
icon: _buildReactionsIcon(
|
||||
'assets/images/png/f7_hand-thumbsup.png'),
|
||||
),
|
||||
boxColor: Colors.white,
|
||||
boxElevation: 5,
|
||||
boxRadius: 50,
|
||||
itemsSpacing: 8,
|
||||
itemScale: 0.3,
|
||||
itemSize: Size(40.0, 40.0),
|
||||
boxPadding: EdgeInsets.all(4),
|
||||
boxAnimationDuration:
|
||||
Duration(milliseconds: 200),
|
||||
itemAnimationDuration:
|
||||
Duration(milliseconds: 100),
|
||||
hoverDuration: Duration(milliseconds: 400),
|
||||
toggle: false,
|
||||
direction: ReactionsBoxAlignment.ltr,
|
||||
child: _buildReactionsIcon(mainImage.value),
|
||||
);
|
||||
})
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(8.h),
|
||||
text11w400_FCFCFC('Like')
|
||||
],
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.postdetailsScreen);
|
||||
},
|
||||
child: Column(
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/images/png/Vector.png',
|
||||
height: 19.h,
|
||||
width: 19.w,
|
||||
),
|
||||
sizedBoxHeight(8.h),
|
||||
text11w400_FCFCFC('Comment')
|
||||
],
|
||||
),
|
||||
),
|
||||
Column(
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/images/png/Frame 1000004089.png',
|
||||
height: 19.h,
|
||||
width: 19.w,
|
||||
),
|
||||
sizedBoxHeight(8.h),
|
||||
text11w400_FCFCFC('Save')
|
||||
],
|
||||
)
|
||||
],
|
||||
)
|
||||
]),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildReactionsPreviewIcon(String assetPath) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Image.asset(
|
||||
assetPath,
|
||||
height: 40.h,
|
||||
width: 40.w,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildReactionsIcon(String assetPath) {
|
||||
return Image.asset(
|
||||
assetPath,
|
||||
height: 19.h,
|
||||
width: 19.w,
|
||||
);
|
||||
}
|
||||
|
||||
Widget containertile({required String text}) {
|
||||
return commonGlassContainer(
|
||||
border: 0.9,
|
||||
width: 100.w,
|
||||
height: 30.h,
|
||||
borderradius: 30.r,
|
||||
customWidget: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 10.w),
|
||||
child: Center(child: text14w400_FCFCFC(text)),
|
||||
));
|
||||
}
|
||||
|
||||
Widget profilecardtile({required String imagePath, required String title}) {
|
||||
return Column(
|
||||
children: [
|
||||
Container(
|
||||
height: 109.h,
|
||||
width: 100.w,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(10.r),
|
||||
),
|
||||
child: Image.asset(imagePath),
|
||||
),
|
||||
sizedBoxHeight(10.h),
|
||||
SizedBox(width: 100.w, child: text12w700_FCFCFC(title)),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:regroup/Common/CommonGlassmorphism.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/blureffect.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
|
||||
class AccountSession extends StatefulWidget {
|
||||
const AccountSession({super.key});
|
||||
|
||||
@override
|
||||
State<AccountSession> createState() => _AccountSessionState();
|
||||
}
|
||||
|
||||
class _AccountSessionState extends State<AccountSession> {
|
||||
List sessionData = [
|
||||
"london, United Kingdom",
|
||||
"Elm street london, United Kingdom",
|
||||
"Elm street london, United Kingdom"
|
||||
];
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Account sessions",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child:
|
||||
Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
|
||||
sizedBoxHeight(25.h),
|
||||
text18w400white("Last login sessions"),
|
||||
sizedBoxHeight(16.h),
|
||||
ListView.builder(
|
||||
shrinkWrap: true,
|
||||
itemCount: sessionData.length,
|
||||
itemBuilder: (context, index) {
|
||||
return sessionCard(title: sessionData[index]);
|
||||
},
|
||||
)
|
||||
]),
|
||||
))
|
||||
]));
|
||||
}
|
||||
|
||||
Widget sessionCard({required String title}) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 15),
|
||||
child: commonGlassContainer(
|
||||
width: double.infinity,
|
||||
height: 90.h,
|
||||
borderradius: 10.r,
|
||||
customWidget: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12),
|
||||
child: Column(
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
commonGlassContainer(
|
||||
width: 25.w,
|
||||
height: 25.h,
|
||||
opacity1: 0.24,
|
||||
opacity2: 0.24,
|
||||
borderradius: 100,
|
||||
customWidget: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/Group 58645.png",
|
||||
height: 13.h,
|
||||
width: 9.w,
|
||||
),
|
||||
),
|
||||
border: 1),
|
||||
sizedBoxWidth(10.w),
|
||||
text16400white(title),
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(16.h),
|
||||
Row(
|
||||
children: [
|
||||
text14400whiteblur("Apple iPhone 15"),
|
||||
sizedBoxWidth(6.w),
|
||||
Icon(
|
||||
Icons.circle,
|
||||
size: 7.sp,
|
||||
color: Colors.white,
|
||||
),
|
||||
sizedBoxWidth(6.w),
|
||||
text144005DFD63("192.158.1.38")
|
||||
],
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
border: 1),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,144 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:regroup/Common/CommonWidget.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/blureffect.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
import 'package:regroup/resources/routes/route_name.dart';
|
||||
|
||||
class AccountSettings extends StatefulWidget {
|
||||
const AccountSettings({super.key});
|
||||
|
||||
@override
|
||||
State<AccountSettings> createState() => _AccountSettingsState();
|
||||
}
|
||||
|
||||
class _AccountSettingsState extends State<AccountSettings> {
|
||||
bool swichvalue = false;
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Account settings",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: SingleChildScrollView(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
sizedBoxHeight(20.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: text18w700_FCFCFC("Sign in & security"),
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
Padding(
|
||||
padding:
|
||||
EdgeInsets.symmetric(horizontal: 16.w, vertical: 20.h),
|
||||
child: Row(children: [
|
||||
Image.asset(
|
||||
"assets/images/png/eyeIcon.png",
|
||||
height: 21.h,
|
||||
width: 21.w,
|
||||
),
|
||||
sizedBoxWidth(12.w),
|
||||
text16w400_FCFCFC("Account visibility"),
|
||||
Spacer(),
|
||||
Transform.scale(
|
||||
scale: 0.9,
|
||||
child: CupertinoSwitch(
|
||||
value: swichvalue,
|
||||
trackColor: Colors.white.withOpacity(0.4),
|
||||
activeColor: Color(0xFF34C759),
|
||||
onChanged: (bool? value) {
|
||||
setState(() {
|
||||
swichvalue = value ?? false;
|
||||
});
|
||||
}))
|
||||
]),
|
||||
),
|
||||
commonDivider(),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.changepassword);
|
||||
},
|
||||
child: rowTile(
|
||||
imagePath: "assets/images/png/BlackPass.png",
|
||||
text: "Change password"),
|
||||
),
|
||||
commonDivider(),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.accaountsession);
|
||||
},
|
||||
child: rowTile(
|
||||
imagePath: "assets/images/png/clock.png",
|
||||
text: "Account sessions"),
|
||||
),
|
||||
commonDivider(),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.blockedusers);
|
||||
},
|
||||
child: rowTile(
|
||||
imagePath: "assets/images/png/blocked.png",
|
||||
text: "Blocked users"),
|
||||
),
|
||||
commonDivider(),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.deleteaccount);
|
||||
},
|
||||
child: Padding(
|
||||
padding:
|
||||
EdgeInsets.symmetric(horizontal: 16.w, vertical: 20.h),
|
||||
child: Row(children: [
|
||||
Image.asset(
|
||||
"assets/images/png/deleteIcon (2).png",
|
||||
height: 21.h,
|
||||
width: 21.w,
|
||||
),
|
||||
sizedBoxWidth(12.w),
|
||||
text16w400_FF0000("Delete account"),
|
||||
]),
|
||||
),
|
||||
)
|
||||
])))
|
||||
]));
|
||||
}
|
||||
|
||||
Widget rowTile({
|
||||
required String imagePath,
|
||||
required String text,
|
||||
}) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 20.h),
|
||||
child: Row(children: [
|
||||
Image.asset(
|
||||
imagePath,
|
||||
height: 21.h,
|
||||
width: 21.w,
|
||||
),
|
||||
sizedBoxWidth(12.w),
|
||||
text16w400_FCFCFC(text),
|
||||
Spacer(),
|
||||
Icon(
|
||||
Icons.arrow_forward_ios,
|
||||
color: Colors.white,
|
||||
size: 20,
|
||||
)
|
||||
]),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,210 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:regroup/Common/CommonGlassmorphism.dart';
|
||||
import 'package:regroup/Common/CommonWidget.dart';
|
||||
import 'package:regroup/Common/controller/CommonTextFormField.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/blureffect.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
|
||||
class BlockedUsers extends StatefulWidget {
|
||||
const BlockedUsers({super.key});
|
||||
|
||||
@override
|
||||
State<BlockedUsers> createState() => _BlockedUsersState();
|
||||
}
|
||||
|
||||
class _BlockedUsersState extends State<BlockedUsers> {
|
||||
List blockedUserData = [
|
||||
{
|
||||
"imagePath": "assets/images/png/cimg1.png",
|
||||
"title": "Ryan Dorwart",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/cimg2.png",
|
||||
"title": "Ahmad Rhiel Madsen",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/cimg3.png",
|
||||
"title": "Kaylynn Vaccaro",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/cimg4.png",
|
||||
"title": "Kianna Donin",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Ellipse 43.png",
|
||||
"title": "Maria Herwitz",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Ellipse 52.png",
|
||||
"title": "Ahmad Rhiel Madsen",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/img2.png",
|
||||
"title": "Kaylynn Vaccaro",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
];
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Blocked users",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
sizedBoxHeight(25.h),
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||
child: CustomTextFormField(
|
||||
leadingIcon: SizedBox(
|
||||
height: 23,
|
||||
width: 23,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/ion_search-outline.png",
|
||||
height: 23,
|
||||
width: 23,
|
||||
),
|
||||
),
|
||||
),
|
||||
hintText: "Search people",
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(25.h),
|
||||
Expanded(
|
||||
child: ListView.builder(
|
||||
shrinkWrap: true,
|
||||
itemCount: blockedUserData.length,
|
||||
itemBuilder: (context, index) {
|
||||
return Column(
|
||||
children: [
|
||||
blockedUser(
|
||||
imagePath: blockedUserData[index]["imagePath"],
|
||||
title: blockedUserData[index]["title"],
|
||||
subtitle: blockedUserData[index]["subtitle"]),
|
||||
if (index != blockedUserData.length - 1)
|
||||
commonDivider(),
|
||||
],
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(20.h)
|
||||
]))
|
||||
]));
|
||||
}
|
||||
|
||||
dialogwidget() {
|
||||
Get.dialog(Dialog(
|
||||
backgroundColor: Colors.transparent,
|
||||
surfaceTintColor: Colors.transparent,
|
||||
child: commonGlassContainer(
|
||||
width: double.infinity,
|
||||
height: 200.h,
|
||||
borderradius: 14,
|
||||
opacity1: 0.09,
|
||||
opacity2: 0.13,
|
||||
customWidget: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 30.w, vertical: 30.h),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text18w400_FCFCFC(
|
||||
"Are you sure you want to unblock the user?",
|
||||
textAlign: TextAlign.center),
|
||||
sizedBoxHeight(30.h),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: [
|
||||
commonGlassContainer(
|
||||
width: 110.w,
|
||||
height: 40.h,
|
||||
borderradius: 30.r,
|
||||
opacity1: 0.05,
|
||||
opacity2: 0.07,
|
||||
customWidget: Center(child: text14400white("No")),
|
||||
border: 1),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
Get.back();
|
||||
},
|
||||
child: Container(
|
||||
height: 40.h,
|
||||
width: 110.w,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFFD90B2E),
|
||||
borderRadius: BorderRadius.circular(30.r),
|
||||
),
|
||||
child: Center(child: text14400white("Yes")),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
border: 0.8)));
|
||||
}
|
||||
|
||||
Widget blockedUser({
|
||||
required String imagePath,
|
||||
required String title,
|
||||
required String subtitle,
|
||||
}) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 16.h, horizontal: 16.w),
|
||||
child: Row(
|
||||
children: [
|
||||
CircleAvatar(
|
||||
backgroundImage: AssetImage(imagePath),
|
||||
radius: 25.r,
|
||||
),
|
||||
sizedBoxWidth(10.w),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text16w400_FCFCFC(title),
|
||||
sizedBoxHeight(4.h),
|
||||
text12w400_FCFCFC_blur(subtitle),
|
||||
],
|
||||
),
|
||||
Spacer(),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
dialogwidget();
|
||||
},
|
||||
child: Container(
|
||||
height: 30.h,
|
||||
width: 105.w,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(30.r),
|
||||
color: Color(0xFFD90B2E)),
|
||||
child: Center(child: text14w400_FCFCFC("Unblock")),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,131 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:regroup/Common/CommonButton.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/blureffect.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
import 'package:regroup/resources/routes/route_name.dart';
|
||||
import 'package:remove_emoji_input_formatter/remove_emoji_input_formatter.dart';
|
||||
|
||||
import '../../../../Common/controller/CommonTextFormField.dart';
|
||||
|
||||
class ChangePassword extends StatefulWidget {
|
||||
const ChangePassword({super.key});
|
||||
|
||||
@override
|
||||
State<ChangePassword> createState() => _ChangePasswordState();
|
||||
}
|
||||
|
||||
class _ChangePasswordState extends State<ChangePassword> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Change password",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child:
|
||||
Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
|
||||
sizedBoxHeight(25.h),
|
||||
text16w400_FCFCFC("Current password"),
|
||||
sizedBoxHeight(16.w),
|
||||
CustomTextFormField(
|
||||
isInputPassword: true,
|
||||
// textEditingController: _password,
|
||||
hintText: '',
|
||||
leadingIcon: Image.asset(
|
||||
'assets/images/png/lock.png',
|
||||
width: 22.w,
|
||||
height: 17.h,
|
||||
),
|
||||
|
||||
// const Icon(Icons.lock_outline),
|
||||
// validationMessage: "Enter your password",
|
||||
validator: (val) {
|
||||
if (val == null || val.isEmpty) {
|
||||
return 'Please enter your password';
|
||||
}
|
||||
return null;
|
||||
},
|
||||
inputFormatters: [
|
||||
LengthLimitingTextInputFormatter(20),
|
||||
RemoveEmojiInputFormatter()
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(25.h),
|
||||
text16w400_FCFCFC("New password"),
|
||||
sizedBoxHeight(16.w),
|
||||
CustomTextFormField(
|
||||
isInputPassword: true,
|
||||
// textEditingController: _password,
|
||||
hintText: '',
|
||||
leadingIcon: Image.asset(
|
||||
'assets/images/png/lock.png',
|
||||
width: 22.w,
|
||||
height: 17.h,
|
||||
),
|
||||
|
||||
// const Icon(Icons.lock_outline),
|
||||
// validationMessage: "Enter your password",
|
||||
validator: (val) {
|
||||
if (val == null || val.isEmpty) {
|
||||
return 'Please enter your password';
|
||||
}
|
||||
return null;
|
||||
},
|
||||
inputFormatters: [
|
||||
LengthLimitingTextInputFormatter(20),
|
||||
RemoveEmojiInputFormatter()
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(25.h),
|
||||
text16w400_FCFCFC("Repeat password"),
|
||||
sizedBoxHeight(16.w),
|
||||
CustomTextFormField(
|
||||
isInputPassword: true,
|
||||
// textEditingController: _password,
|
||||
hintText: '',
|
||||
leadingIcon: Image.asset(
|
||||
'assets/images/png/lock.png',
|
||||
width: 22.w,
|
||||
height: 17.h,
|
||||
),
|
||||
|
||||
// const Icon(Icons.lock_outline),
|
||||
// validationMessage: "Enter your password",
|
||||
validator: (val) {
|
||||
if (val == null || val.isEmpty) {
|
||||
return 'Please enter your password';
|
||||
}
|
||||
return null;
|
||||
},
|
||||
inputFormatters: [
|
||||
LengthLimitingTextInputFormatter(20),
|
||||
RemoveEmojiInputFormatter()
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(50.h),
|
||||
CommonBtn(
|
||||
text: "Verify",
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.accaountsession);
|
||||
},
|
||||
)
|
||||
]),
|
||||
))
|
||||
]));
|
||||
}
|
||||
}
|
||||
112
lib/Feed Module/Main_Screens/ProfileTab/Settings/ContactUs.dart
Normal file
@@ -0,0 +1,112 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:regroup/Common/CommonButton.dart';
|
||||
import 'package:regroup/Common/CommonDropDown.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/blureffect.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
|
||||
import '../../../../Utils/Common/CustomTextformfield.dart';
|
||||
|
||||
class ContactUs extends StatefulWidget {
|
||||
const ContactUs({super.key});
|
||||
|
||||
@override
|
||||
State<ContactUs> createState() => _ContactUsState();
|
||||
}
|
||||
|
||||
class _ContactUsState extends State<ContactUs> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Contact us",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||
child: SingleChildScrollView(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
sizedBoxHeight(20.h),
|
||||
text16400white("Full name"),
|
||||
sizedBoxHeight(16.h),
|
||||
CustomTextFormField(
|
||||
leadingIcon: Container(
|
||||
height: 17.h,
|
||||
width: 18.w,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/Frame 24.png",
|
||||
height: 17.h,
|
||||
width: 18.w,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
),
|
||||
hintText: "Edward Hackett",
|
||||
),
|
||||
text16400white("Email address"),
|
||||
sizedBoxHeight(16.h),
|
||||
CustomTextFormField(
|
||||
leadingIcon: Container(
|
||||
height: 17.h,
|
||||
width: 18.w,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/Frame 12.png",
|
||||
height: 17.h,
|
||||
width: 18.w,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
),
|
||||
hintText: "loremipsum@gmail.com",
|
||||
),
|
||||
text16400white("Reason to contact"),
|
||||
sizedBoxHeight(16.h),
|
||||
CommonDropdownradioBtn(
|
||||
hint: '',
|
||||
leadingIcon: Container(
|
||||
height: 17.h,
|
||||
width: 18.w,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/fluent_person-support-20-regular.png",
|
||||
height: 17.h,
|
||||
width: 18.w,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
),
|
||||
items: [
|
||||
"Feature suggestion",
|
||||
"Issues with app",
|
||||
"Scoreboard",
|
||||
"Feedback"
|
||||
]),
|
||||
sizedBoxHeight(25.h),
|
||||
text16400white("Query"),
|
||||
sizedBoxHeight(16.h),
|
||||
CustomTextFormField2(
|
||||
maxlines: 3,
|
||||
hintText:
|
||||
"Lorem Ipsum has been the industry's standard dummy text ever since the 1500s. Lorem Ipsum has been the industry's standard",
|
||||
),
|
||||
CommonBtn(text: "Send")
|
||||
]),
|
||||
),
|
||||
))
|
||||
]));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:regroup/Common/CommonButton.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/CustomTextformfield.dart';
|
||||
import 'package:regroup/Utils/Common/blureffect.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
|
||||
class DeleteAccount extends StatefulWidget {
|
||||
const DeleteAccount({super.key});
|
||||
|
||||
@override
|
||||
State<DeleteAccount> createState() => _DeleteAccountState();
|
||||
}
|
||||
|
||||
class _DeleteAccountState extends State<DeleteAccount> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: SingleChildScrollView(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||
child: Column(children: [
|
||||
sizedBoxHeight(25.h),
|
||||
text20400white("Sad to see you go"),
|
||||
sizedBoxHeight(16.h),
|
||||
Image.asset(
|
||||
"assets/images/png/Frame 1.png",
|
||||
height: 119.h,
|
||||
width: 119.w,
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
SizedBox(
|
||||
width: 311.w,
|
||||
child: text16400white(
|
||||
"Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type ",
|
||||
textAlign: TextAlign.center),
|
||||
),
|
||||
sizedBoxHeight(30.h),
|
||||
text18w400white("Tell us why you are leaving ?"),
|
||||
sizedBoxHeight(10.h),
|
||||
CustomTextFormField2(
|
||||
maxlines: 3,
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
CommonBtn(text: "I don’t want to delete"),
|
||||
sizedBoxHeight(18.h),
|
||||
text16400white("Yes I am ready to delete my account"),
|
||||
]),
|
||||
),
|
||||
))
|
||||
]));
|
||||
}
|
||||
}
|
||||
153
lib/Feed Module/Main_Screens/ProfileTab/Settings/FaqScreen.dart
Normal file
@@ -0,0 +1,153 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:regroup/Common/CommonGlassmorphism.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/blureffect.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
|
||||
class FaqScreen extends StatefulWidget {
|
||||
const FaqScreen({super.key});
|
||||
|
||||
@override
|
||||
State<FaqScreen> createState() => _FaqScreenState();
|
||||
}
|
||||
|
||||
class _FaqScreenState extends State<FaqScreen> {
|
||||
late RxList<bool> isExpandedList;
|
||||
late Future myfuture;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
isExpandedList = RxList.generate(faqcard.length, (index) => index == 0);
|
||||
super.initState();
|
||||
}
|
||||
|
||||
void toggleExpansion(int index) {
|
||||
isExpandedList[index] = !isExpandedList[index];
|
||||
}
|
||||
|
||||
List<Map<String, String>> faqcard = [
|
||||
{
|
||||
'title': 'How can I get started with the application?',
|
||||
'content':
|
||||
"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since. Lorem Ipsum has been the industry's standard dummy text ever since.",
|
||||
},
|
||||
{
|
||||
'title': 'How can I get started with the application?',
|
||||
'content':
|
||||
"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since. Lorem Ipsum has been the industry's standard dummy text ever since.",
|
||||
},
|
||||
{
|
||||
'title': 'How can I get started with the application?',
|
||||
'content':
|
||||
"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since. Lorem Ipsum has been the industry's standard dummy text ever since.",
|
||||
},
|
||||
{
|
||||
'title': 'How can I get started with the application?',
|
||||
'content':
|
||||
"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since. Lorem Ipsum has been the industry's standard dummy text ever since.",
|
||||
},
|
||||
{
|
||||
'title': 'How can I get started with the application?',
|
||||
'content':
|
||||
"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since. Lorem Ipsum has been the industry's standard dummy text ever since.",
|
||||
},
|
||||
];
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "FAQ’s",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: SingleChildScrollView(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||
child: Column(children: [
|
||||
sizedBoxHeight(25.h),
|
||||
ListView.builder(
|
||||
shrinkWrap: true,
|
||||
itemCount: faqcard.length,
|
||||
itemBuilder: (BuildContext context, int index) {
|
||||
return Obx(
|
||||
() {
|
||||
return customExpandableItem(
|
||||
isExpanded: isExpandedList[index],
|
||||
title: faqcard[index]['title'] ?? '',
|
||||
content: faqcard[index]['content'] ?? '',
|
||||
toggleExpansion: () =>
|
||||
toggleExpansion(index),
|
||||
);
|
||||
},
|
||||
);
|
||||
})
|
||||
]))))
|
||||
]));
|
||||
}
|
||||
|
||||
Widget customExpandableItem({
|
||||
required bool isExpanded,
|
||||
required String title,
|
||||
required String content,
|
||||
required VoidCallback toggleExpansion,
|
||||
}) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 10.h),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
commonGlassContainer(
|
||||
width: double.infinity,
|
||||
height: isExpanded ? 250.h : 82.h,
|
||||
borderradius: 10.r,
|
||||
customWidget: SingleChildScrollView(
|
||||
child: Padding(
|
||||
padding:
|
||||
const EdgeInsets.symmetric(horizontal: 16, vertical: 12),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Expanded(child: text16w700_FCFCFC(title)),
|
||||
GestureDetector(
|
||||
onTap: toggleExpansion,
|
||||
child: Icon(
|
||||
isExpanded
|
||||
? Icons.keyboard_arrow_up_outlined
|
||||
: Icons.keyboard_arrow_down_outlined,
|
||||
color: Colors.white,
|
||||
size: 25.sp,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
if (isExpanded)
|
||||
Column(
|
||||
children: [
|
||||
sizedBoxHeight(20.h),
|
||||
text14400whiteblur(content)
|
||||
],
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
border: 1),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:regroup/Common/CommonWidget.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/blureffect.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
import 'package:regroup/resources/routes/route_name.dart';
|
||||
|
||||
class HelpAndSupport extends StatefulWidget {
|
||||
const HelpAndSupport({super.key});
|
||||
|
||||
@override
|
||||
State<HelpAndSupport> createState() => _HelpAndSupportState();
|
||||
}
|
||||
|
||||
class _HelpAndSupportState extends State<HelpAndSupport> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Help & Support",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: SingleChildScrollView(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
sizedBoxHeight(20.h),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.faqscreen);
|
||||
},
|
||||
child: rowTile(
|
||||
imagePath: "assets/images/png/Vectorftt.png",
|
||||
text: "FAQ",
|
||||
),
|
||||
),
|
||||
commonDivider(),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.contactUs);
|
||||
},
|
||||
child: rowTile(
|
||||
imagePath:
|
||||
"assets/images/png/fluent_person-support-20-regular.png",
|
||||
text: "Contact us",
|
||||
),
|
||||
),
|
||||
commonDivider(),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.reportabug);
|
||||
},
|
||||
child: rowTile(
|
||||
imagePath: "assets/images/png/codicon_bug.png",
|
||||
text: "Report a bug",
|
||||
),
|
||||
),
|
||||
])))
|
||||
]));
|
||||
}
|
||||
|
||||
Widget rowTile({
|
||||
required String imagePath,
|
||||
required String text,
|
||||
}) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 20.h),
|
||||
child: Row(children: [
|
||||
Image.asset(
|
||||
imagePath,
|
||||
height: 21.h,
|
||||
width: 21.w,
|
||||
),
|
||||
sizedBoxWidth(12.w),
|
||||
text16w400_FCFCFC(text),
|
||||
Spacer(),
|
||||
Icon(
|
||||
Icons.arrow_forward_ios,
|
||||
color: Colors.white,
|
||||
size: 20,
|
||||
)
|
||||
]),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:regroup/Common/CommonWidget.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/blureffect.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
|
||||
class NotificationScreen extends StatefulWidget {
|
||||
const NotificationScreen({super.key});
|
||||
|
||||
@override
|
||||
State<NotificationScreen> createState() => _NotificationScreenState();
|
||||
}
|
||||
|
||||
class _NotificationScreenState extends State<NotificationScreen> {
|
||||
List<bool> switchValues = List.generate(5, (index) => false);
|
||||
bool swichvalue = false;
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Notifications",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: SingleChildScrollView(
|
||||
child: Column(children: [
|
||||
sizedBoxHeight(20.h),
|
||||
rowTile(text: "Group notification", index: 0),
|
||||
commonDivider(),
|
||||
rowTile(text: "Community notification", index: 1),
|
||||
commonDivider(),
|
||||
rowTile(text: "Follower notification", index: 2),
|
||||
commonDivider(),
|
||||
rowTile(text: "New follower notification", index: 3),
|
||||
commonDivider(),
|
||||
rowTile(text: "Direct message notification", index: 4),
|
||||
])))
|
||||
]));
|
||||
}
|
||||
|
||||
Widget rowTile({required String text, required int index}) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 20.h),
|
||||
child: Row(
|
||||
children: [
|
||||
text16w400_FCFCFC(text),
|
||||
Spacer(),
|
||||
Transform.scale(
|
||||
scaleY: 1,
|
||||
child: CupertinoSwitch(
|
||||
value: switchValues[index],
|
||||
trackColor: Colors.white.withOpacity(0.4),
|
||||
activeColor: Color(0xFF34C759),
|
||||
onChanged: (bool? value) {
|
||||
setState(() {
|
||||
switchValues[index] = value ?? false;
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/blureffect.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
|
||||
class PrivacyPolicy extends StatefulWidget {
|
||||
const PrivacyPolicy({super.key});
|
||||
|
||||
@override
|
||||
State<PrivacyPolicy> createState() => _PrivacyPolicyState();
|
||||
}
|
||||
|
||||
class _PrivacyPolicyState extends State<PrivacyPolicy> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Privacy policy",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: SingleChildScrollView(
|
||||
child: Column(children: [
|
||||
sizedBoxHeight(20.h),
|
||||
text18w700white(
|
||||
"Regroup is a community where everyone can belong"),
|
||||
sizedBoxHeight(20.h),
|
||||
text16400whiteblur(
|
||||
"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum."),
|
||||
sizedBoxHeight(20.h),
|
||||
text16400whiteblur(
|
||||
"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.")
|
||||
]),
|
||||
),
|
||||
))
|
||||
]));
|
||||
}
|
||||
}
|
||||
142
lib/Feed Module/Main_Screens/ProfileTab/Settings/ReportABug.dart
Normal file
@@ -0,0 +1,142 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:regroup/Common/CommonButton.dart';
|
||||
import 'package:regroup/Common/CommonDropDown.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/CustomTextformfield.dart';
|
||||
import 'package:regroup/Utils/Common/blureffect.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
|
||||
class ReportABug extends StatefulWidget {
|
||||
const ReportABug({super.key});
|
||||
|
||||
@override
|
||||
State<ReportABug> createState() => _ReportABugState();
|
||||
}
|
||||
|
||||
class _ReportABugState extends State<ReportABug> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Report a bug",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: SingleChildScrollView(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
sizedBoxHeight(20.h),
|
||||
Row(
|
||||
children: [
|
||||
text16400white("Device OS"),
|
||||
sizedBoxWidth(8.w),
|
||||
Image.asset(
|
||||
"assets/images/png/octicon_question-24.png",
|
||||
height: 16.h,
|
||||
width: 16.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(15.h),
|
||||
CustomTextFormField(
|
||||
leadingIcon: Container(
|
||||
height: 25.h,
|
||||
width: 15.w,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/VectorDevice.png",
|
||||
height: 25.h,
|
||||
width: 15.w,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
),
|
||||
hintText: "Apple iphone",
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
text16400white("OS version"),
|
||||
sizedBoxWidth(8.w),
|
||||
Image.asset(
|
||||
"assets/images/png/octicon_question-24.png",
|
||||
height: 16.h,
|
||||
width: 16.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(15.h),
|
||||
CustomTextFormField(
|
||||
leadingIcon: Container(
|
||||
height: 23.h,
|
||||
width: 23.w,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/setting2.png",
|
||||
height: 23.h,
|
||||
width: 23.w,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
),
|
||||
hintText: "Version 16",
|
||||
),
|
||||
text16400white("Email address"),
|
||||
sizedBoxHeight(15.h),
|
||||
CustomTextFormField(
|
||||
leadingIcon: Container(
|
||||
height: 17.h,
|
||||
width: 22.w,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/Frame 12 (1).png",
|
||||
height: 17.h,
|
||||
width: 22.w,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
),
|
||||
hintText: "loremipsum@gmail.com",
|
||||
),
|
||||
text16400white("Reason to contact"),
|
||||
sizedBoxHeight(15.h),
|
||||
CommonDropdownradioBtn(
|
||||
leadingIcon: Image.asset(
|
||||
"assets/images/png/codicon_bug.png",
|
||||
height: 23.h,
|
||||
width: 23.w,
|
||||
),
|
||||
showOtherOption: true,
|
||||
hint: "",
|
||||
items: [
|
||||
"Messaging",
|
||||
"Crashes",
|
||||
"Constant logout",
|
||||
"Unable to view post"
|
||||
]),
|
||||
sizedBoxHeight(20.h),
|
||||
text16400white("Query"),
|
||||
sizedBoxHeight(15.h),
|
||||
CustomTextFormField2(
|
||||
maxlines: 3,
|
||||
hintText:
|
||||
"Lorem Ipsum has been the industry's standard dummy text ever since the 1500s. Lorem Ipsum has been the industry's standard",
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
CommonBtn(text: "Send")
|
||||
])),
|
||||
))
|
||||
]));
|
||||
}
|
||||
}
|
||||
172
lib/Feed Module/Main_Screens/ProfileTab/Settings/Settings.dart
Normal file
@@ -0,0 +1,172 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:glassmorphism/glassmorphism.dart';
|
||||
import 'package:regroup/Common/CommonGlassmorphism.dart';
|
||||
import 'package:regroup/Common/CommonWidget.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/blureffect.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
import 'package:regroup/resources/routes/route_name.dart';
|
||||
|
||||
class Settings extends StatefulWidget {
|
||||
const Settings({super.key});
|
||||
|
||||
@override
|
||||
State<Settings> createState() => _SettingsState();
|
||||
}
|
||||
|
||||
class _SettingsState extends State<Settings> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Settings",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: Column(children: [
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.accountsettings);
|
||||
},
|
||||
child: rowTile(
|
||||
imagePath: "assets/images/png/codicon_account.png",
|
||||
text: "Account settings",
|
||||
),
|
||||
),
|
||||
commonDivider(),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.notifications);
|
||||
},
|
||||
child: rowTile(
|
||||
imagePath: "assets/images/png/Frame 9.png",
|
||||
text: "Notification settings",
|
||||
),
|
||||
),
|
||||
commonDivider(),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.helpandsupport);
|
||||
},
|
||||
child: rowTile(
|
||||
imagePath:
|
||||
"assets/images/png/fluent_person-support-20-regular.png",
|
||||
text: "Help & support",
|
||||
),
|
||||
),
|
||||
commonDivider(),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.privacypolicy);
|
||||
},
|
||||
child: rowTile(
|
||||
imagePath: "assets/images/png/iconoir_privacy-policy.png",
|
||||
text: "Privacy policy",
|
||||
),
|
||||
),
|
||||
commonDivider(),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.termscondition);
|
||||
},
|
||||
child: rowTile(
|
||||
imagePath: "assets/images/png/Vector (5)1.png",
|
||||
text: "Terms & condition",
|
||||
),
|
||||
),
|
||||
commonDivider(),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
dialogwidget();
|
||||
},
|
||||
child: rowTile(
|
||||
imagePath: "assets/images/png/Vector (6).png",
|
||||
text: "Logout",
|
||||
),
|
||||
),
|
||||
]))
|
||||
]));
|
||||
}
|
||||
|
||||
Widget rowTile({
|
||||
required String imagePath,
|
||||
required String text,
|
||||
}) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 20.h),
|
||||
child: Row(children: [
|
||||
Image.asset(
|
||||
imagePath,
|
||||
height: 21.h,
|
||||
width: 21.w,
|
||||
),
|
||||
sizedBoxWidth(12.w),
|
||||
text16w400_FCFCFC(text),
|
||||
Spacer(),
|
||||
Icon(
|
||||
Icons.arrow_forward_ios,
|
||||
color: Colors.white,
|
||||
size: 20,
|
||||
)
|
||||
]),
|
||||
);
|
||||
}
|
||||
|
||||
dialogwidget() {
|
||||
Get.dialog(Dialog(
|
||||
backgroundColor: Colors.transparent,
|
||||
child: commonGlassContainer(
|
||||
width: double.infinity,
|
||||
height: 200.h,
|
||||
borderradius: 14,
|
||||
opacity1: 0.09,
|
||||
opacity2: 0.13,
|
||||
border: 0.8,
|
||||
customWidget: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 20.h),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text18w400_FCFCFC(
|
||||
"Are you sure you want to logout of Regroup community?",
|
||||
textAlign: TextAlign.center),
|
||||
sizedBoxHeight(20.h),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
commonGlassContainer(
|
||||
width: 140.w,
|
||||
height: 40.h,
|
||||
borderradius: 30.r,
|
||||
opacity1: 0.05,
|
||||
opacity2: 0.07,
|
||||
customWidget:
|
||||
Center(child: text14400white("Yes, I want to")),
|
||||
border: 1),
|
||||
Container(
|
||||
height: 40.h,
|
||||
width: 140.w,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFFD90B2E),
|
||||
borderRadius: BorderRadius.circular(30.r),
|
||||
),
|
||||
child: Center(child: text14400white("Keep using App")),
|
||||
)
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/blureffect.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
|
||||
class TermsCondition extends StatefulWidget {
|
||||
const TermsCondition({super.key});
|
||||
|
||||
@override
|
||||
State<TermsCondition> createState() => _TermsConditionState();
|
||||
}
|
||||
|
||||
class _TermsConditionState extends State<TermsCondition> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Terms & Condition",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: SingleChildScrollView(
|
||||
child: Column(children: [
|
||||
sizedBoxHeight(20.h),
|
||||
text18w700white(
|
||||
"Regroup is a community where everyone can belong"),
|
||||
sizedBoxHeight(20.h),
|
||||
text16400whiteblur(
|
||||
"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum."),
|
||||
sizedBoxHeight(20.h),
|
||||
text16400whiteblur(
|
||||
"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.")
|
||||
]),
|
||||
),
|
||||
))
|
||||
]));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class VerifyCode extends StatefulWidget {
|
||||
const VerifyCode({super.key});
|
||||
|
||||
@override
|
||||
State<VerifyCode> createState() => _VerifyCodeState();
|
||||
}
|
||||
|
||||
class _VerifyCodeState extends State<VerifyCode> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return const Placeholder();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:regroup/Common/CommonButton.dart';
|
||||
import 'package:regroup/Common/CommonGlassmorphism.dart';
|
||||
import 'package:regroup/Common/CommonWidget.dart';
|
||||
import 'package:regroup/Common/controller/CommonTextFormField.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/blureffect.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
import 'package:regroup/resources/routes/route_name.dart';
|
||||
|
||||
class ShareProfile extends StatefulWidget {
|
||||
const ShareProfile({super.key});
|
||||
|
||||
@override
|
||||
State<ShareProfile> createState() => _ShareProfileState();
|
||||
}
|
||||
|
||||
class _ShareProfileState extends State<ShareProfile> {
|
||||
List profileData = [
|
||||
{
|
||||
"imagePath": "assets/images/png/Ellipse 52.png",
|
||||
"title": "Iron titans fitness crew",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Ellipse 48.png",
|
||||
"title": "Body blitz brigade",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Ellipse 43.png",
|
||||
"title": "Fit fusion squad",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Ellipse 37.png",
|
||||
"title": "Power pulse posse",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Ellipse 52.png",
|
||||
"title": "Iron titans fitness crew",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Ellipse 48.png",
|
||||
"title": "Body blitz brigade",
|
||||
"subtitle": "Lorem ipsum dummy text",
|
||||
},
|
||||
];
|
||||
|
||||
List<bool> isCheckedList = [false, false, false, false, false, false, false];
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Share profile",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: SingleChildScrollView(
|
||||
child: Column(children: [
|
||||
Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
|
||||
sizedBoxHeight(10.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: CustomTextFormField(
|
||||
leadingIcon: SizedBox(
|
||||
height: 23,
|
||||
width: 23,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/ion_search-outline.png",
|
||||
height: 23,
|
||||
width: 23,
|
||||
),
|
||||
),
|
||||
),
|
||||
hintText: "Search",
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(25.h),
|
||||
ListView.builder(
|
||||
shrinkWrap: true,
|
||||
itemCount: profileData.length,
|
||||
itemBuilder: (context, index) {
|
||||
return Column(
|
||||
children: [
|
||||
profileWidget(
|
||||
index: index,
|
||||
imagePath: profileData[index]["imagePath"],
|
||||
title: profileData[index]["title"],
|
||||
subtitle: profileData[index]["subtitle"],
|
||||
isChecked: isCheckedList[index],
|
||||
onCheckedChanged: (bool? value) {
|
||||
setState(() {
|
||||
isCheckedList[index] = value ?? false;
|
||||
});
|
||||
},
|
||||
),
|
||||
if (index != profileData.length - 1) commonDivider(),
|
||||
],
|
||||
);
|
||||
},
|
||||
),
|
||||
sizedBoxHeight(30.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: CommonBtn(text: "Send"),
|
||||
)
|
||||
])
|
||||
])))
|
||||
]));
|
||||
}
|
||||
|
||||
Widget profileWidget({
|
||||
required int index,
|
||||
required String imagePath,
|
||||
required String title,
|
||||
required String subtitle,
|
||||
required bool isChecked,
|
||||
required ValueChanged<bool?> onCheckedChanged,
|
||||
}) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 16.h, horizontal: 16.w),
|
||||
child: Row(
|
||||
children: [
|
||||
CircleAvatar(
|
||||
backgroundImage: AssetImage(imagePath),
|
||||
radius: 25.r,
|
||||
),
|
||||
sizedBoxWidth(10.w),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text16w400_FCFCFC(title),
|
||||
sizedBoxHeight(4.h),
|
||||
text12w400_FCFCFC_blur(subtitle),
|
||||
],
|
||||
),
|
||||
Spacer(),
|
||||
commonGlassContainer(
|
||||
border: 1,
|
||||
borderradius: 2,
|
||||
height: 23.h,
|
||||
width: 23.w,
|
||||
opacity1: 0.24,
|
||||
opacity2: 0.24,
|
||||
customWidget: Transform.scale(
|
||||
scale: 1.4,
|
||||
child: Checkbox(
|
||||
side: BorderSide(color: Color(0xFF434A53)),
|
||||
value: isChecked,
|
||||
activeColor: Colors.transparent,
|
||||
checkColor: Colors.white,
|
||||
onChanged: onCheckedChanged,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -70,7 +70,7 @@ class _CustomDropDownWidgetSignupState
|
||||
// Image.asset(
|
||||
// 'assets/images/png/user.png',
|
||||
// ),
|
||||
|
||||
|
||||
widget.leadingImage!,
|
||||
SizedBox(width: 16.w),
|
||||
Text(
|
||||
@@ -149,3 +149,246 @@ class _CustomDropDownWidgetSignupState
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class CustomDropDownRadio extends StatefulWidget {
|
||||
const CustomDropDownRadio({
|
||||
Key? key,
|
||||
required this.header,
|
||||
required this.title,
|
||||
required this.listData,
|
||||
required this.onItemSelected,
|
||||
required this.leadingImage,
|
||||
this.showOtherOption = false,
|
||||
}) : super(key: key);
|
||||
|
||||
final String header;
|
||||
final String title;
|
||||
final List<String> listData;
|
||||
final Function(String) onItemSelected;
|
||||
final Widget? leadingImage;
|
||||
final bool showOtherOption;
|
||||
|
||||
@override
|
||||
State<CustomDropDownRadio> createState() => _CustomDropDownRadioState();
|
||||
}
|
||||
|
||||
class _CustomDropDownRadioState extends State<CustomDropDownRadio> {
|
||||
RxBool onDropTap = false.obs;
|
||||
RxString selectedValue = "".obs;
|
||||
final TextEditingController _textController =
|
||||
TextEditingController(); // Add a text controller
|
||||
|
||||
List<DropdownMenuItem<String>> _buildDropdownMenuItems() {
|
||||
List<DropdownMenuItem<String>> items =
|
||||
widget.listData.asMap().entries.map((entry) {
|
||||
int index = entry.key;
|
||||
String item = entry.value;
|
||||
return DropdownMenuItem<String>(
|
||||
value: item,
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
selectedValue.value = item;
|
||||
_textController.clear();
|
||||
widget.onItemSelected(item);
|
||||
},
|
||||
child: Column(
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
Obx(() {
|
||||
return Radio<String>(
|
||||
value: item,
|
||||
activeColor: Colors.white,
|
||||
groupValue: selectedValue.value,
|
||||
onChanged: (value) {
|
||||
selectedValue.value = value!;
|
||||
_textController.clear();
|
||||
widget.onItemSelected(value);
|
||||
},
|
||||
);
|
||||
}),
|
||||
SizedBox(width: 8),
|
||||
Text(
|
||||
item,
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 16,
|
||||
fontFamily: 'Helvetica',
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(height: 5.h),
|
||||
if (index != widget.listData.length - 1)
|
||||
Divider(thickness: 1, color: const Color(0xFF434A53)),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}).toList();
|
||||
|
||||
if (widget.showOtherOption) {
|
||||
items.add(
|
||||
DropdownMenuItem<String>(
|
||||
value: _textController.text,
|
||||
child: Column(
|
||||
children: [
|
||||
Divider(thickness: 1, color: const Color(0xFF434A53)),
|
||||
Row(
|
||||
children: [
|
||||
Obx(() {
|
||||
return Radio<String>(
|
||||
value: _textController.text,
|
||||
activeColor: Colors.white,
|
||||
groupValue: selectedValue.value,
|
||||
onChanged: (value) {
|
||||
selectedValue.value = value!;
|
||||
_textController.clear();
|
||||
widget.onItemSelected(value);
|
||||
},
|
||||
);
|
||||
}),
|
||||
SizedBox(width: 8),
|
||||
Text(
|
||||
"Other: ",
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 16,
|
||||
fontFamily: 'Helvetica',
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
Expanded(
|
||||
child: TextField(
|
||||
controller: _textController,
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 16,
|
||||
fontFamily: 'Helvetica',
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
decoration: InputDecoration(
|
||||
hintText: '',
|
||||
hintStyle: TextStyle(color: Colors.white70),
|
||||
border: UnderlineInputBorder(),
|
||||
),
|
||||
),
|
||||
),
|
||||
TextButton(
|
||||
onPressed: () {
|
||||
if (_textController.text.trim().isNotEmpty) {
|
||||
selectedValue.value = _textController.text;
|
||||
widget.onItemSelected(_textController.text);
|
||||
}
|
||||
},
|
||||
child: Text(
|
||||
'OK',
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 16,
|
||||
fontFamily: 'Helvetica',
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(10.h),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
return items;
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Obx(
|
||||
() => Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
onDropTap.value = !onDropTap.value;
|
||||
},
|
||||
child: Container(
|
||||
width: double.infinity,
|
||||
height: 50.h,
|
||||
padding: EdgeInsets.only(
|
||||
top: 14.0, bottom: 14.0, right: 22.w, left: 12.w),
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFFFFFFFF).withOpacity(0.10),
|
||||
borderRadius: onDropTap.value
|
||||
? BorderRadius.vertical(
|
||||
top: Radius.circular(30.r),
|
||||
)
|
||||
: BorderRadius.circular(30.r),
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
const Color(0xFFffffff).withOpacity(0.50),
|
||||
const Color(0xFFFFFFFF).withOpacity(0.50),
|
||||
],
|
||||
),
|
||||
border: Border.all(color: const Color(0xFF434A53)),
|
||||
),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
widget.leadingImage!,
|
||||
SizedBox(width: 16.w),
|
||||
Text(
|
||||
selectedValue.value.isEmpty
|
||||
? widget.header
|
||||
: selectedValue.value,
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 16.sp,
|
||||
fontFamily: 'Helvetica',
|
||||
fontWeight: FontWeight.w400),
|
||||
),
|
||||
],
|
||||
),
|
||||
onDropTap.value
|
||||
? Image.asset('assets/images/png/arrowup.png')
|
||||
: Image.asset('assets/images/png/arrowdown.png'),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
if (onDropTap.value)
|
||||
Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFFFFFFFF).withOpacity(0.10),
|
||||
borderRadius: BorderRadius.vertical(
|
||||
bottom: Radius.circular(30.r),
|
||||
),
|
||||
border: Border.all(color: const Color(0xFF434A53)),
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
const Color(0xFFffffff).withOpacity(0.50),
|
||||
const Color(0xFFFFFFFF).withOpacity(0.50),
|
||||
],
|
||||
),
|
||||
),
|
||||
child: ListView(
|
||||
shrinkWrap: true,
|
||||
children: _buildDropdownMenuItems(),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,13 +44,25 @@ Widget text20700white(String text) {
|
||||
);
|
||||
}
|
||||
|
||||
Widget text16400white(String text) {
|
||||
Widget text16400white(String text, {TextAlign? textAlign}) {
|
||||
return Text(
|
||||
text,
|
||||
textAlign: textAlign,
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: AppColors.white,
|
||||
fontWeight: FontWeight.w400,
|
||||
fontFamily: 'Helvetica'),
|
||||
);
|
||||
}
|
||||
|
||||
Widget text16400whiteblur(String text) {
|
||||
return Text(
|
||||
text,
|
||||
// textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: AppColors.white,
|
||||
color: AppColors.white.withOpacity(0.8),
|
||||
fontWeight: FontWeight.w400,
|
||||
fontFamily: 'Helvetica'),
|
||||
);
|
||||
@@ -91,6 +103,17 @@ Widget text12400white(String text) {
|
||||
);
|
||||
}
|
||||
|
||||
Widget text12700white(String text) {
|
||||
return Text(
|
||||
text,
|
||||
style: TextStyle(
|
||||
fontSize: 12.sp,
|
||||
color: AppColors.white,
|
||||
fontWeight: FontWeight.w700,
|
||||
fontFamily: 'Helvetica'),
|
||||
);
|
||||
}
|
||||
|
||||
Widget text12400whiteblur(String text) {
|
||||
return Text(
|
||||
text,
|
||||
@@ -113,6 +136,17 @@ Widget text14400white(String text) {
|
||||
fontFamily: 'Helvetica'),
|
||||
);
|
||||
}
|
||||
Widget text144005DFD63(String text) {
|
||||
return Text(
|
||||
text,
|
||||
// textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontSize: 14.sp,
|
||||
color: Color(0xFF5DFD63),
|
||||
fontWeight: FontWeight.w400,
|
||||
fontFamily: 'Helvetica'),
|
||||
);
|
||||
}
|
||||
|
||||
Widget text14400whiteblur(String text) {
|
||||
return Text(
|
||||
@@ -323,6 +357,17 @@ Widget text16w400_FCFCFC(String text) {
|
||||
);
|
||||
}
|
||||
|
||||
Widget text16w400_FF0000(String text) {
|
||||
return Text(
|
||||
text,
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Color(0xFFFF0000),
|
||||
fontFamily: 'Helvetica',
|
||||
fontWeight: FontWeight.w400),
|
||||
);
|
||||
}
|
||||
|
||||
Widget text10400white(String text) {
|
||||
return Text(
|
||||
text,
|
||||
@@ -334,6 +379,17 @@ Widget text10400white(String text) {
|
||||
);
|
||||
}
|
||||
|
||||
Widget text10400whiteblur(String text) {
|
||||
return Text(
|
||||
text,
|
||||
style: TextStyle(
|
||||
fontSize: 10.sp,
|
||||
color: Colors.white.withOpacity(0.8),
|
||||
fontFamily: 'Helvetica',
|
||||
fontWeight: FontWeight.w400),
|
||||
);
|
||||
}
|
||||
|
||||
Widget text16w700_FCFCFC(String text) {
|
||||
return Text(
|
||||
text,
|
||||
@@ -415,6 +471,17 @@ Widget text12w400_FCFCFC(String text) {
|
||||
);
|
||||
}
|
||||
|
||||
Widget text12w700_FCFCFC(String text) {
|
||||
return Text(
|
||||
text,
|
||||
style: TextStyle(
|
||||
fontSize: 12.sp,
|
||||
color: Color(0xFFFCFCFC),
|
||||
fontFamily: 'Helvetica',
|
||||
fontWeight: FontWeight.w700),
|
||||
);
|
||||
}
|
||||
|
||||
Widget text20w700_FCFCFC(String text) {
|
||||
return Text(
|
||||
text,
|
||||
@@ -459,9 +526,10 @@ Widget text11w400_FCFCFC(String text) {
|
||||
);
|
||||
}
|
||||
|
||||
Widget text18w400_FCFCFC(String text) {
|
||||
Widget text18w400_FCFCFC(String text, {TextAlign? textAlign}) {
|
||||
return Text(
|
||||
text,
|
||||
textAlign: textAlign,
|
||||
style: TextStyle(
|
||||
fontSize: 18.sp,
|
||||
color: Color(0xFFFCFCFC),
|
||||
@@ -470,8 +538,6 @@ Widget text18w400_FCFCFC(String text) {
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Widget text18w500_FCFCFC(String text) {
|
||||
return Text(
|
||||
text,
|
||||
@@ -506,9 +572,10 @@ Widget text18w700_FCFCFC(String text) {
|
||||
);
|
||||
}
|
||||
|
||||
Widget text14w400_FCFCFC(String text) {
|
||||
Widget text14w400_FCFCFC(String text, {TextAlign? textAlign}) {
|
||||
return Text(
|
||||
text,
|
||||
textAlign: textAlign,
|
||||
style: TextStyle(
|
||||
fontSize: 14.sp,
|
||||
color: Color(0xFFFCFCFC),
|
||||
|
||||
@@ -55,6 +55,28 @@ class RouteName {
|
||||
|
||||
static const String groupchatpage = '/groupchatpage';
|
||||
static const String managememberscal = '/managememberscal';
|
||||
static const String shareProfile = '/shareProfile';
|
||||
static const String followers = '/followers';
|
||||
static const String following = '/following';
|
||||
static const String clubs = '/clubs';
|
||||
static const String badges = '/badges';
|
||||
static const String settings = '/settings';
|
||||
static const String accountsettings = '/accountsettings';
|
||||
static const String editProfile = '/editProfile';
|
||||
static const String notifications = '/notifications';
|
||||
static const String helpandsupport = '/helpandsupport';
|
||||
static const String privacypolicy = '/privacypolicy';
|
||||
static const String termscondition = '/termscondition';
|
||||
static const String accaountsession = '/accaountsession';
|
||||
static const String blockedusers = '/blockedusers';
|
||||
static const String deleteaccount = '/deleteaccount';
|
||||
static const String faqscreen = '/faqscreen';
|
||||
static const String contactUs = '/contactUs';
|
||||
static const String reportabug = '/reportabug';
|
||||
static const String changepassword = '/changepassword';
|
||||
|
||||
|
||||
|
||||
|
||||
static const String notificaationpage = '/notificationpage';
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get_navigation/src/routes/get_route.dart';
|
||||
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/CalenderTab/AddEvent/AddEvent.dart';
|
||||
@@ -11,6 +12,25 @@ import 'package:regroup/Feed%20Module/Main_Screens/Chats/View/groupchat.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/Chats/View/newchatpage.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/Chats/View/newgroup.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/Chats/View/userchat.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/Badges/Badges.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/Clubs/Clubs.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/EditProfile/EditProfile.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/Followers/Followers.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/Following/Following.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/Settings/AccountSessions.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/Settings/AccountSetting.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/Settings/BlockedUsers.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/Settings/ChangePassword.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/Settings/ContactUs.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/Settings/DeleteAccount.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/Settings/FaqScreen.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/Settings/HelpAndSupport.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/Settings/Notification.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/Settings/PrivacyPolicy.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/Settings/ReportABug.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/Settings/Settings.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/Settings/TermsCondition.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/Share%20profile/ShareProfile.dart';
|
||||
import 'package:regroup/Feed%20Module/Notification/View/notification.dart';
|
||||
|
||||
import 'package:regroup/Feed%20Module/sidemenu/Community/Admin/PopupItem/Community%20settings/CommunitySetting.dart';
|
||||
@@ -183,10 +203,7 @@ class AppRoutes {
|
||||
name: RouteName.editcommunity,
|
||||
page: () => const EditCommunity(),
|
||||
),
|
||||
|
||||
|
||||
|
||||
GetPage(
|
||||
GetPage(
|
||||
name: RouteName.newchatpage,
|
||||
page: () => const NewChatPage(),
|
||||
),
|
||||
@@ -194,18 +211,14 @@ class AppRoutes {
|
||||
name: RouteName.newgrouppage,
|
||||
page: () => const NewGroupPage(),
|
||||
),
|
||||
|
||||
GetPage(
|
||||
name: RouteName.userchatpage,
|
||||
page: () => const UserChatPage(),
|
||||
),
|
||||
|
||||
GetPage(
|
||||
name: RouteName.groupchatpage,
|
||||
page: () => const GroupChatPage(),
|
||||
),
|
||||
|
||||
|
||||
GetPage(
|
||||
name: RouteName.managetags,
|
||||
page: () => const ManageTags(),
|
||||
@@ -238,7 +251,6 @@ class AppRoutes {
|
||||
name: RouteName.newcommunity,
|
||||
page: () => const NewCommunity(),
|
||||
),
|
||||
|
||||
GetPage(
|
||||
name: RouteName.resourcepool,
|
||||
page: () => const ResourcePool(),
|
||||
@@ -264,6 +276,82 @@ class AppRoutes {
|
||||
page: () => const ManageMembersCal(),
|
||||
),
|
||||
GetPage(
|
||||
name: RouteName.shareProfile,
|
||||
page: () => const ShareProfile(),
|
||||
),
|
||||
GetPage(
|
||||
name: RouteName.followers,
|
||||
page: () => const Followers(),
|
||||
),
|
||||
GetPage(
|
||||
name: RouteName.following,
|
||||
page: () => const Following(),
|
||||
),
|
||||
GetPage(
|
||||
name: RouteName.clubs,
|
||||
page: () => const Clubs(),
|
||||
),
|
||||
GetPage(
|
||||
name: RouteName.badges,
|
||||
page: () => const Badges(),
|
||||
),
|
||||
GetPage(
|
||||
name: RouteName.settings,
|
||||
page: () => const Settings(),
|
||||
),
|
||||
GetPage(
|
||||
name: RouteName.accountsettings,
|
||||
page: () => const AccountSettings(),
|
||||
),
|
||||
GetPage(
|
||||
name: RouteName.editProfile,
|
||||
page: () => const EditProfile(),
|
||||
),
|
||||
GetPage(
|
||||
name: RouteName.notifications,
|
||||
page: () => const NotificationScreen(),
|
||||
),
|
||||
GetPage(
|
||||
name: RouteName.helpandsupport,
|
||||
page: () => const HelpAndSupport(),
|
||||
),
|
||||
GetPage(
|
||||
name: RouteName.privacypolicy,
|
||||
page: () => const PrivacyPolicy(),
|
||||
),
|
||||
GetPage(
|
||||
name: RouteName.termscondition,
|
||||
page: () => const TermsCondition(),
|
||||
),
|
||||
GetPage(
|
||||
name: RouteName.accaountsession,
|
||||
page: () => const AccountSession(),
|
||||
),
|
||||
GetPage(
|
||||
name: RouteName.blockedusers,
|
||||
page: () => const BlockedUsers(),
|
||||
),
|
||||
GetPage(
|
||||
name: RouteName.deleteaccount,
|
||||
page: () => const DeleteAccount(),
|
||||
),
|
||||
GetPage(
|
||||
name: RouteName.faqscreen,
|
||||
page: () => const FaqScreen(),
|
||||
),
|
||||
GetPage(
|
||||
name: RouteName.contactUs,
|
||||
page: () => const ContactUs(),
|
||||
),
|
||||
GetPage(
|
||||
name: RouteName.reportabug,
|
||||
page: () => const ReportABug(),
|
||||
),
|
||||
GetPage(
|
||||
name: RouteName.changepassword,
|
||||
page: () => const ChangePassword(),
|
||||
),
|
||||
GetPage(
|
||||
name: RouteName.notificaationpage,
|
||||
page: () => const NotificationPage(),
|
||||
),
|
||||
|
||||