diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..3ebdbc0 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "CodeGPT.apiKey": "CodeGPT Plus Beta" +} \ No newline at end of file diff --git a/assets/images/png/BottomBar/ActiveCal.png b/assets/images/png/BottomBar/ActiveCal.png new file mode 100644 index 0000000..f316bfa Binary files /dev/null and b/assets/images/png/BottomBar/ActiveCal.png differ diff --git a/assets/images/png/BottomBar/ActiveChat.png b/assets/images/png/BottomBar/ActiveChat.png new file mode 100644 index 0000000..15df104 Binary files /dev/null and b/assets/images/png/BottomBar/ActiveChat.png differ diff --git a/assets/images/png/BottomBar/activeGroup.png b/assets/images/png/BottomBar/activeGroup.png new file mode 100644 index 0000000..9332abd Binary files /dev/null and b/assets/images/png/BottomBar/activeGroup.png differ diff --git a/assets/images/png/BottomBar/inactiveHome.png b/assets/images/png/BottomBar/inactiveHome.png new file mode 100644 index 0000000..0137535 Binary files /dev/null and b/assets/images/png/BottomBar/inactiveHome.png differ diff --git a/assets/images/png/Ellipse 37.png b/assets/images/png/Ellipse 37.png new file mode 100644 index 0000000..511e200 Binary files /dev/null and b/assets/images/png/Ellipse 37.png differ diff --git a/assets/images/png/bi_filter.png b/assets/images/png/bi_filter.png new file mode 100644 index 0000000..b26a62c Binary files /dev/null and b/assets/images/png/bi_filter.png differ diff --git a/assets/images/png/calender.png b/assets/images/png/calender.png new file mode 100644 index 0000000..1e1412d Binary files /dev/null and b/assets/images/png/calender.png differ diff --git a/assets/images/png/cameraicon.png b/assets/images/png/cameraicon.png new file mode 100644 index 0000000..f685a8e Binary files /dev/null and b/assets/images/png/cameraicon.png differ diff --git a/assets/images/png/cameraicon2.png b/assets/images/png/cameraicon2.png new file mode 100644 index 0000000..107240d Binary files /dev/null and b/assets/images/png/cameraicon2.png differ diff --git a/assets/images/png/cancelicon.png b/assets/images/png/cancelicon.png new file mode 100644 index 0000000..91a13b7 Binary files /dev/null and b/assets/images/png/cancelicon.png differ diff --git a/assets/images/png/clock.png b/assets/images/png/clock.png index 6126b67..2fb0f45 100644 Binary files a/assets/images/png/clock.png and b/assets/images/png/clock.png differ diff --git a/assets/images/png/ph_arrow-up-thin.png b/assets/images/png/ph_arrow-up-thin.png new file mode 100644 index 0000000..257a823 Binary files /dev/null and b/assets/images/png/ph_arrow-up-thin.png differ diff --git a/lib/Common/CommonBottomNavigationBar.dart b/lib/Common/CommonBottomNavigationBar.dart index 598eaf3..7245ecc 100644 --- a/lib/Common/CommonBottomNavigationBar.dart +++ b/lib/Common/CommonBottomNavigationBar.dart @@ -54,7 +54,7 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) { items: [ BottomNavigationBarItem( icon: Image.asset( - 'assets/images/png/BottomBar/ActiveHome.png', + 'assets/images/png/BottomBar/inactiveHome.png', height: 26.h, width: 26.w, ), @@ -154,7 +154,7 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) { bottom: 0, child: Center( child: Image.asset( - 'assets/images/png/BottomBar/inactiveGroup.png', + 'assets/images/png/BottomBar/activeGroup.png', height: 30.h, width: 30.w, ), @@ -208,7 +208,7 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) { bottom: 0, child: Center( child: Image.asset( - 'assets/images/png/BottomBar/inactiveCal.png', + 'assets/images/png/BottomBar/ActiveCal.png', height: 28.h, width: 28.w, ), @@ -262,7 +262,7 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) { bottom: 0, child: Center( child: Image.asset( - 'assets/images/png/BottomBar/inactiveChat.png', + 'assets/images/png/BottomBar/ActiveChat.png', height: 28.h, width: 28.w, ), diff --git a/lib/Common/CommonDropDown.dart b/lib/Common/CommonDropDown.dart index b171bb6..5eb02c8 100644 --- a/lib/Common/CommonDropDown.dart +++ b/lib/Common/CommonDropDown.dart @@ -179,19 +179,14 @@ class CommonDropdownradioBtn extends StatefulWidget { const CommonDropdownradioBtn({ required this.hint, required this.items, - this.isEnabled = true, - this.islocation = false, this.textcolor = false, this.onItemSelected, - bool showAddButton = false, super.key, }); final String hint; final List? items; final void Function(String)? onItemSelected; - final bool isEnabled; - final bool islocation; final bool textcolor; @override @@ -203,161 +198,147 @@ class _CommonDropdownradioBtnState extends State { @override Widget build(BuildContext context) { return DropdownButtonHideUnderline( - child: Row( - children: [ - widget.islocation - ? Padding( - padding: EdgeInsets.only(left: 4.w), - child: SvgPicture.asset("assets/svg/location.svg"), - ) - : SizedBox(), - Expanded( - child: DropdownButton2( - isExpanded: true, - hint: Obx(() { - return Row( - children: [ - Expanded( - child: Text( - selectedValue.isEmpty - ? widget.hint - : selectedValue.value, + child: DropdownButton2( + isExpanded: true, + hint: Obx(() { + return Row( + children: [ + Expanded( + child: Text( + selectedValue.isEmpty ? widget.hint : selectedValue.value, + style: TextStyle( + fontSize: 12.sp, + fontFamily: 'hiragino', + color: Colors.white, + fontWeight: FontWeight.w500, + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ); + }), + items: widget.items!.asMap().entries.map((entry) { + int index = entry.key; + String item = entry.value; + return DropdownMenuItem( + value: item, + child: Column( + children: [ + InkWell( + onTap: () { + selectedValue.value = item; + if (widget.onItemSelected != null) { + widget.onItemSelected!(item); + } + }, + child: Row( + children: [ + Obx(() { + return Radio( + value: item, + activeColor: Colors.white, + groupValue: selectedValue.value, + onChanged: (value) { + selectedValue.value = value!; + if (widget.onItemSelected != null) { + widget.onItemSelected!(value); + } + }, + ); + }), + SizedBox(width: 8.w), + Text( + item, style: TextStyle( - fontSize: 12.sp, - fontFamily: 'hiragino', color: Colors.white, + fontSize: 16.sp, + fontFamily: 'hiragino', fontWeight: FontWeight.w500, ), overflow: TextOverflow.ellipsis, ), - ), - ], - ); - }), - items: widget.items!.asMap().entries.map((entry) { - int index = entry.key; - String item = entry.value; - return DropdownMenuItem( - value: item, - child: Column( - children: [ - InkWell( - onTap: () { - selectedValue.value = item; - if (widget.onItemSelected != null) { - widget.onItemSelected!(item); - } - }, - child: Row( - children: [ - Obx(() { - return Radio( - value: item, - activeColor: Colors.white, - groupValue: selectedValue.value, - onChanged: (value) { - selectedValue.value = value!; - if (widget.onItemSelected != null) { - widget.onItemSelected!(value); - } - }, - ); - }), - SizedBox(width: 8.w), - Text( - item, - style: TextStyle( - color: Colors.white, - fontSize: 16.sp, - fontFamily: 'hiragino', - fontWeight: FontWeight.w500, - ), - overflow: TextOverflow.ellipsis, - ), - ], - ), - ), - if (index != widget.items!.length - 1) commonDivider(), ], ), - ); - }).toList(), - value: null, - onChanged: (value) {}, - selectedItemBuilder: (BuildContext context) { - return widget.items!.map((item) { - return Row( - children: [ - Expanded( - child: Obx(() { - return Text( - selectedValue.value, - style: TextStyle( - color: Colors.white, - fontSize: 16.sp, - fontFamily: 'hiragino', - fontWeight: FontWeight.w500, - ), - overflow: TextOverflow.ellipsis, - ); - }), - ), - ], - ); - }).toList(); - }, - buttonStyleData: ButtonStyleData( - height: 50.h, - width: double.infinity, - padding: EdgeInsets.only(left: 12.w, right: 4.w), - decoration: BoxDecoration( - gradient: LinearGradient( - begin: Alignment.topLeft, - end: Alignment.bottomRight, - colors: [ - Color(0xFFffffff).withOpacity(0.8), - Color(0xFFFFFFFF).withOpacity(0.8), - ], - stops: [0.1, 1], - ), - borderRadius: BorderRadius.circular(30.r), - border: Border.all( - color: Color(0xff434A53), - ), - color: Color(0xFFFFFFFF).withOpacity(0.05), ), - elevation: 0, - ), - iconStyleData: IconStyleData( - icon: Icon( - Icons.keyboard_arrow_down, - ), - iconSize: 23.sp, - iconEnabledColor: Color(0xFFFFFFFF), - iconDisabledColor: Color(0xFFFFFFFF), - ), - dropdownStyleData: DropdownStyleData( - maxHeight: 200, - width: 400, - padding: null, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(30), - color: Color(0xFF222935), - ), - elevation: 0, - scrollbarTheme: ScrollbarThemeData( - radius: const Radius.circular(40), - thickness: MaterialStateProperty.all(6), - thumbVisibility: MaterialStateProperty.all(true), - ), - ), - menuItemStyleData: const MenuItemStyleData( - height: 50, - padding: EdgeInsets.only(left: 14, right: 14), - ), + if (index != widget.items!.length - 1) commonDivider(), + ], ), + ); + }).toList(), + value: null, + onChanged: (value) {}, + selectedItemBuilder: (BuildContext context) { + return widget.items!.map((item) { + return Row( + children: [ + Expanded( + child: Obx(() { + return Text( + selectedValue.value, + style: TextStyle( + color: Colors.white, + fontSize: 16.sp, + fontFamily: 'hiragino', + fontWeight: FontWeight.w500, + ), + overflow: TextOverflow.ellipsis, + ); + }), + ), + ], + ); + }).toList(); + }, + buttonStyleData: ButtonStyleData( + height: 50.h, + width: double.infinity, + padding: EdgeInsets.only(left: 12.w, right: 4.w), + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [ + Color(0xFFffffff).withOpacity(0.8), + Color(0xFFFFFFFF).withOpacity(0.8), + ], + stops: [0.1, 1], + ), + borderRadius: BorderRadius.circular(30.r), + border: Border.all( + color: Color(0xff434A53), + ), + color: Color(0xFFFFFFFF).withOpacity(0.05), ), - ], + elevation: 0, + ), + iconStyleData: IconStyleData( + icon: Icon( + Icons.keyboard_arrow_down, + ), + iconSize: 23.sp, + iconEnabledColor: Color(0xFFFFFFFF), + iconDisabledColor: Color(0xFFFFFFFF), + ), + dropdownStyleData: DropdownStyleData( + maxHeight: 200, + width: 400, + padding: null, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(30), + color: Color(0xFF222935), + ), + elevation: 0, + scrollbarTheme: ScrollbarThemeData( + radius: const Radius.circular(40), + thickness: MaterialStateProperty.all(6), + thumbVisibility: MaterialStateProperty.all(true), + ), + ), + menuItemStyleData: const MenuItemStyleData( + height: 50, + padding: EdgeInsets.only(left: 14, right: 14), + ), ), ); } diff --git a/lib/Common/CommonGlassmorphism.dart b/lib/Common/CommonGlassmorphism.dart index d1be50c..1eecf2c 100644 --- a/lib/Common/CommonGlassmorphism.dart +++ b/lib/Common/CommonGlassmorphism.dart @@ -1,13 +1,15 @@ import 'package:flutter/material.dart'; import 'package:glassmorphism/glassmorphism.dart'; -Widget commonGlassContainer( - {required double width, - required double height, - required double borderradius, - required Widget customWidget, - required double border - }) { +Widget commonGlassContainer({ + required double width, + required double height, + required double borderradius, + required Widget customWidget, + required double border, + double opacity1 = 0.04, + double opacity2 = 0.05, +}) { return GlassmorphicContainer( width: width, height: height, @@ -19,8 +21,8 @@ Widget commonGlassContainer( begin: Alignment.topLeft, end: Alignment.bottomRight, colors: [ - Color(0xFFFFFFFF).withOpacity(0.04), - const Color(0xFFFFFFFF).withOpacity(0.05), + Color(0xFFFFFFFF).withOpacity(opacity1), + const Color(0xFFFFFFFF).withOpacity(opacity2), ], stops: const [ 0.1, @@ -37,3 +39,43 @@ Widget commonGlassContainer( ), child: customWidget); } + +// Widget commonGlassContainerOpacity( +// {required double width, +// required double height, +// required double borderradius, +// required Widget customWidget, +// required double border, +// double opacity1, +// double opacity2, +// }) { +// return GlassmorphicContainer( +// width: width, +// height: height, +// borderRadius: borderradius, +// blur: 10, +// alignment: Alignment.topCenter, +// border: border, +// linearGradient: LinearGradient( +// begin: Alignment.topLeft, +// end: Alignment.bottomRight, +// colors: [ +// Color(0xFFFFFFFF).withOpacity(opacity1), +// const Color(0xFFFFFFFF).withOpacity(opacity2), +// ], +// stops: const [ +// 0.1, +// 1, +// ], +// ), +// borderGradient: LinearGradient( +// begin: Alignment.topLeft, +// end: Alignment.bottomRight, +// colors: [ +// Color(0xff434A53), +// Color(0xFF434A53), +// ], +// ), +// child: customWidget); +// } + diff --git a/lib/Common/CommonTabBar.dart b/lib/Common/CommonTabBar.dart new file mode 100644 index 0000000..b5b8751 --- /dev/null +++ b/lib/Common/CommonTabBar.dart @@ -0,0 +1,28 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; + +class CommonTabBar extends StatelessWidget { + // Set the desired height + + final List tabs; + CommonTabBar({required this.tabs,}); + + @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: tabs); + } +} \ No newline at end of file diff --git a/lib/Common/CommonWidget.dart b/lib/Common/CommonWidget.dart index 690620c..598c2b4 100644 --- a/lib/Common/CommonWidget.dart +++ b/lib/Common/CommonWidget.dart @@ -137,12 +137,10 @@ Widget commonDivider() { ); } - String extractFileName(String filePath) { return path.basename(filePath); } - Widget stackContainers({ required String number, required List containerImages, @@ -222,6 +220,8 @@ Widget stackReaction({ width: 30.w, height: 30.h, borderradius: 100, + opacity1: 0.05, + opacity2: 0.06, customWidget: Center( child: Image.asset( containerImages[index], diff --git a/lib/Feed Module/Main_Screens/Community/Community.dart b/lib/Feed Module/Main_Screens/Community/Community.dart index 8b868c3..a4a9bd7 100644 --- a/lib/Feed Module/Main_Screens/Community/Community.dart +++ b/lib/Feed Module/Main_Screens/Community/Community.dart @@ -4,6 +4,7 @@ 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/CommonTabBar.dart'; import 'package:regroup/Common/CommonWidget.dart'; import 'package:regroup/Common/controller/MainScreen.dart'; import 'package:regroup/Feed%20Module/sidemenu/sidemenu.dart'; @@ -89,7 +90,17 @@ class _CommunityScreenState extends State { // initialIndex: selectedIndex.value, child: Column( children: [ - MyTabBar(), + CommonTabBar(tabs: const [ + Tab( + text: 'Feed', + ), + Tab( + text: 'Popular', + ), + Tab( + text: 'Latest', + ), + ]), SizedBox( height: 600.h, child: TabBarView( @@ -371,9 +382,11 @@ Widget normalcardtile({ ]), Spacer(), commonGlassContainer( - border: 0.9, + border: 0.43, width: 30.w, height: 30.h, + opacity1: 0.05, + opacity2: 0.06, borderradius: 100, customWidget: Center( child: ReactionButton( @@ -398,10 +411,12 @@ Widget normalcardtile({ text14w400_FCFCFC('20'), sizedBoxWidth(20.w), commonGlassContainer( - border: 0.9, + border: 0.43, width: 30.w, height: 30.h, borderradius: 100, + opacity1: 0.05, + opacity2: 0.06, customWidget: Center( child: ReactionButton( itemSize: Size.fromHeight(20), @@ -631,36 +646,3 @@ Widget latestTab() { children: [], ); } - -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: 'Feed', - ), - Tab( - text: 'Popular', - ), - Tab( - text: 'Latest', - ), - ]); - } -} diff --git a/lib/Feed Module/Main_Screens/Community/CycleScreen.dart b/lib/Feed Module/Main_Screens/Community/CycleScreen.dart index 662f56a..bd26b0b 100644 --- a/lib/Feed Module/Main_Screens/Community/CycleScreen.dart +++ b/lib/Feed Module/Main_Screens/Community/CycleScreen.dart @@ -3,6 +3,7 @@ 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/CommonTabBar.dart'; import 'package:regroup/Common/CommonWidget.dart'; import 'package:regroup/Feed%20Module/Main_Screens/Community/Community.dart'; import 'package:regroup/Utils/Common/CommonAppbar.dart'; @@ -44,7 +45,14 @@ class _CycleScreenState extends State { // initialIndex: selectedIndex.value, child: Column( children: [ - CycleTabBar(), + CommonTabBar(tabs: const [ + Tab( + text: 'Popular', + ), + Tab( + text: 'Latest', + ), + ]), SizedBox( height: 670.h, child: TabBarView( @@ -484,33 +492,3 @@ Widget _buildReactionsIcon(String assetPath) { width: 19.w, ); } - -class CycleTabBar 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: 'Popular', - ), - Tab( - text: 'Latest', - ), - ]); - } -} diff --git a/lib/Feed Module/Main_Screens/Community/PostScreen.dart b/lib/Feed Module/Main_Screens/Community/PostScreen.dart index 32a1d80..866b728 100644 --- a/lib/Feed Module/Main_Screens/Community/PostScreen.dart +++ b/lib/Feed Module/Main_Screens/Community/PostScreen.dart @@ -61,7 +61,7 @@ class _PostScreenState extends State { sizedBoxHeight(25.h), text16w400_FCFCFC("Media"), sizedBoxHeight(18.h), - commonGlassContainer( + commonGlassContainer( border: 0.9, width: double.infinity, height: 130.h, diff --git a/lib/Feed Module/sidemenu/Community/Admin/PopupItem/Community settings/CommunitySetting.dart b/lib/Feed Module/sidemenu/Community/Admin/PopupItem/Community settings/CommunitySetting.dart index 772a054..de84138 100644 --- a/lib/Feed Module/sidemenu/Community/Admin/PopupItem/Community settings/CommunitySetting.dart +++ b/lib/Feed Module/sidemenu/Community/Admin/PopupItem/Community settings/CommunitySetting.dart @@ -1,10 +1,12 @@ 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 CommunitySetting extends StatefulWidget { const CommunitySetting({super.key}); @@ -30,24 +32,30 @@ class _CommunitySettingState extends State { const CommonBlurRight(), Positioned.fill( child: Column(children: [ - sizedBoxHeight(40.h), + sizedBoxHeight(30.h), GestureDetector( - onTap: () { - - }, - child: rowTile(text: 'Edit community info')), - sizedBoxHeight(20.h), + onTap: () { + Get.toNamed(RouteName.editcommunity); + }, + child: rowTile(text: 'Edit community info')), commonDivider(), - sizedBoxHeight(20.h), - rowTile(text: 'Manage members'), - sizedBoxHeight(20.h), + GestureDetector( + onTap: () { + Get.toNamed(RouteName.managemembers); + }, + child: rowTile(text: 'Manage members')), commonDivider(), - sizedBoxHeight(20.h), - rowTile(text: 'Manage groups'), - sizedBoxHeight(20.h), + GestureDetector( + onTap: () { + Get.toNamed(RouteName.managegroups); + }, + child: rowTile(text: 'Manage groups')), commonDivider(), - sizedBoxHeight(20.h), - rowTile(text: 'Manage tags'), + GestureDetector( + onTap: () { + Get.toNamed(RouteName.managetags); + }, + child: rowTile(text: 'Manage tags')), sizedBoxHeight(20.h), ])) ])); @@ -57,7 +65,7 @@ class _CommunitySettingState extends State { required String text, }) { return Padding( - padding: EdgeInsets.symmetric(horizontal: 16.w), + padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 20.h), child: Row(children: [ text18w400_FCFCFC(text), Spacer(), diff --git a/lib/Feed Module/sidemenu/Community/Admin/PopupItem/Community settings/EditCommunity/EditCommunity.dart b/lib/Feed Module/sidemenu/Community/Admin/PopupItem/Community settings/EditCommunity/EditCommunity.dart index 2bf93da..69baf84 100644 --- a/lib/Feed Module/sidemenu/Community/Admin/PopupItem/Community settings/EditCommunity/EditCommunity.dart +++ b/lib/Feed Module/sidemenu/Community/Admin/PopupItem/Community settings/EditCommunity/EditCommunity.dart @@ -1,8 +1,13 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.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/CustomNextButton.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/Utils/Common/CustomTextformfield.dart'; class EditCommunity extends StatefulWidget { const EditCommunity({super.key}); @@ -12,6 +17,17 @@ class EditCommunity extends StatefulWidget { } class _EditCommunityState extends State { + TextEditingController communitynameController = TextEditingController(); + TextEditingController descriptionController = TextEditingController(); + + @override + void initState() { + communitynameController.text = 'Active alliance network'; + descriptionController.text = + "Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer ."; + super.initState(); + } + @override Widget build(BuildContext context) { return Scaffold( @@ -19,7 +35,7 @@ class _EditCommunityState extends State { backgroundColor: Color(0xFF222935), extendBody: true, appBar: CommonAppbar( - titleTxt: "Community settings", + titleTxt: "Edit community info", ), body: Stack(children: [ const CommonBlurLeftRed(), @@ -27,7 +43,157 @@ class _EditCommunityState extends State { const CommonBlurLeft(), const CommonBlurRight(), Positioned.fill( - child: Column(children: [ - sizedBoxHeight(40.h),]))])); + child: SingleChildScrollView( + child: Column(children: [ + sizedBoxHeight(30.h), + Stack( + clipBehavior: Clip.none, + children: [ + Container( + height: 100.h, + width: 100.w, + decoration: BoxDecoration( + shape: BoxShape.circle, + border: + Border.all(color: Color(0xFF434A53), width: 0.5.w), + ), + child: Center( + child: Image.asset('assets/images/png/Ellipse 37.png', + fit: BoxFit.cover), + ), + ), + Positioned( + right: -10, + bottom: 0, + child: Container( + height: 35.h, + width: 35.w, + decoration: BoxDecoration( + color: Color(0xFFD90B2E), + shape: BoxShape.circle, + border: Border.all( + color: Color(0xFFD90B2E), width: 0.5.w)), + child: Center( + child: Image.asset( + 'assets/images/png/cameraicon.png', + height: 14.h, + width: 15.w, + ), + ), + )) + ], + ), + sizedBoxHeight(25.h), + text16w400_white("Edit community profile picture"), + sizedBoxHeight(30.h), + Padding( + padding: EdgeInsets.symmetric(horizontal: 16.w), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + text16w400_FCFCFC("Community banner image"), + sizedBoxHeight(16.h), + commonGlassContainer( + border: 0.9, + width: double.infinity, + height: 150.h, + borderradius: 10.r, + customWidget: Padding( + padding: EdgeInsets.symmetric(vertical: 16.h), + child: Column( + children: [ + Image.asset( + "assets/images/png/cameraicon2.png", + height: 36.h, + width: 36.w, + ), + sizedBoxHeight(10.h), + text14w400white('Upload banner image'), + sizedBoxHeight(8.h), + SizedBox( + width: 270.w, + child: text10w400_whiteCenter( + "Lorem Ipsum has been the industry's standard dummy text ever since the 1500s"), + ), + ], + ), + ), + ), + sizedBoxHeight(16.w), + commonGlassContainer( + width: double.infinity, + height: 60.h, + borderradius: 10.r, + customWidget: Center( + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 12.w), + child: Row(children: [ + Container( + height: 40.h, + width: 40.w, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(5.r)), + child: Image.asset( + "assets/images/png/img2.png", + fit: BoxFit.cover, + ), + ), + sizedBoxWidth(8.w), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + text14400white("group1.png"), + sizedBoxHeight(2.h), + text12w400_FCFCFC_blur("10 kb") + ], + ), + Spacer(), + Image.asset( + 'assets/images/png/cancelicon.png', + height: 20.h, + width: 20.w, + ) + ]), + ), + ), + border: 1), + sizedBoxHeight(25.h), + text16w400_FCFCFC("Community name"), + sizedBoxHeight(14.h), + CustomTextFormField( + textEditingController: communitynameController, + ), + text16w400_FCFCFC("Group description"), + sizedBoxHeight(14.h), + CustomTextFormField2( + maxlines: 3, + textEditingController: descriptionController, + ), + text16w400_FCFCFC("Type of community"), + sizedBoxHeight(14.h), + CommonDropdownradioBtn( + hint: '', + items: ["Public", "Private - Request to join"]), + sizedBoxHeight(25.h), + text16w400_FCFCFC("Location*"), + sizedBoxHeight(14.h), + CommonDropdownradioBtn( + hint: '', + items: ["Public", "Private - Request to join"]), + sizedBoxHeight(25.h), + text16w400_FCFCFC("Primary activity*"), + sizedBoxHeight(14.h), + CommonDropdownradioBtn( + hint: '', items: ["Sports", "Hobby"]), + sizedBoxHeight(50.h), + CustomButton(text: 'Save changes', onPressed: () {}), + sizedBoxHeight(50.h), + ], + ), + ) + ]), + )) + ])); } -} \ No newline at end of file +} diff --git a/lib/Feed Module/sidemenu/Community/Admin/PopupItem/Community settings/ManageGroup.dart b/lib/Feed Module/sidemenu/Community/Admin/PopupItem/Community settings/ManageGroup.dart new file mode 100644 index 0000000..16bbe17 --- /dev/null +++ b/lib/Feed Module/sidemenu/Community/Admin/PopupItem/Community settings/ManageGroup.dart @@ -0,0 +1,194 @@ +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/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 ManageGroups extends StatefulWidget { + const ManageGroups({super.key}); + + @override + State createState() => _ManageGroupsState(); +} + +class _ManageGroupsState extends State { + List groupData = [ + { + "imagePath": "assets/images/png/img45.png", + "title": "Iron titans fitness crew", + "subtitle": "Lorem ipsum dummy text", + }, + { + "imagePath": "assets/images/png/Rectangle 25.png", + "title": "Body blitz brigade", + "subtitle": "Lorem ipsum dummy text", + }, + { + "imagePath": "assets/images/png/img2.png", + "title": "Fit fusion squad", + "subtitle": "Lorem ipsum dummy text", + }, + { + "imagePath": "assets/images/png/img2.png", + "title": "Power pulse posse", + "subtitle": "Lorem ipsum dummy text", + }, + { + "imagePath": "assets/images/png/img2.png", + "title": "Wellness warriors collective", + "subtitle": "Lorem ipsum dummy text", + }, + ]; + + @override + Widget build(BuildContext context) { + return Scaffold( + // key: _scaffoldKey1, + backgroundColor: Color(0xFF222935), + extendBody: true, + appBar: CommonAppbar( + titleTxt: "Manage groups", + ), + body: Stack(children: [ + const CommonBlurLeftRed(), + const CommonBlurRightRed(), + const CommonBlurLeft(), + const CommonBlurRight(), + Positioned.fill( + child: SingleChildScrollView( + child: Column(children: [ + Padding( + padding: EdgeInsets.symmetric(horizontal: 16.w), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + sizedBoxHeight(20.h), + 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 groups", + ), + sizedBoxHeight(25.h), + Row( + children: [ + commonGlassContainer( + opacity1: 0.24, + opacity2: 0.24, + width: 50.w, + height: 50.h, + borderradius: 100, + customWidget: Center( + child: Image.asset( + "assets/images/png/Black.png", + height: 30.h, + width: 30.w, + )), + border: 0.5), + sizedBoxWidth(8.w), + text18w400_FCFCFC("Create group"), + Spacer(), + Icon( + Icons.arrow_forward_ios_outlined, + color: Colors.white, + size: 14.sp, + ), + ], + ), + sizedBoxHeight(25.h), + Row( + children: [ + commonGlassContainer( + opacity1: 0.24, + opacity2: 0.24, + width: 50.w, + height: 50.h, + borderradius: 100, + customWidget: Center( + child: Icon( + Icons.add, + color: Colors.white, + weight: 1.4.w, + size: 25.sp, + )), + border: 0.5), + sizedBoxWidth(8.w), + text18w400_FCFCFC("Add existing groups"), + Spacer(), + Icon( + Icons.arrow_forward_ios_outlined, + color: Colors.white, + size: 14.sp, + ), + ], + ), + sizedBoxHeight(30.h), + text18w700white("Groups"), + sizedBoxHeight(20.h), + ]), + ), + ListView.builder( + shrinkWrap: true, + itemCount: groupData.length, + itemBuilder: (context, index) { + return Column( + children: [ + groupWidget( + imagePath: groupData[index]["imagePath"], + title: groupData[index]["title"], + subtitle: groupData[index]["subtitle"]), + commonDivider(), + ], + ); + }, + ) + ]), + )) + ])); + } +} + +Widget groupWidget({ + 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: 20.r, + ), + sizedBoxWidth(10.w), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + text16w400_FCFCFC(title), + sizedBoxHeight(4.h), + text12w400_FCFCFC_blur(subtitle) + ], + ), + Spacer(), + Icon( + Icons.clear, + color: Color(0xFFFFFFFF), + weight: 1.88, + ) + ], + ), + ); +} diff --git a/lib/Feed Module/sidemenu/Community/Admin/PopupItem/Community settings/ManageTags.dart/ManageTags.dart b/lib/Feed Module/sidemenu/Community/Admin/PopupItem/Community settings/ManageTags.dart/ManageTags.dart new file mode 100644 index 0000000..6c0f67d --- /dev/null +++ b/lib/Feed Module/sidemenu/Community/Admin/PopupItem/Community settings/ManageTags.dart/ManageTags.dart @@ -0,0 +1,226 @@ +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/CommonTabBar.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 ManageTags extends StatefulWidget { + const ManageTags({super.key}); + + @override + State createState() => _ManageTagsState(); +} + +class _ManageTagsState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + // key: _scaffoldKey1, + backgroundColor: Color(0xFF222935), + extendBody: true, + appBar: CommonAppbar( + titleTxt: "Manage tags", + ), + body: Stack(children: [ + const CommonBlurLeftRed(), + const CommonBlurRightRed(), + const CommonBlurLeft(), + const CommonBlurRight(), + Positioned.fill( + child: SingleChildScrollView( + child: Column(children: [ + sizedBoxHeight(20.h), + DefaultTabController( + length: 2, + // initialIndex: selectedIndex.value, + child: Column(children: [ + CommonTabBar(tabs: const [ + Tab( + text: 'Tags', + ), + Tab( + text: 'Tag requests', + ), + ]), + SizedBox( + height: 600.h, + child: TabBarView( + children: [ + tagsTab(), + tagrequestsrTab(), + ], + ), + ), + ])) + ]))) + ]), + floatingActionButtonLocation: CustomFloatingActionButtonLocation(60.0), + floatingActionButton: Container( + height: 55.h, + width: 55.w, + decoration: BoxDecoration( + shape: BoxShape.circle, + boxShadow: [ + BoxShadow( + color: Color(0x40000000), // Hex color with 40% opacity + offset: Offset(0, 6), + blurRadius: 8, + ), + ], + ), + child: FloatingActionButton( + onPressed: () { + Get.toNamed(RouteName.newtag); + }, + backgroundColor: Color(0xFFD90B2E), + autofocus: true, + shape: CircleBorder(), + child: Image.asset( + "assets/images/png/iconamoon_edit-thin.png", + height: 30.h, + width: 30.w, + ), + ), + )); + } +} + +Widget tagsTab() { + List tags = ['Cycle', 'Sports', 'Fitness', 'Kayaking', 'Sports club']; + return Column( + children: [ + sizedBoxHeight(25.h), + ListView.builder( + shrinkWrap: true, + itemCount: tags.length, + itemBuilder: (context, index) { + return Column( + children: [ + rowTagsTile(text: tags[index]), + if (index != tags.length - 1) commonDivider() + ], + ); + }, + ) + ], + ); +} + +Widget rowTagsTile({ + required String text, +}) { + return Padding( + padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 18.h), + child: Row(children: [ + text16w400_FCFCFC(text), + Spacer(), + Image.asset( + "assets/images/png/Group 1000004071.png", + width: 5.w, + height: 22.h, + ) + ]), + ); +} + +Widget tagrequestsrTab() { + List tagrequest = [ + 'Running', + 'Fit fam friday', + ]; + + return Column( + children: [ + sizedBoxHeight(30.h), + ListView.builder( + shrinkWrap: true, + itemCount: tagrequest.length, + itemBuilder: (context, index) { + return Column( + children: [ + rowTagRequestTile(title: tagrequest[index]), + sizedBoxHeight(20.h) + ], + ); + }, + ) + ], + ); +} + +Widget rowTagRequestTile({ + required String title, +}) { + return Padding( + padding: EdgeInsets.symmetric(horizontal: 16.w), + child: commonGlassContainer( + width: double.infinity, + height: 60.h, + borderradius: 10.r, + customWidget: Center( + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 16.w), + child: Row(children: [ + text16w700_FCFCFC(title), + Spacer(), + commonGlassContainer( + width: 35.w, + height: 35.h, + opacity1: 0.24, + opacity2: 0.24, + borderradius: 100, + customWidget: Center( + child: Icon( + Icons.clear, + size: 20, + color: Colors.white, + weight: 1, + )), + border: 0.5), + sizedBoxWidth(16.w), + Container( + height: 35.h, + width: 35.w, + decoration: BoxDecoration( + color: Color(0xFFD90B2E), + shape: BoxShape.circle, + ), + child: Icon( + Icons.check, + size: 20, + color: Colors.white, + weight: 1, + ), + ) + ]), + ), + ), + border: 1), + ); +} + +class CustomFloatingActionButtonLocation extends FloatingActionButtonLocation { + final double offset; + + CustomFloatingActionButtonLocation(this.offset); + + @override + Offset getOffset(ScaffoldPrelayoutGeometry scaffoldGeometry) { + // Calculate the position + double fabX = scaffoldGeometry.scaffoldSize.width - + scaffoldGeometry.floatingActionButtonSize.width - + 16.0; + double fabY = scaffoldGeometry.scaffoldSize.height - + scaffoldGeometry.floatingActionButtonSize.height - + 16.0 - + offset; + return Offset(fabX, fabY); + } +} diff --git a/lib/Feed Module/sidemenu/Community/Admin/PopupItem/Community settings/ManageTags.dart/NewTag/NewTag.dart b/lib/Feed Module/sidemenu/Community/Admin/PopupItem/Community settings/ManageTags.dart/NewTag/NewTag.dart new file mode 100644 index 0000000..b356edd --- /dev/null +++ b/lib/Feed Module/sidemenu/Community/Admin/PopupItem/Community settings/ManageTags.dart/NewTag/NewTag.dart @@ -0,0 +1,50 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:regroup/Common/controller/CommonTextFormField.dart'; +import 'package:regroup/Utils/Common/CommonAppbar.dart'; +import 'package:regroup/Utils/Common/CustomNextButton.dart'; +import 'package:regroup/Utils/Common/blureffect.dart'; +import 'package:regroup/Utils/Common/sized_box.dart'; +import 'package:regroup/Utils/texts.dart'; + +class NewTag extends StatefulWidget { + const NewTag({super.key}); + + @override + State createState() => _NewTagState(); +} + +class _NewTagState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + // key: _scaffoldKey1, + backgroundColor: Color(0xFF222935), + extendBody: true, + appBar: CommonAppbar( + titleTxt: "New tag", + ), + 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( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.end, + children: [ + sizedBoxHeight(30.h), + text16w400_FCFCFC("Tag name"), + sizedBoxHeight(16.h), + CustomTextFormField(), + sizedBoxHeight(80.h), + CustomButton(text: "Add", onPressed: () {}) + ]), + ))) + ])); + } +} diff --git a/lib/Feed Module/sidemenu/Community/Announcements/AnnouncementRequest.dart b/lib/Feed Module/sidemenu/Community/Announcements/AnnouncementRequest.dart new file mode 100644 index 0000000..38514f9 --- /dev/null +++ b/lib/Feed Module/sidemenu/Community/Announcements/AnnouncementRequest.dart @@ -0,0 +1,127 @@ +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'; +import 'package:regroup/resources/routes/route_name.dart'; + +class AnnouncementRequest extends StatefulWidget { + const AnnouncementRequest({super.key}); + + @override + State createState() => _AnnouncementRequestState(); +} + +class _AnnouncementRequestState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + // key: _scaffoldKey1, + backgroundColor: Color(0xFF222935), + extendBody: true, + appBar: CommonAppbar( + titleTxt: "Announcement requests", + ), + body: Stack(children: [ + const CommonBlurLeftRed(), + const CommonBlurRightRed(), + const CommonBlurLeft(), + const CommonBlurRight(), + Positioned.fill( + child: SingleChildScrollView( + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 16), + child: Column( + children: [ + sizedBoxHeight(25.h), + Announcementtile( + profileImg: "assets/images/png/Ellipse 43.png", + title: "title", + mainImg: "assets/images/png/Rectangle 22.png") + ], + )))) + ])); + } + + Widget Announcementtile({ + required String profileImg, + required String title, + required String mainImg, + }) { + return commonGlassContainer( + width: double.infinity, + height: 400.h, + borderradius: 10.r, + border: 1, + customWidget: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: Column(children: [ + sizedBoxHeight(25.h), + Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + CircleAvatar( + foregroundImage: AssetImage(profileImg), + radius: 25.r, + ), + sizedBoxWidth(12.w), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + text16w400_FCFCFC(title), + sizedBoxHeight(5.h), + text12w400_FCFCFC_blur('Iron titans fitness crew'), + ], + ), + Spacer(), + text12w400_FCFCFC_blur("11-04-2024"), + ], + ), + sizedBoxHeight(20.h), + GestureDetector( + onTap: () { + Get.toNamed(RouteName.postdetailsScreen); + }, + child: Container( + height: 109.h, + width: double.infinity, + decoration: + BoxDecoration(borderRadius: BorderRadius.circular(5.r)), + child: Image.asset( + mainImg, + fit: BoxFit.cover, + ), + )), + sizedBoxHeight(20.h), + text16w400_FCFCFC( + "Lorem Ipsum has been the industry's standard dummy text ever since the 1500s . . ."), + sizedBoxHeight(20.h), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + commonGlassContainer( + width: 149.w, + height: 30.h, + opacity1: 0.05, + opacity2: 0.07, + borderradius: 30.r, + customWidget: Center(child: text12w400_FCFCFC("Decline")), + border: 1), + Container( + height: 30.h, + width: 150.h, + decoration: BoxDecoration( + color: Color(0xFFD90B2E), + borderRadius: BorderRadius.circular(30.r), + ), + child: Center(child: text12w400_FCFCFC("Accept")), + ) + ], + ) + ]), + )); + } +} diff --git a/lib/Feed Module/sidemenu/Community/Announcements/ManageMembers.dart b/lib/Feed Module/sidemenu/Community/Announcements/ManageMembers.dart new file mode 100644 index 0000000..54651a9 --- /dev/null +++ b/lib/Feed Module/sidemenu/Community/Announcements/ManageMembers.dart @@ -0,0 +1,398 @@ +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/CommonTabBar.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 ManageMembers extends StatefulWidget { + const ManageMembers({super.key}); + + @override + State createState() => _ManageMembersState(); +} + +class _ManageMembersState extends State { + List members = [ + {"imagePath": "assets/images/png/cimg1.png", "title": "Ryan Dorwart"}, + {"imagePath": "assets/images/png/cimg2.png", "title": "Ahmad Rhiel Madsen"}, + {"imagePath": "assets/images/png/cimg3.png", "title": "Kaylynn Vaccaro"}, + {"imagePath": "assets/images/png/cimg4.png", "title": "Kianna Donin"}, + {"imagePath": "assets/images/png/cimg1.png", "title": "Maria Herwitz"}, + {"imagePath": "assets/images/png/cimg4.png", "title": "Ahmad Rhiel Madsen"}, + ]; + + @override + Widget build(BuildContext context) { + return Scaffold( + // key: _scaffoldKey1, + backgroundColor: Color(0xFF222935), + extendBody: true, + appBar: CommonAppbar( + titleTxt: "Manage members", + customActionWidget: Container( + height: 35.h, + width: 35.w, + decoration: BoxDecoration( + color: Color(0xFFD90B2E), + shape: BoxShape.circle, + boxShadow: [ + BoxShadow( + color: Color(0x40000000), + offset: Offset(0, 6), + blurRadius: 8, + spreadRadius: 0, + ), + ], + ), + child: Icon(Icons.add, color: Colors.white, weight: 2), + ), + ), + body: Stack(children: [ + const CommonBlurLeftRed(), + const CommonBlurRightRed(), + const CommonBlurLeft(), + const CommonBlurRight(), + Positioned.fill( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + sizedBoxHeight(20.h), + DefaultTabController( + length: 4, + child: Column( + children: [ + CommonTabBar(tabs: const [ + Tab( + text: 'Members', + ), + Tab( + text: 'Admins', + ), + Tab( + text: 'Requests', + ), + Tab( + text: 'Invites', + ), + ]), + SizedBox( + height: 655.h, + child: TabBarView( + children: [ + membersTab(), + AdminsTab(), + RequestsTab(), + InvitesTab(), + ], + ), + ), + ], + )) + ])) + ])); + } + + Widget membersTab() { + return SingleChildScrollView( + child: Column(children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: Column( + children: [ + sizedBoxHeight(25.h), + CustomTextFormField( + leadingIcon: Container( + height: 20.h, + width: 20.w, + child: Center( + child: Image.asset( + "assets/images/png/Frame 58575.png", + height: 20.h, + width: 20.w, + ), + ), + ), + hintText: "Search members", + ), + sizedBoxHeight(20.h), + Row( + children: [ + SizedBox( + width: 300.w, + child: CustomTextFormField( + leadingIcon: Container( + height: 17.h, + width: 17.w, + child: Center( + child: Image.asset( + "assets/images/png/calender.png", + height: 17.h, + width: 17.w, + ), + ), + ), + hintText: "Start date - End date", + )), + Spacer(), + commonGlassContainer( + width: 40.w, + height: 40.h, + borderradius: 100, + opacity1: 0.24, + opacity2: 0.24, + customWidget: Center( + child: Image.asset( + "assets/images/png/bi_filter.png", + height: 23.h, + width: 23.w, + ), + ), + border: 0.5) + ], + ), + ], + ), + ), + sizedBoxHeight(30.h), + Column( + children: List.generate(members.length, (index) { + return Column( + children: [ + rowTile( + imagePath: members[index]["imagePath"], + title: members[index]["title"]), + if (index != members.length - 1) commonDivider(), + ], + ); + }), + ) + ]), + ); + } + + Widget rowTile({ + required String imagePath, + required String title, + }) { + return Padding( + padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 16.h), + child: Row( + children: [ + CircleAvatar( + backgroundImage: AssetImage(imagePath), + radius: 17.5.r, + ), + sizedBoxWidth(10.w), + text16w400_FCFCFC(title), + sizedBoxWidth(8.w), + InkWell( + onTap: () { + dialogwidget(); + }, + child: Image.asset( + "assets/images/png/calender.png", + height: 15.h, + width: 15.w, + ), + ), + Spacer(), + Image.asset( + "assets/images/png/Group 1000004071.png", + height: 22.h, + width: 5.w, + ) + ], + ), + ); + } + + dialogwidget() { + Get.dialog(Dialog( + // backgroundColor: Colors.transparent, + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10.r), + color: Color(0xFF222935)), + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 20.h), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + text18w700_FCFCFC("Availability"), + Text( + "title", + style: TextStyle(), + ), + sizedBoxHeight(16.h), + Row( + children: [ + commonGlassContainer( + width: 40.w, + height: 40.h, + borderradius: 100, + opacity1: 0.24, + opacity2: 0.24, + customWidget: Center(child: text16w400_FCFCFC("M")), + border: 0.5), + sizedBoxWidth(15.w), + commonGlassContainer( + width: 40.w, + height: 40.h, + borderradius: 100, + opacity1: 0.24, + opacity2: 0.24, + customWidget: Center(child: text16w400_FCFCFC("Tu")), + border: 0.5), + sizedBoxWidth(15.w), + commonGlassContainer( + width: 40.w, + height: 40.h, + borderradius: 100, + opacity1: 0.24, + opacity2: 0.24, + customWidget: Center(child: text16w400_FCFCFC("W")), + border: 0.5), + Spacer(), + Row( + children: [ + Image.asset( + "assets/images/png/clock.png", + height: 20.h, + width: 20.w, + ), + sizedBoxWidth(8.w), + text16w400_FCFCFC("4pm - 8pm"), + ], + ) + ], + ), + sizedBoxHeight(20.h), + commonDivider(), + sizedBoxHeight(20.h), + Row( + children: [ + commonGlassContainer( + width: 40.w, + height: 40.h, + borderradius: 100, + opacity1: 0.24, + opacity2: 0.24, + customWidget: Center(child: text16w400_FCFCFC("Th")), + border: 0.5), + sizedBoxWidth(15.w), + commonGlassContainer( + width: 40.w, + height: 40.h, + borderradius: 100, + opacity1: 0.24, + opacity2: 0.24, + customWidget: Center(child: text16w400_FCFCFC("F")), + border: 0.5), + sizedBoxWidth(15.w), + commonGlassContainer( + width: 40.w, + height: 40.h, + borderradius: 100, + opacity1: 0.24, + opacity2: 0.24, + customWidget: Center(child: text16w400_FCFCFC("Sa")), + border: 0.5), + Spacer(), + Row( + children: [ + Image.asset( + "assets/images/png/clock.png", + height: 20.h, + width: 20.w, + ), + sizedBoxWidth(8.w), + text16w400_FCFCFC("5pm - 9pm"), + ], + ) + ], + ), + sizedBoxHeight(20.h), + commonDivider(), + sizedBoxHeight(20.h), + Row( + children: [ + GlassmorphicContainer( + width: 40.w, + height: 40.h, + borderRadius: 100, + border: 0.5, + linearGradient: LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [ + Color(0xFFD90B2E).withOpacity(0.18), + const Color(0xFFD90B2E).withOpacity(0.4), + ], + stops: const [ + 0.1, + 1, + ], + ), + borderGradient: LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [ + Color(0xffD90B2E), + Color(0xFFD90B2E), + ], + ), + blur: 10, + child: Center(child: text16w400_FCFCFC("Su")), + ), + sizedBoxWidth(8.w), + text16w400_FCFCFC("Not available") + ], + ), + ], + ), + ), + ), + ], + ), + )); + } + + Widget AdminsTab() { + return Column( + children: [], + ); + } + + Widget RequestsTab() { + return Column( + children: [], + ); + } + + Widget InvitesTab() { + return Column( + children: [], + ); + } + + Widget membersCard() { + return Column( + children: [ + Row( + children: [], + ) + ], + ); + } +} diff --git a/lib/Feed Module/sidemenu/Community/Announcements/NewAnnouncement/NewAnnounceent.dart b/lib/Feed Module/sidemenu/Community/Announcements/NewAnnouncement/NewAnnounceent.dart new file mode 100644 index 0000000..62c57af --- /dev/null +++ b/lib/Feed Module/sidemenu/Community/Announcements/NewAnnouncement/NewAnnounceent.dart @@ -0,0 +1,64 @@ +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/CustomNextButton.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 NewAnnouncement extends StatefulWidget { + const NewAnnouncement({super.key}); + + @override + State createState() => _NewAnnouncementState(); +} + +class _NewAnnouncementState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + // key: _scaffoldKey1, + backgroundColor: Color(0xFF222935), + extendBody: true, + appBar: CommonAppbar( + titleTxt: "New announcement", + ), + 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(crossAxisAlignment: CrossAxisAlignment.start, children: [ + sizedBoxHeight(20.h), + text16w400_FCFCFC("Description"), + sizedBoxHeight(30.h), + commonGlassContainer( + width: double.infinity, + height: 150.h, + borderradius: 10.r, + customWidget: Padding( + padding: + EdgeInsets.symmetric(horizontal: 12.w, vertical: 12.h), + child: text14w400_FCFCFCblur( + "Lorem Ipsum has been the industry's standard dummy text ever since the 1500s . . .Lorem Ipsum has been the industry's standard dummy text ever since the 1500s . . ."), + ), + border: 1), + sizedBoxHeight(80.h), + CustomButton( + text: "Post", + onPressed: () { + Get.toNamed(RouteName.announcement); + }) + ]), + ))) + ])); + } +} diff --git a/lib/Feed Module/sidemenu/Community/Announcements/View/Announcements.dart b/lib/Feed Module/sidemenu/Community/Announcements/View/Announcements.dart index e48484c..d2c650d 100644 --- a/lib/Feed Module/sidemenu/Community/Announcements/View/Announcements.dart +++ b/lib/Feed Module/sidemenu/Community/Announcements/View/Announcements.dart @@ -1,10 +1,12 @@ 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'; +import 'package:regroup/resources/routes/route_name.dart'; class Announcements extends StatefulWidget { const Announcements({super.key}); @@ -41,41 +43,82 @@ class _AnnouncementsState extends State { @override Widget build(BuildContext context) { return Scaffold( - // key: _scaffoldKey1, - backgroundColor: Color(0xFF222935), - extendBody: true, - appBar: CommonAppbar( - titleTxt: "Announcements", + // key: _scaffoldKey1, + backgroundColor: Color(0xFF222935), + extendBody: true, + appBar: CommonAppbar( + titleTxt: "Announcements", + ), + 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(25.h), + Row( + children: [ + Spacer(), + InkWell( + onTap: () { + Get.toNamed(RouteName.announcementrequest); + }, + child: text16w700_FCFCFCUnderline( + "View announcement requests"), + ), + ], + ), + sizedBoxHeight(30.h), + Column( + children: List.generate(announcement.length, (index) { + return Column( + children: [ + announcementWidget( + imagepath: announcement[index]["imagepath"], + title: announcement[index]["title"], + date: announcement[index]["date"], + subtitle: announcement[index]["subtitle"]), + sizedBoxHeight(16.h) + ], + ); + }), + ) + ])))) + ]), + floatingActionButton: Container( + height: 55.h, + width: 55.w, + decoration: BoxDecoration( + shape: BoxShape.circle, + boxShadow: [ + BoxShadow( + color: Color(0x40000000), // Hex color with 40% opacity + offset: Offset(0, 6), + blurRadius: 8, + ), + ], ), - 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), - Column( - children: List.generate(announcement.length, (index) { - return Column( - children: [ - announcementWidget( - imagepath: announcement[index]["imagepath"], - title: announcement[index]["title"], - date: announcement[index]["date"], - subtitle: announcement[index]["subtitle"]), - sizedBoxHeight(16.h) - ], - ); - }), - ) - ])))) - ])); + child: FloatingActionButton( + onPressed: () { + Get.toNamed(RouteName.newannouncement); + }, + backgroundColor: Color(0xFFD90B2E), + autofocus: true, + shape: CircleBorder(), + child: Image.asset( + "assets/images/png/iconamoon_edit-thin.png", + height: 30.h, + width: 30.w, + ), + ), + ), + ); } } diff --git a/lib/Feed Module/sidemenu/Community/MyCommunity/AddGroups.dart b/lib/Feed Module/sidemenu/Community/MyCommunity/AddGroups.dart new file mode 100644 index 0000000..46aee0a --- /dev/null +++ b/lib/Feed Module/sidemenu/Community/MyCommunity/AddGroups.dart @@ -0,0 +1,201 @@ +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 AddGroup extends StatefulWidget { + const AddGroup({super.key}); + + @override + State createState() => _AddGroupState(); +} + +class _AddGroupState extends State { + List isCheckedList = [false, false, false, false]; + + List groupData = [ + { + "imagePath": "assets/images/png/img45.png", + "title": "Iron titans fitness crew", + "subtitle": "Lorem ipsum dummy text", + }, + { + "imagePath": "assets/images/png/Rectangle 25.png", + "title": "Body blitz brigade", + "subtitle": "Lorem ipsum dummy text", + }, + { + "imagePath": "assets/images/png/img2.png", + "title": "Fit fusion squad", + "subtitle": "Lorem ipsum dummy text", + }, + { + "imagePath": "assets/images/png/img2.png", + "title": "Power pulse posse", + "subtitle": "Lorem ipsum dummy text", + }, + ]; + @override + Widget build(BuildContext context) { + return Scaffold( + // key: _scaffoldKey1, + backgroundColor: Color(0xFF222935), + extendBody: true, + appBar: CommonAppbar( + titleTxt: "Add groups", + ), + body: Stack(children: [ + const CommonBlurLeftRed(), + const CommonBlurRightRed(), + const CommonBlurLeft(), + const CommonBlurRight(), + Positioned.fill( + child: SingleChildScrollView( + child: Column(children: [ + Padding( + padding: EdgeInsets.symmetric(horizontal: 16.w), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + sizedBoxHeight(20.h), + 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 groups", + ), + sizedBoxHeight(25.h), + Row( + children: [ + commonGlassContainer( + opacity1: 0.24, + opacity2: 0.24, + width: 50.w, + height: 50.h, + borderradius: 100, + customWidget: Center( + child: Image.asset( + "assets/images/png/Black.png", + height: 30.h, + width: 30.w, + )), + border: 0.5), + sizedBoxWidth(8.w), + text18w400_FCFCFC("Create group"), + Spacer(), + Icon( + Icons.arrow_forward_ios_outlined, + color: Colors.white, + size: 14.sp, + ), + ], + ), + sizedBoxHeight(25.h), + sizedBoxHeight(30.h), + text18w700white("Existing Groups"), + sizedBoxHeight(20.h), + ]), + ), + ListView.builder( + shrinkWrap: true, + itemCount: groupData.length, + itemBuilder: (context, index) { + return Column( + children: [ + groupWidget( + index: index, + imagePath: groupData[index]["imagePath"], + title: groupData[index]["title"], + subtitle: groupData[index]["subtitle"], + isChecked: isCheckedList[index], + onCheckedChanged: (bool? value) { + setState(() { + isCheckedList[index] = value ?? false; + }); + }, + ), + commonDivider(), + ], + ); + }, + ), + sizedBoxHeight(50.h), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: CommonBtn( + text: "Add", + onTap: () { + Get.toNamed(RouteName.mycommunity); + }, + ), + ), + ]), + )) + ])); + } + + Widget groupWidget({ + required int index, + required String imagePath, + required String title, + required String subtitle, + required bool isChecked, + required ValueChanged onCheckedChanged, + }) { + return Padding( + padding: EdgeInsets.symmetric(vertical: 16.h, horizontal: 16.w), + child: Row( + children: [ + CircleAvatar( + backgroundImage: AssetImage(imagePath), + radius: 20.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, + ), + ), + ), + ], + ), + ); + } +} diff --git a/lib/Feed Module/sidemenu/Community/MyCommunity/NewCommunity.dart b/lib/Feed Module/sidemenu/Community/MyCommunity/NewCommunity.dart new file mode 100644 index 0000000..c47e0f0 --- /dev/null +++ b/lib/Feed Module/sidemenu/Community/MyCommunity/NewCommunity.dart @@ -0,0 +1,129 @@ +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/CommonDropDown.dart'; +import 'package:regroup/Common/CommonGlassmorphism.dart'; +import 'package:regroup/Common/controller/CommonTextFormField.dart'; +import 'package:regroup/Utils/Common/CommonAppbar.dart'; +import 'package:regroup/Utils/Common/CommonDropdown.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 NewCommunity extends StatefulWidget { + const NewCommunity({super.key}); + + @override + State createState() => _NewCommunityState(); +} + +class _NewCommunityState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + // key: _scaffoldKey1, + backgroundColor: Color(0xFF222935), + extendBody: true, + appBar: CommonAppbar( + titleTxt: "New community", + ), + body: Stack(children: [ + const CommonBlurLeftRed(), + const CommonBlurRightRed(), + const CommonBlurLeft(), + const CommonBlurRight(), + Positioned.fill( + child: SingleChildScrollView( + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 16.w), + child: + Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ + sizedBoxHeight(20.h), + Center( + child: commonGlassContainer( + width: 95.w, + height: 95.h, + borderradius: 100, + opacity1: 0.24, + opacity2: 0.24, + customWidget: Center( + child: Image.asset( + "assets/images/png/cameraicon2.png", + height: 30.h, + width: 30.w, + ), + ), + border: 0.5), + ), + sizedBoxHeight(20.h), + Center(child: text16w400_white("Add community profile picture")), + sizedBoxHeight(30.h), + text16w400_FCFCFC("Banner image"), + sizedBoxHeight(15.h), + commonGlassContainer( + border: 0.9, + width: double.infinity, + height: 130.h, + borderradius: 10.r, + customWidget: Padding( + padding: EdgeInsets.symmetric(vertical: 16.h), + child: Column( + children: [ + Image.asset( + "assets/images/png/bi_download.png", + height: 36.h, + width: 36.w, + ), + sizedBoxHeight(10.h), + text14w400white('Upload banner image'), + sizedBoxHeight(8.h), + text8w400_8A8A8A( + "Allowed file extensions: jpg, png, gif Max file size: 10 MB"), + ], + ), + ), + ), + sizedBoxHeight(25.h), + text16w400_FCFCFC("Community name*"), + sizedBoxHeight(15.h), + CustomTextFormField(), + sizedBoxHeight(25.h), + text16w400_FCFCFC("Type of community*"), + sizedBoxHeight(15.h), + CommonDropdownradioBtn( + hint: '', items: ['Public', 'Private', 'Secret']), + sizedBoxHeight(25.h), + text16w400_FCFCFC("Location*"), + sizedBoxHeight(15.h), + CommonDropdownradioBtn( + // showOther: true, + hint: '', + items: ['Public', 'Private', 'Secret']), + sizedBoxHeight(25.h), + text16w400_FCFCFC("Primary activity*"), + sizedBoxHeight(15.h), + CustomDropDownWidgetSignup( + header: 'Primary activity', + title: 'ss', + listData: ['Public', 'Private', 'Secret'], + onItemSelected: (p0) => {}, + leadingImage: SizedBox()), + CommonDropdownBtn( + hint: '', items: ['Public', 'Private', 'Secret']), + sizedBoxHeight(25.h), + sizedBoxHeight(25.h), + CommonBtn( + text: "Create community", + onTap: () { + Get.toNamed(RouteName.addgroup); + }, + ), + sizedBoxHeight(25.h), + sizedBoxHeight(25.h), + ]), + ))) + ])); + } +} diff --git a/lib/Feed Module/sidemenu/Community/MyCommunity/View/CommunityDetails.dart b/lib/Feed Module/sidemenu/Community/MyCommunity/View/CommunityDetails.dart index 2b460a3..0599380 100644 --- a/lib/Feed Module/sidemenu/Community/MyCommunity/View/CommunityDetails.dart +++ b/lib/Feed Module/sidemenu/Community/MyCommunity/View/CommunityDetails.dart @@ -3,6 +3,7 @@ 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/CommonTabBar.dart'; import 'package:regroup/Common/CommonWidget.dart'; import 'package:regroup/Utils/Common/CommonAppbar.dart'; import 'package:regroup/Utils/Common/blureffect.dart'; @@ -210,6 +211,8 @@ class _CommunityDetailsState extends State { width: 35.w, height: 35.h, borderradius: 100, + opacity1: 0.24, + opacity2: 0.24, customWidget: Center( child: Image.asset( "assets/images/png/img12.png", @@ -257,7 +260,7 @@ class _CommunityDetailsState extends State { sizedBoxHeight(20.h), GestureDetector( onTap: () { - Get.toNamed(RouteName.group); + Get.toNamed(RouteName.addgroup); }, child: commonGlassContainer( width: double.infinity, @@ -345,7 +348,14 @@ class _CommunityDetailsState extends State { // initialIndex: selectedIndex.value, child: Column( children: [ - MyTabBar(), + CommonTabBar(tabs: const [ + Tab( + text: 'Posts', + ), + Tab( + text: 'Events', + ), + ]), SizedBox( height: 600.h, child: TabBarView( @@ -366,7 +376,17 @@ class _CommunityDetailsState extends State { return Column( children: [ sizedBoxHeight(20.h), - normalcardtile(), + normalcardtile( + profileImg: 'assets/images/png/Ellipse 43.png', + title: 'Edward Hackket', + mainImg: 'assets/images/png/Rectangle 24.png', + containerTitle: [ + 'Cycle', + 'Marathon', + 'Events', + 'Marathon', + 'Events' + ]), ], ); } @@ -377,14 +397,23 @@ class _CommunityDetailsState extends State { ); } - Widget normalcardtile() { - final List titles = [ - 'Race', - 'Swimming', - 'Events', - 'Swimming', - 'Events', - ]; + Widget normalcardtile({ + required String profileImg, + required String title, + required String mainImg, + required List 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), @@ -394,14 +423,14 @@ class _CommunityDetailsState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ CircleAvatar( - foregroundImage: AssetImage('assets/images/png/Ellipse 43.png'), + foregroundImage: AssetImage(profileImg), radius: 25.r, ), sizedBoxWidth(12.w), Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - text16w400_FCFCFC('Edward Hackket'), + text16w400_FCFCFC(title), sizedBoxHeight(5.h), Row( children: [ @@ -512,7 +541,7 @@ class _CommunityDetailsState extends State { ], child: Image.asset( 'assets/images/png/Group 1000004071.png', - width: 4.w, + width: 16.w, height: 18.h, ), ), @@ -525,7 +554,14 @@ class _CommunityDetailsState extends State { onTap: () { Get.toNamed(RouteName.postdetailsScreen); }, - child: Image.asset('assets/images/png/Rectangle 22.png')), + 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), @@ -535,7 +571,7 @@ class _CommunityDetailsState extends State { child: ListView.builder( scrollDirection: Axis.horizontal, shrinkWrap: true, - itemCount: titles.length, + itemCount: containerTitle.length, itemBuilder: (context, index) { return Padding( padding: EdgeInsets.only(right: 12.w), @@ -543,7 +579,7 @@ class _CommunityDetailsState extends State { onTap: () { Get.toNamed(RouteName.cyclescreen); }, - child: containertile(text: titles[index])), + child: containertile(text: containerTitle[index])), ); }, ), @@ -552,11 +588,18 @@ class _CommunityDetailsState extends State { 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.9, + border: 0.43, width: 30.w, height: 30.h, + opacity1: 0.05, + opacity2: 0.06, borderradius: 100, customWidget: Center( child: ReactionButton( @@ -581,10 +624,12 @@ class _CommunityDetailsState extends State { text14w400_FCFCFC('20'), sizedBoxWidth(20.w), commonGlassContainer( - border: 0.9, + border: 0.43, width: 30.w, height: 30.h, borderradius: 100, + opacity1: 0.05, + opacity2: 0.06, customWidget: Center( child: ReactionButton( itemSize: Size.fromHeight(20), @@ -619,63 +664,58 @@ class _CommunityDetailsState extends State { Column( mainAxisAlignment: MainAxisAlignment.center, children: [ - ReactionButton( - onReactionChanged: (reaction) { - debugPrint( - 'Selected value: ${reaction?.value}'); - }, - reactions: ?>[ - Reaction( + Obx(() { + return ReactionButton( + onReactionChanged: (reaction) { + updateImage(reaction?.value ?? 'like'); + debugPrint( + 'Selected value: ${reaction?.value}'); + }, + reactions: ?>[ + Reaction( + value: 'like', + previewIcon: _buildReactionsPreviewIcon( + 'assets/images/png/f7_hand-thumbsup.png'), + icon: _buildReactionsIcon( + 'assets/images/png/f7_hand-thumbsup.png'), + ), + Reaction( + value: 'heart', + previewIcon: _buildReactionsPreviewIcon( + 'assets/images/png/heart 2.png'), + icon: _buildReactionsIcon( + 'assets/images/png/heart 2.png'), + ), + Reaction( + value: 'party', + previewIcon: _buildReactionsPreviewIcon( + 'assets/images/png/party-popper 2.png'), + icon: _buildReactionsIcon( + 'assets/images/png/party-popper 2.png'), + ), + ], + selectedReaction: Reaction( value: 'like', - previewIcon: _buildReactionsPreviewIcon( - 'assets/images/png/f7_hand-thumbsup.png'), icon: _buildReactionsIcon( 'assets/images/png/f7_hand-thumbsup.png'), ), - Reaction( - value: 'heart', - previewIcon: _buildReactionsPreviewIcon( - 'assets/images/png/heart 2.png'), - icon: _buildReactionsIcon( - 'assets/images/png/heart 2.png'), - ), - Reaction( - 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( - value: 'like', - icon: _buildReactionsIcon( - 'assets/images/png/f7_hand-thumbsup.png'), - ), - selectedReaction: Reaction( - 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', - ), - ), + 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), + ); + }) ], ), ], @@ -684,16 +724,21 @@ class _CommunityDetailsState extends State { text11w400_FCFCFC('Like') ], ), - Column( - children: [ - Image.asset( - 'assets/images/png/Vector.png', - height: 19.h, - width: 19.w, - ), - sizedBoxHeight(8.h), - text11w400_FCFCFC('Comment') - ], + 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: [ @@ -745,33 +790,3 @@ class _CommunityDetailsState extends State { )); } } - -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', - ), - ]); - } -} diff --git a/lib/Feed Module/sidemenu/Community/MyCommunity/View/MyCommunity.dart b/lib/Feed Module/sidemenu/Community/MyCommunity/View/MyCommunity.dart index 9ab8fbf..3721477 100644 --- a/lib/Feed Module/sidemenu/Community/MyCommunity/View/MyCommunity.dart +++ b/lib/Feed Module/sidemenu/Community/MyCommunity/View/MyCommunity.dart @@ -53,22 +53,28 @@ class _MyCommunityState extends State { 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, + GestureDetector( + onTap: () { + Get.toNamed(RouteName.newcommunity); + }, + child: Container( + height: 30.h, + width: 30.w, + decoration: BoxDecoration( + color: Color(0xFFD90B2E), + boxShadow: [ + BoxShadow( + color: Color(0x40000000), + offset: Offset(0, 6), + blurRadius: 8, + spreadRadius: 0, + ), + ], + shape: BoxShape.circle), + child: Icon( + Icons.add, + color: Colors.white, + ), ), ), sizedBoxWidth(12.w), @@ -179,6 +185,8 @@ class _MyCommunityState extends State { width: 30.w, height: 30.h, borderradius: 100.r, + opacity1: 0.24, + opacity2: 0.24, customWidget: Center( child: Image.asset( "assets/images/png/Black.png", @@ -308,5 +316,4 @@ class _MyCommunityState extends State { ), ); } - } diff --git a/lib/Utils/Common/CommonAppbar.dart b/lib/Utils/Common/CommonAppbar.dart index e2df61a..614fd4b 100644 --- a/lib/Utils/Common/CommonAppbar.dart +++ b/lib/Utils/Common/CommonAppbar.dart @@ -130,13 +130,18 @@ class CommonAppbar extends StatelessWidget implements PreferredSizeWidget { children: [ sizedBoxWidth(10.w), commonGlassContainer( - border: 0.9, + border: 0.5, width: 40.w, height: 40.h, borderradius: 100, + opacity1: 0.24, + opacity2: 0.24, customWidget: Center( child: Image.asset( - 'assets/images/png/appbararrowbutton.png') + 'assets/images/png/ph_arrow-up-thin.png', + height: 25.h, + width: 25.w, + ) // Icon( // Icons.arrow_back, // color: Colors.white, diff --git a/lib/Utils/texts.dart b/lib/Utils/texts.dart index 9666744..6c3a1a1 100644 --- a/lib/Utils/texts.dart +++ b/lib/Utils/texts.dart @@ -177,6 +177,18 @@ Widget text16w400white(String text, {TextAlign? textAlign}) { ), ); } +Widget text18w700white(String text, {TextAlign? textAlign}) { + return Text( + text, + textAlign: textAlign, + style: TextStyle( + fontSize: 18.sp, + fontFamily: 'Helvetica', + fontWeight: FontWeight.w700, + color: AppColors.white, + ), + ); +} Widget text14w400white(String text, {TextAlign? textAlign}) { return Text( @@ -260,6 +272,19 @@ Widget text16w700_FCFCFC(String text) { ); } +Widget text16w700_FCFCFCUnderline(String text) { + return Text( + text, + style: TextStyle( + decoration: TextDecoration.underline, + decorationColor: Color(0xFFFCFCFC), + fontSize: 16.sp, + color: Color(0xFFFCFCFC), + fontFamily: 'Helvetica', + fontWeight: FontWeight.w700), + ); +} + Widget text16w400_white(String text) { return Text( text, @@ -426,6 +451,18 @@ Widget text8w400_8A8A8A(String text) { ); } +Widget text10w400_whiteCenter(String text) { + return Text( + text, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 10.sp, + color: Colors.white, + fontFamily: 'Helvetica', + fontWeight: FontWeight.w400), + ); +} + Widget text8w400_white(String text) { return Text( text, diff --git a/lib/resources/routes/route_name.dart b/lib/resources/routes/route_name.dart index 0da38a3..6082f90 100644 --- a/lib/resources/routes/route_name.dart +++ b/lib/resources/routes/route_name.dart @@ -16,27 +16,32 @@ class RouteName { static const String communitycommitscreen = '/communitycommitscreen'; static const String signupendpage = '/signupendpage'; - static const String businessletusunderstandstep1 = '/businessletusunderstand'; static const String businessSelectgroupstep2 = '/businessselectgroup'; static const String businessSelectcommunitystep3 = '/businessselectcommunity'; - - static const String communityScreen = '/communityScreen'; static const String mainscreen = '/mainscreen'; - static const String sidemenu = '/sidemenu'; - static const String savedposts = '/savedposts'; - 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'; - static const String communityInfo = '/communityInfo'; - static const String announcement = '/announcement'; - static const String group = '/group'; - static const String communitysetting = '/communitysetting'; - static const String editcommunity = '/editcommunity'; + static const String sidemenu = '/sidemenu'; + static const String savedposts = '/savedposts'; + 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'; + static const String communityInfo = '/communityInfo'; + static const String announcement = '/announcement'; + static const String group = '/group'; + static const String communitysetting = '/communitysetting'; + static const String editcommunity = '/editcommunity'; + static const String managetags = '/managetags'; + static const String newtag = '/newtag'; + static const String newannouncement = '/newannouncement'; + static const String announcementrequest = '/announcementrequest'; + static const String managemembers = '/managemembers'; + static const String managegroups = '/managegroups'; + static const String addgroup = '/addgroup'; + static const String newcommunity = '/newcommunity'; static const String newchatpage = '/newchatpage'; static const String newgrouppage = '/newgrouppage'; @@ -46,12 +51,4 @@ class RouteName { static const String groupchatpage = '/groupchatpage'; - - - - - - - - -} \ No newline at end of file +} diff --git a/lib/resources/routes/routes.dart b/lib/resources/routes/routes.dart index 3e92d4d..fdde4d9 100644 --- a/lib/resources/routes/routes.dart +++ b/lib/resources/routes/routes.dart @@ -5,6 +5,14 @@ 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/sidemenu/Community/Admin/PopupItem/Community%20settings/CommunitySetting.dart'; import 'package:regroup/Feed%20Module/sidemenu/Community/Admin/PopupItem/Community%20settings/EditCommunity/EditCommunity.dart'; +import 'package:regroup/Feed%20Module/sidemenu/Community/Admin/PopupItem/Community%20settings/ManageGroup.dart'; +import 'package:regroup/Feed%20Module/sidemenu/Community/Admin/PopupItem/Community%20settings/ManageTags.dart/ManageTags.dart'; +import 'package:regroup/Feed%20Module/sidemenu/Community/Admin/PopupItem/Community%20settings/ManageTags.dart/NewTag/NewTag.dart'; +import 'package:regroup/Feed%20Module/sidemenu/Community/Announcements/AnnouncementRequest.dart'; +import 'package:regroup/Feed%20Module/sidemenu/Community/Announcements/ManageMembers.dart'; +import 'package:regroup/Feed%20Module/sidemenu/Community/Announcements/NewAnnouncement/NewAnnounceent.dart'; +import 'package:regroup/Feed%20Module/sidemenu/Community/MyCommunity/AddGroups.dart'; +import 'package:regroup/Feed%20Module/sidemenu/Community/MyCommunity/NewCommunity.dart'; import 'package:regroup/Login/View/loginscreen.dart'; @@ -53,29 +61,26 @@ class AppRoutes { name: RouteName.nointernet, page: () => const NoInternet(), ), - - GetPage( + GetPage( name: RouteName.loginScreen, page: () => const LoginScreen(), ), - GetPage( + GetPage( name: RouteName.signupscreen, page: () => const SignupScreen(), ), - GetPage( + GetPage( name: RouteName.verifyusercreen, page: () => const VerifyuserScreenState(), ), - GetPage( + GetPage( name: RouteName.tellusindividualscreen, page: () => const TellusaboutIndividual(), ), - GetPage( + GetPage( name: RouteName.tellusbusinessscreen, page: () => const TellusaboutBusiness(), ), - - GetPage( name: RouteName.communityScreen, page: () => const CommunityScreen(), @@ -112,11 +117,11 @@ class AppRoutes { name: RouteName.communityDetails, page: () => const CommunityDetails(), ), - GetPage( + GetPage( name: RouteName.communityInfo, page: () => const CommunityInfo(), ), - GetPage( + GetPage( name: RouteName.announcement, page: () => const Announcements(), ), @@ -124,55 +129,53 @@ class AppRoutes { name: RouteName.group, page: () => const Group(), ), - GetPage( + GetPage( name: RouteName.individualprofilestep1, page: () => const SelectIndividualProfile(), ), - GetPage( + GetPage( name: RouteName.individualactivitystep2, page: () => const SelectIndividualActivity(), ), - GetPage( + GetPage( name: RouteName.individualgroupstep3, page: () => const SelectIndividualGroup(), ), - GetPage( + GetPage( name: RouteName.individualcommunitystep4, page: () => const SelectIndividualCommunity(), ), - GetPage( + GetPage( name: RouteName.communitycommitscreen, page: () => const Communitycommitment(), ), - GetPage( + GetPage( name: RouteName.signupendpage, page: () => const SignupendPage(), ), - GetPage( + GetPage( name: RouteName.businessletusunderstandstep1, page: () => const LetusUnderstand(), ), - GetPage( + GetPage( name: RouteName.businessSelectgroupstep2, page: () => const SelectgroupStep2(), ), - GetPage( + GetPage( name: RouteName.businessSelectcommunitystep3, page: () => const SelectBusinessCommunity(), ), - - - - GetPage( + GetPage( name: RouteName.communitysetting, page: () => const CommunitySetting(), ), - GetPage( + GetPage( name: RouteName.editcommunity, page: () => const EditCommunity(), ), + GetPage( name: RouteName.newchatpage, page: () => const NewChatPage(), @@ -192,6 +195,39 @@ class AppRoutes { page: () => const GroupChatPage(), ), + + GetPage( + name: RouteName.managetags, + page: () => const ManageTags(), + ), + GetPage( + name: RouteName.newtag, + page: () => const NewTag(), + ), + GetPage( + name: RouteName.newannouncement, + page: () => const NewAnnouncement(), + ), + GetPage( + name: RouteName.announcementrequest, + page: () => const AnnouncementRequest(), + ), + GetPage( + name: RouteName.managemembers, + page: () => const ManageMembers(), + ), + GetPage( + name: RouteName.managegroups, + page: () => const ManageGroups(), + ), + GetPage( + name: RouteName.addgroup, + page: () => const AddGroup(), + ), + GetPage( + name: RouteName.newcommunity, + page: () => const NewCommunity(), + ), + ]; } -