My community page done.

This commit is contained in:
kshitige
2024-05-30 11:53:34 +05:30
parent 10d98eaf82
commit 40670511ea
34 changed files with 1242 additions and 128 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 942 B

BIN
assets/images/png/Black.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 KiB

BIN
assets/images/png/cimg1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB

BIN
assets/images/png/cimg2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 KiB

BIN
assets/images/png/cimg3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 KiB

BIN
assets/images/png/cimg4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 929 B

BIN
assets/images/png/img1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 450 KiB

BIN
assets/images/png/img12.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
assets/images/png/img2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 902 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 749 B

View File

@@ -1,85 +0,0 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
class CommonAppbar extends StatelessWidget implements PreferredSizeWidget {
@override
Size get preferredSize => const Size.fromHeight(70);
const CommonAppbar({
Key? key,
required this.titleTxt,
this.showLeading = true,
this.customActionWidget,
this.onCustomActionPressed,
required Size preferredSize,
this.showEdit = false,
this.customBack,
this.editPageName,
}) : super(key: key);
final String titleTxt;
final bool? showLeading;
final Widget? customActionWidget;
final VoidCallback? onCustomActionPressed;
final bool? showEdit;
final bool? customBack;
final String? editPageName;
@override
Widget build(BuildContext context) {
return AppBar(
scrolledUnderElevation: 0.0,
backgroundColor: Colors.white,
elevation: 0,
automaticallyImplyLeading: false,
titleSpacing: 0,
title: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Text(
titleTxt,
softWrap: true,
overflow: TextOverflow.visible,
textAlign: TextAlign.start,
style: TextStyle(
fontFamily: 'DM Sans',
fontSize: 18.sp,
fontWeight: FontWeight.w500,
color: Color(0xFF090909),
),
),
),
],
),
),
leading: showLeading!
? InkWell(
onTap: () {
Get.back();
},
child: Icon(
Icons.arrow_back,
color: Color(0xFF090909),
size: 27,
),
)
: null,
actions: [
if (customActionWidget != null)
InkWell(
onTap: onCustomActionPressed,
child: Padding(
padding: EdgeInsets.only(right: 14.w),
child: customActionWidget,
),
),
],
);
}
}

View File

@@ -5,14 +5,16 @@ Widget commonGlassContainer(
{required double width,
required double height,
required double borderradius,
required Widget customWidget}) {
required Widget customWidget,
required double border
}) {
return GlassmorphicContainer(
width: width,
height: height,
borderRadius: borderradius,
blur: 10,
alignment: Alignment.topCenter,
border: 0.9,
border: border,
linearGradient: LinearGradient(
begin: Alignment.topLeft,
end: Alignment.bottomRight,

View File

@@ -117,4 +117,22 @@ Widget MessageTextInputField(
),
keyboardType: TextInputType.text,
);
}
Widget commonDivider(){
return Container(
height: 1.5.h,
width: double.infinity,
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [
Color.fromRGBO(255, 255, 255, 0.07),
Color.fromRGBO(255, 255, 255, 0.09),
],
transform: GradientRotation(1.78),
),
),
);
}

View File

@@ -97,7 +97,11 @@ class _CustomTextFormFieldState extends State<CustomTextFormField> {
controller: widget.textEditingController,
textCapitalization: widget.textCapV ?? TextCapitalization.none,
decoration: InputDecoration(
hintStyle: TextStyle(color: Colors.white),
hintStyle: TextStyle(
color: Color.fromRGBO(252, 252, 252, 0.5),
fontSize: 14,
fontFamily: "Helvetica",
fontWeight: FontWeight.w400),
hintText: widget.hintText,
prefixIconColor: widget.prefixIconColor,
// ignore: prefer_null_aware_operators

View File

@@ -284,20 +284,17 @@ Widget normalcardtile() {
height: 18.h,
),
),
// GestureDetector(
// onTap: () {},
// child: Image.asset(
// 'assets/images/png/Group 1000004071.png',
// width: 4.w,
// height: 18.h,
// ),
// ),
sizedBoxWidth(5.w)
],
),
),
sizedBoxHeight(20.h),
Image.asset('assets/images/png/Rectangle 22.png'),
GestureDetector(
onTap: () {
Get.toNamed(RouteName.postdetailsScreen);
},
child: Image.asset('assets/images/png/Rectangle 22.png')),
sizedBoxHeight(20.h),
Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
@@ -324,33 +321,11 @@ Widget normalcardtile() {
text16w400_FCFCFC(
"Lorem Ipsum has been the industry's standard dummy text ever since the 1500s . . ."),
Row(children: [
// commonGlassContainer(
// width: 30.w,
// height: 30.h,
// 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: 'Party',
// icon: Image.asset(
// 'assets/images/png/party-popper 2.png',
// height: 17.h,
// width: 17.w,
// ),
// ),
// ],
// ),
// ),
// sizedBoxWidth(7),
// text14w400_FCFCFC('20'),
Spacer(),
commonGlassContainer(
border: 0.9,
width: 30.w,
height: 30.h,
borderradius: 100,
@@ -377,6 +352,8 @@ Widget normalcardtile() {
text14w400_FCFCFC('20'),
sizedBoxWidth(20.w),
commonGlassContainer(
border: 0.9,
width: 30.w,
height: 30.h,
borderradius: 100,
@@ -528,6 +505,8 @@ Widget _buildReactionsIcon(String assetPath) {
Widget tagCardTile() {
return commonGlassContainer(
border: 0.9,
width: double.infinity,
height: 580.h,
borderradius: 1,
@@ -546,6 +525,8 @@ Widget tagCardTile() {
Widget containertile({required String text}) {
return commonGlassContainer(
border: 0.9,
width: 100.w,
height: 30.h,
borderradius: 30.r,

View File

@@ -152,6 +152,8 @@ Widget normalcardtile() {
"Lorem Ipsum has been the industry's standard dummy text ever since the 1500s . . ."),
Row(children: [
commonGlassContainer(
border: 0.9,
width: 30.w,
height: 30.h,
borderradius: 100,
@@ -175,6 +177,8 @@ Widget normalcardtile() {
),
),
commonGlassContainer(
border: 0.9,
width: 30.w,
height: 30.h,
borderradius: 100,
@@ -198,6 +202,8 @@ Widget normalcardtile() {
),
),
commonGlassContainer(
border: 0.9,
width: 30.w,
height: 30.h,
borderradius: 100,
@@ -224,6 +230,8 @@ Widget normalcardtile() {
text14w400_FCFCFC('20'),
Spacer(),
commonGlassContainer(
border: 0.9,
width: 30.w,
height: 30.h,
borderradius: 100,
@@ -250,6 +258,8 @@ Widget normalcardtile() {
text14w400_FCFCFC('20'),
sizedBoxWidth(20.w),
commonGlassContainer(
border: 0.9,
width: 30.w,
height: 30.h,
borderradius: 100,

View File

@@ -1,4 +1,15 @@
import 'package:flutter/cupertino.dart';
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/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 PostDetailsScreen extends StatefulWidget {
const PostDetailsScreen({super.key});
@@ -10,6 +21,444 @@ class PostDetailsScreen extends StatefulWidget {
class _PostDetailsScreenState extends State<PostDetailsScreen> {
@override
Widget build(BuildContext context) {
return const Placeholder();
return Scaffold(
backgroundColor: Color(0xFF222935),
extendBody: true,
appBar: CommonAppbar(
titleTxt: "Post",
),
body: Stack(children: [
const CommonBlurLeftRed(),
const CommonBlurRightRed(),
const CommonBlurLeft(),
const CommonBlurRight(),
Positioned.fill(
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
sizedBoxHeight(25.h),
postCards(),
sizedBoxHeight(30.h),
commonDivider(),
sizedBoxHeight(30.h),
Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Column(
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
CircleAvatar(
radius: 20.r,
foregroundImage: AssetImage(
"assets/images/png/Ellipse 48.png",
),
),
sizedBoxWidth(15.w),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text12w400_FCFCFC_blur("Roger Saris"),
text14w400_FCFCFC(
"Lorem Ipsum has been the industry's standard dummy text 😍"),
text10w400_FCFCFC_blur("Reply. . . ")
],
),
),
],
),
sizedBoxHeight(50.h),
CustomTextFormField(
hintText: "Add comment",
suffixIcon: Container(
height: 20.h,
width: 25.w,
child: Center(
child: Image.asset(
"assets/images/png/iconoir_send.png",
height: 20.h,
width: 25.w,
),
),
),
)
],
),
),
sizedBoxHeight(85.h)
])))
]));
}
}
Widget postCards() {
final List<String> titles = [
'Cycle',
'Marathon',
'Events',
'Swimming',
'Events',
];
return Column(
children: [
sizedBoxHeight(25.h),
Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
CircleAvatar(
foregroundImage: AssetImage('assets/images/png/Ellipse 43.png'),
radius: 25.r,
),
sizedBoxWidth(12.w),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text16w400_FCFCFC('Edward Hackket'),
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: 4.w,
height: 18.h,
),
),
sizedBoxWidth(5.w)
],
),
),
sizedBoxHeight(20.h),
GestureDetector(
onTap: () {
// Get.toNamed(RouteName.postdetailsScreen);
},
child: Image.asset('assets/images/png/Rectangle 22.png')),
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: titles.length,
itemBuilder: (context, index) {
return Padding(
padding: EdgeInsets.only(right: 12.w),
child: GestureDetector(
onTap: () {
Get.toNamed(RouteName.cyclescreen);
},
child: containertile(text: titles[index])),
);
},
),
),
sizedBoxHeight(20.h),
text16w400_FCFCFC(
"Lorem Ipsum has been the industry's standard dummy text ever since the 1500s . . ."),
Row(children: [
Spacer(),
commonGlassContainer(
border: 0.9,
width: 30.w,
height: 30.h,
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.9,
width: 30.w,
height: 30.h,
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 (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: [
ReactionButton<String>(
onReactionChanged: (reaction) {
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'),
),
// Add more reactions here if needed
],
placeholder: Reaction<String>(
value: 'like',
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.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.w, 40.h),
boxPadding: EdgeInsets.all(4),
boxAnimationDuration: Duration(milliseconds: 200),
itemAnimationDuration:
Duration(milliseconds: 100),
hoverDuration: Duration(milliseconds: 400),
toggle: false,
direction: ReactionsBoxAlignment.ltr,
child: _buildReactionsIcon(
'assets/images/png/uiw_like-o.png',
),
),
],
),
],
),
sizedBoxHeight(8.h),
text11w400_FCFCFC('Like')
],
),
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 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 _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,
);
}
}

View File

@@ -57,7 +57,8 @@ class _PostScreenState extends State<PostScreen> {
sizedBoxHeight(25.h),
text16w400_FCFCFC("Media"),
sizedBoxHeight(20.h),
commonGlassContainer(
commonGlassContainer( border: 0.9,
width: double.infinity,
height: 130.h,
borderradius: 10.r,

View File

@@ -0,0 +1,318 @@
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 CommunityDetails extends StatefulWidget {
const CommunityDetails({super.key});
@override
State<CommunityDetails> createState() => _CommunityDetailsState();
}
class _CommunityDetailsState extends State<CommunityDetails> {
@override
Widget build(BuildContext context) {
return Scaffold(
// key: _scaffoldKey1,
backgroundColor: Color(0xFF222935),
extendBody: true,
appBar: CommonAppbar(
titleTxt: "",
customActionWidget: Image.asset(
'assets/images/png/Group 1000004071.png',
height: 22.h,
width: 4.w,
)),
body: Stack(children: [
const CommonBlurLeftRed(),
const CommonBlurRightRed(),
const CommonBlurLeft(),
const CommonBlurRight(),
Positioned.fill(
child: SingleChildScrollView(
child: Column(children: [
Stack(clipBehavior: Clip.none, children: [
SizedBox(
height: 130.h,
width: double.infinity,
child: Image.asset(
"assets/images/png/img1.png",
fit: BoxFit.cover,
),
),
Positioned(
bottom: -35.h,
left: 20.w,
child: Container(
width: 85.r,
height: 85.r,
decoration: BoxDecoration(
shape: BoxShape.circle,
border: Border.all(
color: Color.fromRGBO(255, 255, 255, 0.5),
width: 1,
),
boxShadow: [
BoxShadow(
color: Color.fromRGBO(0, 0, 0, 0.25),
blurRadius: 12,
offset: Offset(0, 6),
),
],
),
child: CircleAvatar(
radius: 42.5.r,
foregroundImage: AssetImage("assets/images/png/img2.png"),
),
))
]),
sizedBoxHeight(40.h),
Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Column(
children: [
Row(
children: [
text20w700_FCFCFC("Active alliance network"),
Spacer(),
commonGlassContainer(
width: 35.w,
height: 35.h,
borderradius: 100,
customWidget: Center(
child: Image.asset(
"assets/images/png/img12.png",
height: 18.w,
width: 18.w,
)),
border: 0.5),
sizedBoxWidth(8.w),
text16w400_FCFCFCblur("Public"),
],
),
sizedBoxHeight(20.h),
commonGlassContainer(
width: double.infinity,
height: 51.h,
borderradius: 10.r,
customWidget: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Row(
children: [
stackContainers(),
sizedBoxWidth(90.w),
text16w400_white('7 members'),
Spacer(),
Icon(
Icons.arrow_forward,
size: 20.sp,
color: Colors.white,
),
sizedBoxWidth(16.w),
],
),
],
),
border: 1.w),
sizedBoxHeight(20.h),
commonGlassContainer(
width: double.infinity,
height: 51.h,
borderradius: 10.r,
customWidget: Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Row(children: [
Image.asset(
"assets/images/png/Black.png",
height: 23.h,
width: 31.w,
),
sizedBoxWidth(15.w),
text16w400white('10 groups'),
Spacer(),
Icon(
Icons.arrow_forward,
size: 20.sp,
color: Colors.white,
),
]),
],
),
),
border: 1),
sizedBoxHeight(20.h),
commonGlassContainer(
width: double.infinity,
height: 51.h,
borderradius: 10.r,
customWidget: Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Row(children: [
Image.asset(
"assets/images/png/marketing 1 (traced).png",
height: 23.h,
width: 31.w,
),
sizedBoxWidth(15.w),
text16w400white('Announcements'),
Spacer(),
Container(
height: 21.h,
width: 43.w,
decoration: BoxDecoration(
color: Color(0xFFD90B2E),
borderRadius: BorderRadius.circular(30.r)),
child: Center(child: text12w400_FCFCFC("11")),
)
]),
],
),
),
border: 1),
sizedBoxHeight(35.h),
Container(
height: 40.h,
width: 200.w,
decoration: BoxDecoration(
color: Color(0xFFD90B2E),
borderRadius: BorderRadius.circular(30.r)),
child:
Center(child: text14w400white("Leave the community")),
),
sizedBoxHeight(50.h),
],
),
),
DefaultTabController(
length: 2,
// initialIndex: selectedIndex.value,
child: Column(
children: [
MyTabBar(),
SizedBox(
height: 600.h,
child: TabBarView(
children: [
poststab(),
eventstab(),
],
),
),
],
),
),
])))
]));
}
Widget poststab() {
return Column(
children: [],
);
}
Widget eventstab() {
return Column(
children: [],
);
}
Widget stackContainers() {
List containerimages = [
{
"imagePath": "assets/images/png/cimg3.png",
},
{
"imagePath": "assets/images/png/cimg2.png",
},
{
"imagePath": "assets/images/png/cimg3.png",
},
{
"imagePath": "assets/images/png/cimg2.png",
},
];
return Row(
children: [
sizedBoxWidth(12.w),
Stack(clipBehavior: Clip.none, children: [
Container(
height: 30.h,
width: 30.w,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: Color(0xFFD90B2E),
border: Border.all(color: Color(0xFF2C3742), width: 1.w)),
child: Center(child: text8w400_white("+2")),
),
Positioned(
left: 20,
child: SizedBox(
height: 20,
width: 50,
child: Stack(
clipBehavior: Clip.none,
children: List.generate(containerimages.length, (index) {
return Positioned(
left: index * 22.w,
child: Container(
height: 30.h,
width: 30.w,
decoration: BoxDecoration(
shape: BoxShape.circle,
border: Border.all(
color: Color(0xFF2C3742), width: 1.w)),
child: CircleAvatar(
foregroundImage:
AssetImage(containerimages[index]["imagePath"]),
)),
);
}),
),
))
]),
],
);
}
}
class MyTabBar extends StatelessWidget {
// Set the desired height
@override
Widget build(BuildContext context) {
return TabBar(
dividerColor: Color(0xFFFFFFFF).withOpacity(0.07),
labelStyle: TextStyle(
fontSize: 14.sp,
color: Color(0xFFFCFCFC),
fontWeight: FontWeight.w400,
fontFamily: 'Helvetica'),
indicatorSize: TabBarIndicatorSize.tab,
indicatorColor: const Color(0xFFD90B2E),
// labelColor: Colors.white,
indicatorWeight: 2.h,
dividerHeight: 2.h,
unselectedLabelColor: Color(0xFFFCFCFC),
overlayColor: MaterialStateProperty.all(const Color(0xFFD90B2E)),
tabs: const [
Tab(
text: 'Posts',
),
Tab(
text: 'Events',
),
]);
}
}

View File

@@ -0,0 +1,283 @@
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/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 MyCommunity extends StatefulWidget {
const MyCommunity({super.key});
@override
State<MyCommunity> createState() => _MyCommunityState();
}
class _MyCommunityState extends State<MyCommunity> {
List JoinedcommunityData = [
{
"imagePath": "assets/images/png/Ellipse 34.png",
"text": "Active alliance network",
},
{
"imagePath": "assets/images/png/Ellipse 35.png",
"text": "FitFam federation"
},
];
List RequestcommunityData = [
{
"imagePath": "assets/images/png/Ellipse 36.png",
"text": "The athletic town",
},
{"imagePath": "assets/images/png/Ellipse 37.png", "text": "Football fever"},
];
@override
Widget build(BuildContext context) {
return Scaffold(
// key: _scaffoldKey1,
backgroundColor: Color(0xFF222935),
extendBody: true,
appBar: CommonAppbar(
titleTxt: "My Community",
customActionWidget: Row(
children: [
Container(
height: 30.h,
width: 30.w,
decoration: BoxDecoration(
color: Color(0xFFD90B2E),
boxShadow: [
BoxShadow(
color: Color(0xFF000000).withOpacity(0.25),
offset: Offset(0, 6),
blurRadius: 8,
),
],
shape: BoxShape.circle),
child: Icon(
Icons.add,
color: Colors.white,
),
),
sizedBoxWidth(12.w),
Image.asset(
"assets/images/png/Frame 9.png",
height: 22.h,
width: 22.w,
)
],
),
),
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: [
text18w700_FCFCFC("Joined communities"),
sizedBoxHeight(15.h),
Column(
children: List.generate(JoinedcommunityData.length,
(index) {
return communityCard(
ontap: () {
Get.toNamed(RouteName.communityDetails);
},
imagepath: JoinedcommunityData[index]
['imagePath'],
title: JoinedcommunityData[index]['text']);
}),
),
text18w700_FCFCFC("Requested communities"),
sizedBoxHeight(20.h),
Column(
children: List.generate(RequestcommunityData.length,
(index) {
return communityCard(
ontap: () {},
imagepath: RequestcommunityData[index]
['imagePath'],
title: RequestcommunityData[index]['text']);
}),
)
]),
)))
]));
}
Widget communityCard({
required String imagepath,
required String title,
required void Function()? ontap,
}) {
return Padding(
padding: EdgeInsets.only(bottom: 25.h),
child: GestureDetector(
onTap: ontap,
child: commonGlassContainer(
border: 0.9,
width: double.infinity,
height: 157.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: 65.h,
width: 65.h,
decoration: BoxDecoration(
shape: BoxShape.circle,
// color: Colors.amber,
),
child: Center(
child: Image.asset(imagepath, fit: BoxFit.cover)),
),
// CircleAvatar(
// foregroundImage: AssetImage(
// imagepath,
// ),
// radius: 32.5.r),
sizedBoxWidth(13.w),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text18w700_FCFCFC(title),
sizedBoxHeight(10.h),
Row(
children: [
commonGlassContainer(
border: 0.9,
width: 30.w,
height: 30.h,
borderradius: 100.r,
customWidget: Center(
child: Image.asset(
"assets/images/png/Black.png",
height: 12.h,
width: 16.w,
),
)),
sizedBoxWidth(15.w),
text14w400_FCFCFCblur("10 groups")
],
),
],
),
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("Mute community"),
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("Hide post"),
Spacer(),
Image.asset(
"assets/images/png/mingcute_eye-close-line.png",
height: 20.h,
width: 20.w,
)
],
),
),
),
PopupMenuDivider(),
PopupMenuItem(
onTap: () {},
child: Padding(
padding:
EdgeInsets.symmetric(horizontal: 8.w),
child: Row(
children: [
text14w400_FCFCFC("Pin"),
Spacer(),
Image.asset(
"assets/images/png/f7_pin-fill (2).png",
height: 25.h,
width: 25.w,
)
],
),
),
),
PopupMenuDivider(),
PopupMenuItem(
onTap: () {},
child: Padding(
padding:
EdgeInsets.symmetric(horizontal: 8.w),
child: Row(
children: [
text14w400_FCFCFC("Leave community"),
Spacer(),
Image.asset(
"assets/images/png/logout 1 (traced).png",
height: 18.h,
width: 18.w,
)
],
),
),
),
],
child: Image.asset(
"assets/images/png/Group 1000004071.png",
height: 13.h,
width: 3.w,
)),
],
),
sizedBoxHeight(16.h),
commonDivider(),
],
),
)),
),
);
}
}

View File

@@ -148,7 +148,11 @@ class _SideMenuState extends State<SideMenu> {
children: [
text16w400_FCFCFC("Communities"),
Spacer(),
text14w400_FCFCFC("View all"),
GestureDetector(
onTap: () {
Get.toNamed(RouteName.mycommunity);
},
child: text14w400_FCFCFC("View all")),
],
),
),
@@ -212,6 +216,8 @@ class _SideMenuState extends State<SideMenu> {
}) {
return ListTile(
leading: commonGlassContainer(
border: 0.9,
width: 29.w,
height: 29.h,
borderradius: 100,

View File

@@ -106,6 +106,7 @@ class CommonAppbar extends StatelessWidget implements PreferredSizeWidget {
children: [
sizedBoxWidth(10.w),
commonGlassContainer(
border: 0.9,
width: 40.w,
height: 40.h,
borderradius: 100,

View File

@@ -94,6 +94,30 @@ Widget text16400Black(String text, {TextAlign? textAlign}) {
),
);
}
Widget text16w400white(String text, {TextAlign? textAlign}) {
return Text(
text,
textAlign: textAlign,
style: TextStyle(
fontSize: 16.sp,
fontFamily: 'Helvetica',
fontWeight: FontWeight.w400,
color: AppColors.white,
),
);
}
Widget text14w400white(String text, {TextAlign? textAlign}) {
return Text(
text,
textAlign: textAlign,
style: TextStyle(
fontSize: 14.sp,
fontFamily: 'Helvetica',
fontWeight: FontWeight.w400,
color: AppColors.white,
),
);
}
Widget text20White(String text, {TextAlign? textAlign}) {
return Text(
@@ -142,6 +166,28 @@ Widget text16w400_FCFCFC(String text) {
);
}
Widget text16w400_white(String text) {
return Text(
text,
style: TextStyle(
fontSize: 16.sp,
color: Colors.white,
fontFamily: 'Helvetica',
fontWeight: FontWeight.w400),
);
}
Widget text16w400_FCFCFCblur(String text) {
return Text(
text,
style: TextStyle(
fontSize: 16.sp,
color: Color(0xFFFCFCFC).withOpacity(0.8),
fontFamily: 'Helvetica',
fontWeight: FontWeight.w400),
);
}
Widget text12w400_FCFCFC(String text) {
return Text(
text,
@@ -153,6 +199,39 @@ Widget text12w400_FCFCFC(String text) {
);
}
Widget text20w700_FCFCFC(String text) {
return Text(
text,
style: TextStyle(
fontSize: 20.sp,
color: Color(0xFFFCFCFC),
fontFamily: 'Helvetica',
fontWeight: FontWeight.w700),
);
}
Widget text12w400_FCFCFC_blur(String text) {
return Text(
text,
style: TextStyle(
fontSize: 12.sp,
color: Color(0xFFFCFCFC).withOpacity(0.8),
fontFamily: 'Helvetica',
fontWeight: FontWeight.w400),
);
}
Widget text10w400_FCFCFC_blur(String text) {
return Text(
text,
style: TextStyle(
fontSize: 10.sp,
color: Color(0xFFFCFCFC).withOpacity(0.8),
fontFamily: 'Helvetica',
fontWeight: FontWeight.w400),
);
}
Widget text11w400_FCFCFC(String text) {
return Text(
text,
@@ -175,6 +254,17 @@ Widget text18w400_FCFCFC(String text) {
);
}
Widget text18w700_FCFCFC(String text) {
return Text(
text,
style: TextStyle(
fontSize: 18.sp,
color: Color(0xFFFCFCFC),
fontFamily: 'Helvetica',
fontWeight: FontWeight.w700),
);
}
Widget text14w400_FCFCFC(String text) {
return Text(
text,
@@ -186,6 +276,17 @@ Widget text14w400_FCFCFC(String text) {
);
}
Widget text14w400_FCFCFCblur(String text) {
return Text(
text,
style: TextStyle(
fontSize: 14.sp,
color: Color(0xFFFCFCFC).withOpacity(0.8),
fontFamily: 'Helvetica',
fontWeight: FontWeight.w400),
);
}
Widget text8w400_8A8A8A(String text) {
return Text(
text,
@@ -196,3 +297,14 @@ Widget text8w400_8A8A8A(String text) {
fontWeight: FontWeight.w400),
);
}
Widget text8w400_white(String text) {
return Text(
text,
style: TextStyle(
fontSize: 8.sp,
color: Colors.white,
fontFamily: 'Helvetica',
fontWeight: FontWeight.w400),
);
}

View File

@@ -10,6 +10,10 @@ class RouteName {
static const String cyclescreen = '/cyclescreen';
static const String postscreen = '/postscreen';
static const String postdetailsScreen = '/postdetailsScreen';
static const String mycommunity = '/mycommunity';
static const String communityDetails = '/communityDetails';

View File

@@ -4,6 +4,8 @@ import 'package:regroup/Feed%20Module/Main_Screens/Community/Community.dart';
import 'package:regroup/Feed%20Module/Main_Screens/Community/CycleScreen.dart';
import 'package:regroup/Feed%20Module/Main_Screens/Community/PostDetailScreen/View/PostDetailScreen.dart';
import 'package:regroup/Feed%20Module/Main_Screens/Community/PostScreen.dart';
import 'package:regroup/Feed%20Module/sidemenu/MyCommunity/View/CommunityDetails.dart';
import 'package:regroup/Feed%20Module/sidemenu/MyCommunity/View/MyCommunity.dart';
import 'package:regroup/Feed%20Module/sidemenu/SavedPosts/SavedPosts.dart';
import 'package:regroup/Feed%20Module/sidemenu/sidemenu.dart';
import 'package:regroup/Utils/Common/NoInternet.dart';
@@ -49,9 +51,17 @@ class AppRoutes {
name: RouteName.postscreen,
page: () => const PostScreen(),
),
GetPage(
GetPage(
name: RouteName.postdetailsScreen,
page: () => const PostDetailsScreen(),
),
GetPage(
name: RouteName.mycommunity,
page: () => const MyCommunity(),
),
GetPage(
name: RouteName.communityDetails,
page: () => const CommunityDetails(),
),
];
}