Calender tab added.

This commit is contained in:
cj201199
2024-06-10 12:43:54 +05:30
parent 80d7e3fe07
commit ee6b305a04
29 changed files with 2491 additions and 120 deletions

25
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,25 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Regroup_flutter",
"request": "launch",
"type": "dart"
},
{
"name": "Regroup_flutter (profile mode)",
"request": "launch",
"type": "dart",
"flutterMode": "profile"
},
{
"name": "Regroup_flutter (release mode)",
"request": "launch",
"type": "dart",
"flutterMode": "release"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 983 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 550 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 690 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 723 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 664 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 561 B

View File

@@ -11,22 +11,23 @@ import 'package:regroup/Common/CommonWidget.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
class CommonDropdownBtn extends StatefulWidget {
const CommonDropdownBtn({
CommonDropdownBtn({
required this.hint,
required this.items,
this.isEnabled = true,
this.islocation = false,
this.textcolor = false,
this.onItemSelected,
this.leadingImage,
bool showAddButton = false,
super.key,
});
final String hint;
final List<String>? items;
final void Function(String)? onItemSelected;
final bool isEnabled;
final bool islocation;
final bool textcolor;
final Widget? leadingImage;
@override
State<CommonDropdownBtn> createState() => _CommonDropdownBtnState();
@@ -38,17 +39,8 @@ class _CommonDropdownBtnState extends State<CommonDropdownBtn> {
border: Border.all(color: Colors.white),
borderRadius: BorderRadius.circular(30.r),
);
late String label;
final List<String> items = [
'Item1',
'Item2',
'Item3',
'Item4',
'Item5',
'Item6',
'Item7',
'Item8',
];
String? selectedValue;
@override
@@ -56,33 +48,20 @@ class _CommonDropdownBtnState extends State<CommonDropdownBtn> {
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: Row(
children: [
// SizedBox(
// width: 4,
// ),
// widget.islocation
// ? SvgPicture.asset("assets/svg/location.svg")
// : SizedBox(),
// widget.islocation ? sizedBoxWidth(4.w) : SizedBox(),
if (widget.leadingImage != null) widget.leadingImage!,
SizedBox(
width: 8.w), // Spacing between the image and the text
Expanded(
child: Text(
widget.hint,
style: TextStyle(
fontSize: 12.sp,
fontFamily: 'hiragino',
//fontWeight: FontWeight.bold,
color: Colors.white,
fontWeight: FontWeight.w500),
overflow: TextOverflow.ellipsis,
@@ -106,11 +85,16 @@ class _CommonDropdownBtnState extends State<CommonDropdownBtn> {
))
.toList(),
value: selectedValue,
onChanged: (value) {
onChanged: widget.isEnabled
? (value) {
setState(() {
selectedValue = value as String;
if (widget.onItemSelected != null) {
widget.onItemSelected!(selectedValue!);
}
});
},
}
: null,
buttonStyleData: ButtonStyleData(
height: 50.h,
width: double.infinity,
@@ -147,16 +131,11 @@ class _CommonDropdownBtnState extends State<CommonDropdownBtn> {
maxHeight: 200,
width: 350,
padding: null,
// padding: EdgeInsets.symmetric(horizontal: 16.w),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(30),
// border: Border.all(
// color: Color(0xffCCCCCC),
// ),
color: Color(0xFF222935),
),
elevation: 0,
// offset: const Offset(-20, 0),
scrollbarTheme: ScrollbarThemeData(
radius: const Radius.circular(40),
thickness: MaterialStateProperty.all<double>(6),
@@ -181,6 +160,7 @@ class CommonDropdownradioBtn extends StatefulWidget {
required this.items,
this.textcolor = false,
this.onItemSelected,
this.showOtherOption = false,
super.key,
});
@@ -188,13 +168,16 @@ class CommonDropdownradioBtn extends StatefulWidget {
final List<String>? items;
final void Function(String)? onItemSelected;
final bool textcolor;
final bool showOtherOption;
@override
State<CommonDropdownradioBtn> createState() => _CommonDropdownradioBtnState();
}
class _CommonDropdownradioBtnState extends State<CommonDropdownradioBtn> {
var selectedValue = ''.obs;
final RxString selectedValue = RxString('');
final TextEditingController _textController = TextEditingController();
@override
Widget build(BuildContext context) {
return DropdownButtonHideUnderline(
@@ -207,7 +190,7 @@ class _CommonDropdownradioBtnState extends State<CommonDropdownradioBtn> {
child: Text(
selectedValue.isEmpty ? widget.hint : selectedValue.value,
style: TextStyle(
fontSize: 12.sp,
fontSize: 12,
fontFamily: 'hiragino',
color: Colors.white,
fontWeight: FontWeight.w500,
@@ -218,82 +201,35 @@ class _CommonDropdownradioBtnState extends State<CommonDropdownradioBtn> {
],
);
}),
items: widget.items!.asMap().entries.map((entry) {
int index = entry.key;
String item = entry.value;
return DropdownMenuItem<String>(
value: item,
child: Column(
children: [
InkWell(
onTap: () {
selectedValue.value = item;
if (widget.onItemSelected != null) {
widget.onItemSelected!(item);
}
},
child: Row(
children: [
Obx(() {
return Radio<String>(
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(),
items: _buildDropdownMenuItems(),
value: null,
onChanged: (value) {},
selectedItemBuilder: (BuildContext context) {
return widget.items!.map((item) {
return Obx(() {
return Row(
children: [
Expanded(
child: Obx(() {
return Text(
child: Text(
selectedValue.value,
style: TextStyle(
color: Colors.white,
fontSize: 16.sp,
fontSize: 16,
fontFamily: 'hiragino',
fontWeight: FontWeight.w500,
),
overflow: TextOverflow.ellipsis,
);
}),
),
),
],
);
});
}).toList();
},
buttonStyleData: ButtonStyleData(
height: 50.h,
height: 50,
width: double.infinity,
padding: EdgeInsets.only(left: 12.w, right: 4.w),
padding: EdgeInsets.only(left: 12, right: 4),
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topLeft,
@@ -304,7 +240,7 @@ class _CommonDropdownradioBtnState extends State<CommonDropdownradioBtn> {
],
stops: [0.1, 1],
),
borderRadius: BorderRadius.circular(30.r),
borderRadius: BorderRadius.circular(30),
border: Border.all(
color: Color(0xff434A53),
),
@@ -316,7 +252,7 @@ class _CommonDropdownradioBtnState extends State<CommonDropdownradioBtn> {
icon: Icon(
Icons.keyboard_arrow_down,
),
iconSize: 23.sp,
iconSize: 23,
iconEnabledColor: Color(0xFFFFFFFF),
iconDisabledColor: Color(0xFFFFFFFF),
),
@@ -336,12 +272,143 @@ class _CommonDropdownradioBtnState extends State<CommonDropdownradioBtn> {
),
),
menuItemStyleData: const MenuItemStyleData(
height: 50,
height: 60,
padding: EdgeInsets.only(left: 14, right: 14),
),
),
);
}
List<DropdownMenuItem<String>> _buildDropdownMenuItems() {
List<DropdownMenuItem<String>> items =
widget.items!.asMap().entries.map((entry) {
int index = entry.key;
String item = entry.value;
return DropdownMenuItem<String>(
value: item,
child: InkWell(
onTap: () {
selectedValue.value = item;
_textController.clear();
if (widget.onItemSelected != null) {
widget.onItemSelected!(item);
}
},
child: Column(
children: [
Row(
children: [
Obx(() {
return Radio<String>(
value: item,
activeColor: Colors.white,
groupValue: selectedValue.value,
onChanged: (value) {
selectedValue.value = value!;
_textController.clear();
if (widget.onItemSelected != null) {
widget.onItemSelected!(value);
}
},
);
}),
SizedBox(width: 8),
Text(
item,
style: TextStyle(
color: Colors.white,
fontSize: 16,
fontFamily: 'hiragino',
fontWeight: FontWeight.w500,
),
overflow: TextOverflow.ellipsis,
),
],
),
SizedBox(height: 5.h),
if (index != widget.items!.length - 1) commonDivider()
],
),
),
);
}).toList();
if (widget.showOtherOption) {
items.add(
DropdownMenuItem<String>(
value: _textController.text,
child: Column(
children: [
commonDivider(),
Row(
children: [
Obx(() {
return Radio<String>(
value: _textController.text,
activeColor: Colors.white,
groupValue: selectedValue.value,
onChanged: (value) {
selectedValue.value = value!;
_textController.clear();
if (widget.onItemSelected != null) {
widget.onItemSelected!(value);
}
},
);
}),
SizedBox(width: 8),
Text(
"Other: ",
style: TextStyle(
color: Colors.white,
fontSize: 16,
fontFamily: 'hiragino',
fontWeight: FontWeight.w500,
),
overflow: TextOverflow.ellipsis,
),
Expanded(
child: TextField(
controller: _textController,
style: TextStyle(
color: Colors.white,
fontSize: 16,
fontFamily: 'hiragino',
fontWeight: FontWeight.w500,
),
decoration: InputDecoration(
hintText: '',
hintStyle: TextStyle(color: Colors.white70),
border: UnderlineInputBorder()),
),
),
TextButton(
onPressed: () {
if (_textController.text.trim().isNotEmpty) {
selectedValue.value = _textController.text;
if (widget.onItemSelected != null) {
widget.onItemSelected!(_textController.text);
}
}
},
child: Text(
'OK',
style: TextStyle(
color: Colors.white,
fontSize: 16,
fontFamily: 'hiragino',
fontWeight: FontWeight.w500,
),
),
),
],
),
],
),
),
);
}
return items;
}
}
class CommonDropdownCheckbox extends StatefulWidget {

View File

@@ -1,4 +1,5 @@
import 'package:get/get.dart';
import 'package:regroup/Feed%20Module/Main_Screens/CalenderTab/CalenderTab.dart';
import 'package:regroup/Feed%20Module/Main_Screens/Community/Community.dart';
class MainController extends GetxController {
@@ -7,7 +8,7 @@ class MainController extends GetxController {
var currentTab = [
const CommunityScreen(),
const CommunityScreen(),
const CommunityScreen(),
const CalenderTab(),
const CommunityScreen(),
const CommunityScreen(),
].obs;

View File

@@ -0,0 +1,432 @@
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/CustomNextButton.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
class AddEvent extends StatefulWidget {
const AddEvent({super.key});
@override
State<AddEvent> createState() => _AddEventState();
}
class _AddEventState extends State<AddEvent> {
RxBool isChecked = false.obs;
@override
Widget build(BuildContext context) {
return Scaffold(
// key: _scaffoldKey1,
backgroundColor: Color(0xFF222935),
extendBody: true,
appBar: CommonAppbar(
titleTxt: "",
),
body: Stack(children: [
const CommonBlurLeftRed(),
const CommonBlurRightRed(),
const CommonBlurLeft(),
const CommonBlurRight(),
Positioned.fill(
child: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text16400white("Event Title"),
sizedBoxHeight(14.h),
CustomTextFormField(
leadingIcon: Container(
height: 22.h,
width: 18.w,
child: Center(
child: Image.asset(
"assets/images/png/Vector (5)12.png",
fit: BoxFit.cover,
height: 22.h,
width: 18.w,
),
),
),
hintText: "Tri-sport challenge",
),
sizedBoxHeight(20.h),
text16400white("Event image"),
sizedBoxHeight(20.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 event image"),
sizedBoxHeight(8.h),
text8w400_8A8A8A(
"Allowed file extensions: jpg, png, gif Max file size: 10 MB"),
],
),
),
),
sizedBoxHeight(20.h),
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("Event1.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(16.h),
text16400white("Type of event"),
sizedBoxHeight(14.h),
CommonDropdownBtn(
hint: 'Race',
items: [],
leadingImage: Container(
height: 22.h,
width: 18.w,
child: Center(
child: Image.asset(
"assets/images/png/Vector (5)12.png",
),
),
),
),
sizedBoxHeight(16.h),
text16400white("Sport"),
sizedBoxHeight(14.h),
CommonDropdownBtn(
hint: 'Cycling',
items: [],
leadingImage: Container(
height: 22.h,
width: 18.w,
child: Center(
child: Image.asset(
"assets/images/png/Vector (4).png",
),
),
),
),
sizedBoxHeight(16.h),
Row(
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text16400white("Start date"),
sizedBoxHeight(14.h),
commonGlassContainer(
width: 174.w,
height: 50.h,
borderradius: 30.r,
customWidget: Center(
child: Row(children: [
sizedBoxWidth(16.w),
Image.asset(
"assets/images/png/calender.png",
height: 20.h,
width: 20.w,
),
sizedBoxWidth(8.w),
text16w400_white("1-4-2024")
]),
),
border: 1)
],
),
Spacer(),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text16400white("End date"),
sizedBoxHeight(14.h),
commonGlassContainer(
width: 174.w,
height: 50.h,
borderradius: 30.r,
customWidget: Center(
child: Row(children: [
sizedBoxWidth(16.w),
Image.asset(
"assets/images/png/calender.png",
height: 20.h,
width: 20.w,
),
sizedBoxWidth(8.w),
text16w400_white("4-4-2024")
]),
),
border: 1)
],
),
],
),
sizedBoxHeight(20.h),
Row(
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text16400white("Start time"),
sizedBoxHeight(14.h),
commonGlassContainer(
width: 174.w,
height: 50.h,
borderradius: 30.r,
customWidget: Center(
child: Row(children: [
sizedBoxWidth(16.w),
Image.asset(
"assets/images/png/clock.png",
height: 20.h,
width: 20.w,
),
sizedBoxWidth(8.w),
text16w400_white("3:00 pm")
]),
),
border: 1)
],
),
Spacer(),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text16400white("End time"),
sizedBoxHeight(14.h),
commonGlassContainer(
width: 174.w,
height: 50.h,
borderradius: 30.r,
customWidget: Center(
child: Row(children: [
sizedBoxWidth(16.w),
Image.asset(
"assets/images/png/clock.png",
height: 20.h,
width: 20.w,
),
sizedBoxWidth(8.w),
text16w400_white("5:00 pm")
]),
),
border: 1)
],
),
],
),
sizedBoxHeight(8.h),
Row(
children: [
Obx(() {
return 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.value,
activeColor: Colors.transparent,
checkColor: Colors.white,
onChanged: ((value) {
isChecked.value = value!;
}),
),
),
);
}),
sizedBoxWidth(8.w),
text14w400_FCFCFC("Repeat event")
],
),
sizedBoxHeight(16.h),
text16400white("Post in"),
sizedBoxHeight(14.h),
CommonDropdownBtn(
hint: '',
items: [],
leadingImage: Container(
height: 22.h,
width: 28.w,
child: Center(
child: Image.asset("assets/images/png/Black.png"),
),
),
),
sizedBoxHeight(16.h),
text16400white("Add Users"),
sizedBoxHeight(14.h),
CustomTextFormField(
leadingIcon: Container(
height: 22.h,
width: 18.w,
child: Center(
child: Image.asset(
"assets/images/png/Group122.png",
fit: BoxFit.cover,
height: 18.h,
width: 18.w,
),
),
),
hintText: "",
suffixIcon:
Icon(Icons.arrow_forward, color: Color(0xFFFFFFFF)),
),
sizedBoxHeight(20.h),
containerWidget(
imagePath: "assets/images/png/Ellipse 52.png",
title: "Ryan Dorwart"),
sizedBoxHeight(10.h),
containerWidget(
imagePath: "assets/images/png/Ellipse 52.png",
title: "Ryan Dorwart"),
sizedBoxHeight(10.h),
Align(
alignment: Alignment.center,
child: text14400white("View more")),
sizedBoxHeight(30.h),
text16400white("Location"),
sizedBoxHeight(14.h),
CustomTextFormField(
leadingIcon: Container(
height: 19.h,
width: 15.w,
child: Center(
child: Image.asset(
"assets/images/png/Group 58645.png",
height: 19.h,
width: 15.w,
),
),
),
hintText: "Elm street, London, United kingdom",
),
sizedBoxHeight(25.h),
text16400white("Reminder"),
sizedBoxHeight(22.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
commonGlassContainer(
height: 50.h,
width: 127.w,
borderradius: 30.r,
border: 1,
customWidget: Center(
child: text16400white("2"),
)),
commonGlassContainer(
height: 50.h,
width: 215.w,
borderradius: 30.r,
border: 1,
customWidget: Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
text16400white("Minutes"),
sizedBoxWidth(5.w),
Icon(
Icons.keyboard_arrow_down,
color: Colors.white,
)
],
),
))
],
),
sizedBoxHeight(35.h),
CommonBtn(text: "Save"),
sizedBoxHeight(70.h),
]),
),
))
]));
}
Widget containerWidget({
required String imagePath,
required String title,
}) {
return commonGlassContainer(
width: double.infinity,
height: 50.h,
borderradius: 30,
customWidget: Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Center(
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
CircleAvatar(
backgroundImage: AssetImage(imagePath),
),
sizedBoxWidth(8.w),
text16400white(title),
Spacer(),
Image.asset(
"assets/images/png/cancelicon.png",
height: 20.h,
width: 20.w,
),
],
),
),
),
border: 1);
}
}

View File

@@ -0,0 +1,267 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get_connect/http/src/utils/utils.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 AddUsers extends StatefulWidget {
const AddUsers({super.key});
@override
State<AddUsers> createState() => _AddUsersState();
}
class _AddUsersState extends State<AddUsers> {
List groupData = [
{
"imagePath": "assets/images/png/Ellipse 52.png",
"title": "Ryan Dorwart",
"subtitle": "Row row row your boat",
},
{
"imagePath": "assets/images/png/Ellipse 48.png",
"title": "Ahmad Rhiel Madsen",
"subtitle": "Football fever",
},
{
"imagePath": "assets/images/png/Ellipse 43.png",
"title": "Kaylynn Vaccaro",
"subtitle": "The athletic town",
},
{
"imagePath": "assets/images/png/cimg4.png",
"title": "Kianna Donin",
"subtitle": "Active alliance network",
},
{
"imagePath": "assets/images/png/cimg1.png",
"title": "Ahmad Rhiel Madsen",
"subtitle": "Football fever",
},
{
"imagePath": "assets/images/png/Ellipse 43.png",
"title": "Kaylynn Vaccaro",
"subtitle": "The athletic town",
},
{
"imagePath": "assets/images/png/cimg4.png",
"title": "Kianna Donin",
"subtitle": "Active alliance network",
},
];
List<bool> isCheckedList = [false, false, false, false, false, false, false];
@override
Widget build(BuildContext context) {
return Scaffold(
// key: _scaffoldKey1,
backgroundColor: Color(0xFF222935),
extendBody: true,
appBar: CommonAppbar(
titleTxt: "Add users",
),
body: Stack(children: [
const CommonBlurLeftRed(),
const CommonBlurRightRed(),
const CommonBlurLeft(),
const CommonBlurRight(),
Positioned.fill(
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
sizedBoxHeight(10.h),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: CustomTextFormField(
leadingIcon: SizedBox(
height: 23,
width: 23,
child: Center(
child: Image.asset(
"assets/images/png/ion_search-outline.png",
height: 23,
width: 23,
),
),
),
hintText: "Search users",
),
),
sizedBoxHeight(16.h),
DefaultTabController(
length: 3,
// initialIndex: selectedIndex.value,
child: Column(children: [
CommonTabBar(tabs: const [
Tab(
text: 'Group',
),
Tab(
text: 'Sub-group',
),
Tab(
text: 'Followers',
),
]),
SizedBox(
height: 600.h,
child: TabBarView(
children: [
GroupTab(),
SubgroupTab(),
FollowersTab(),
],
),
),
]))
])))
]));
}
Widget GroupTab() {
return Column(
children: [
sizedBoxHeight(30.h),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Row(
children: [
text18w700_FCFCFC("Group members"),
Spacer(),
commonGlassContainer(
width: 35.w,
height: 35.h,
borderradius: 100,
customWidget: Center(
child: Image.asset(
"assets/images/png/Vector (5)22.png",
height: 12.h,
width: 12.w,
),
),
border: 0.5),
sizedBoxWidth(14.w),
commonGlassContainer(
width: 35.w,
height: 35.h,
borderradius: 100,
customWidget: Center(
child: Image.asset(
"assets/images/png/bi_filter.png",
height: 22.h,
width: 18.w,
),
),
border: 0.5)
],
),
),
sizedBoxHeight(15.h),
Expanded(
child: 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;
});
},
),
if (index != groupData.length - 1) commonDivider(),
],
);
},
),
),
],
);
}
Widget groupWidget({
required int index,
required String imagePath,
required String title,
required String subtitle,
required bool isChecked,
required ValueChanged<bool?> onCheckedChanged,
}) {
return Padding(
padding: EdgeInsets.symmetric(vertical: 16.h, horizontal: 16.w),
child: Row(
children: [
CircleAvatar(
backgroundImage: AssetImage(imagePath),
radius: 25.r,
),
sizedBoxWidth(10.w),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
text16w400_FCFCFC(title),
sizedBoxWidth(6.w),
Image.asset(
"assets/images/png/calender.png",
height: 14.h,
width: 14.w,
)
],
),
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,
),
),
),
],
),
);
}
Widget SubgroupTab() {
return Column(
children: [],
);
}
Widget FollowersTab() {
return Column(
children: [],
);
}
}

View File

@@ -0,0 +1,529 @@
import 'package:calendar_date_picker2/calendar_date_picker2.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:regroup/Common/CommonBottomNavigationBar.dart';
import 'package:regroup/Common/CommonGlassmorphism.dart';
import 'package:regroup/Common/CommonTabBar.dart';
import 'package:regroup/Common/controller/MainScreen.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
import 'package:regroup/resources/routes/route_name.dart';
class CalenderTab extends StatefulWidget {
const CalenderTab({super.key});
@override
State<CalenderTab> createState() => _CalenderTabState();
}
class _CalenderTabState extends State<CalenderTab> {
List sessionData = [
{
"title": "Attending events",
"imagePath": "assets/images/png/Rectangle299.png",
"names": "Sports challenge"
},
{
"title": "Shown Interest",
"imagePath": "assets/images/png/Rectangle 25.png",
"names": "Ultimate athlete challenge"
},
{
"title": "Not going",
"imagePath": "assets/images/png/Rectangle 24.png",
"names": "Cyclotron challenge"
},
];
List communityData = [
{
"title": "Featured community",
"imagePath": "assets/images/png/Rectangle 24.png",
"names": "Sports challenge"
},
{
"title": "Featured community",
"imagePath": "assets/images/png/Rectangle 24.png",
"names": "Tri-sport challenge"
},
];
DateTime selectedDate = DateTime.now();
@override
Widget build(BuildContext context) {
return Scaffold(
// key: _scaffoldKey1,
backgroundColor: Color(0xFF222935),
extendBody: true,
appBar: AppBar(
scrolledUnderElevation: 0.0,
backgroundColor: Color(0xff222935),
elevation: 0,
automaticallyImplyLeading: false,
title: text20700white("Sessions"),
actions: [
InkWell(
onTap: () {
Get.toNamed(RouteName.addUsers);
},
child: 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),
),
),
sizedBoxWidth(14.w),
InkWell(
onTap: () {
Get.toNamed(RouteName.setavailabillity);
},
child: Image.asset(
'assets/images/png/calender.png',
height: 22.h,
width: 22.w,
),
),
sizedBoxWidth(14.w),
Image.asset(
'assets/images/png/Frame 9.png',
height: 25.h,
width: 25.w,
),
sizedBoxWidth(16.w),
],
),
body: Stack(children: [
const CommonBlurLeftRed(),
const CommonBlurRightRed(),
const CommonBlurLeft(),
const CommonBlurRight(),
Stack(children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: 16),
child: Column(children: [
DefaultTabController(
length: 2,
// initialIndex: selectedIndex.value,
child: Column(
children: [
CommonTabBar(tabs: const [
Tab(
text: 'My sessions',
),
Tab(
text: 'Community session',
),
]),
SizedBox(
height: 600.h,
child: TabBarView(
children: [
MySessionsTab(),
ComSessionTab(),
],
),
),
],
),
),
]))
])
]),
bottomNavigationBar: bottomnavigationbar(mainController),
);
}
Widget MySessionsTab() {
return SingleChildScrollView(
child: Column(
children: [
sizedBoxHeight(20.h),
Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: commonGlassContainer(
width: double.infinity,
height: 136.h,
borderradius: 10.r,
customWidget: Row(
children: [
Padding(
padding: EdgeInsets.only(left: 16.w),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [
SizedBox(
width: 171.w,
child: text14w400_FCFCFC(
"Are you looking for resources ? We might have a solution"),
),
sizedBoxHeight(12.h),
GestureDetector(
onTap: () {
Get.toNamed(RouteName.resourcepool);
},
child: text16w700_FCFCFCline("View resources"))
],
),
),
Spacer(),
Image.asset("assets/images/png/Rectangle 45.png")
],
),
border: 1),
),
sizedBoxHeight(25.h),
commonGlassContainer(
width: double.infinity,
height: 314.h,
borderradius: 1,
customWidget: CalendarDatePicker2(
config: CalendarDatePicker2Config(
calendarType: CalendarDatePicker2Type.range,
weekdayLabels: [
'Sun',
'Mon',
'Tue',
'Wed',
'Thu',
'Fri',
'Sat'
],
selectedYearTextStyle: TextStyle(color: Colors.white),
yearTextStyle: TextStyle(color: Colors.white),
selectedDayHighlightColor: Color(0xFFD90B2E),
controlsTextStyle: TextStyle(color: Colors.white),
dayTextStyle: TextStyle(color: Colors.white),
monthTextStyle: TextStyle(color: Colors.white),
weekdayLabelTextStyle: TextStyle(color: Colors.white),
nextMonthIcon: Icon(
Icons.arrow_forward_ios,
color: Colors.white,
),
lastMonthIcon: Icon(
Icons.arrow_back_ios_new,
color: Colors.white,
),
),
value: [selectedDate],
),
border: 0.9),
sizedBoxHeight(25.h),
Column(
children: List.generate(3, (index) {
return sessionCard(
imagePath: sessionData[index]["imagePath"],
names: sessionData[index]["names"],
title: sessionData[index]["title"]);
}),
)
],
),
);
}
Widget sessionCard({
required String title,
required String imagePath,
required String names,
}) {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 20),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text18w700_FCFCFC(title),
sizedBoxHeight(25.h),
GestureDetector(
onTap: () {
Get.toNamed(RouteName.eventDetails);
},
child: commonGlassContainer(
width: double.infinity,
height: 300.h,
borderradius: 10.r,
customWidget: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
height: 151.h,
width: double.infinity,
decoration: BoxDecoration(
borderRadius: BorderRadius.only(
topRight: Radius.circular(10.r),
topLeft: Radius.circular(10.r))),
child: Image.asset(
imagePath,
fit: BoxFit.cover,
)),
sizedBoxHeight(20.h),
Row(
children: [
sizedBoxWidth(16.w),
Image.asset(
"assets/images/png/calender.png",
color: Colors.white.withOpacity(0.8),
height: 12.h,
width: 12.w,
),
sizedBoxWidth(8.w),
text10w400_FCFCFC_blur("29th april 2024"),
sizedBoxWidth(10.w),
Container(
height: 15,
width: 1,
color: Colors.white.withOpacity(0.8),
),
sizedBoxWidth(10.w),
Image.asset(
"assets/images/png/clock.png",
color: Colors.white.withOpacity(0.8),
height: 12.h,
width: 12.w,
),
sizedBoxWidth(8.w),
text10w400_FCFCFC_blur("3:00 pm"),
sizedBoxWidth(10.w),
Container(
height: 15,
width: 1,
color: Colors.white.withOpacity(0.8),
),
sizedBoxWidth(10.w),
Image.asset(
"assets/images/png/Black.png",
color: Colors.white.withOpacity(0.8),
height: 12.h,
width: 12.w,
),
sizedBoxWidth(8.w),
text10w400_FCFCFC_blur("Iron titans fitness crew"),
],
),
sizedBoxHeight(15.h),
Padding(
padding: EdgeInsets.only(left: 16.w),
child: text18w700_FCFCFC(names),
),
sizedBoxHeight(15.h),
Row(
children: [
sizedBoxWidth(16.w),
CircleAvatar(
radius: 12.r,
backgroundImage:
AssetImage("assets/images/png/Ellipse 52.png"),
),
sizedBoxWidth(8.w),
text14w400_FCFCFC("Ryan dorwat"),
],
)
]),
border: 1),
)
],
),
);
}
Widget ComSessionTab() {
return SingleChildScrollView(
child: Column(
children: [
sizedBoxHeight(20.h),
Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: commonGlassContainer(
width: double.infinity,
height: 136.h,
borderradius: 10.r,
customWidget: Row(
children: [
Padding(
padding: EdgeInsets.only(left: 16.w),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [
SizedBox(
width: 171.w,
child: text14w400_FCFCFC(
"Are you looking for resources ? We might have a solution"),
),
sizedBoxHeight(12.h),
GestureDetector(
onTap: () {
Get.toNamed(RouteName.resourcepool);
},
child: text16w700_FCFCFCline("View resources"))
],
),
),
Spacer(),
Image.asset("assets/images/png/Rectangle 45.png")
],
),
border: 1),
),
sizedBoxHeight(25.h),
commonGlassContainer(
width: double.infinity,
height: 314.h,
borderradius: 1,
customWidget: CalendarDatePicker2(
config: CalendarDatePicker2Config(
calendarType: CalendarDatePicker2Type.range,
weekdayLabels: [
'Sun',
'Mon',
'Tue',
'Wed',
'Thu',
'Fri',
'Sat'
],
selectedYearTextStyle: TextStyle(color: Colors.white),
yearTextStyle: TextStyle(color: Colors.white),
selectedDayHighlightColor: Color(0xFFD90B2E),
controlsTextStyle: TextStyle(color: Colors.white),
dayTextStyle: TextStyle(color: Colors.white),
monthTextStyle: TextStyle(color: Colors.white),
weekdayLabelTextStyle: TextStyle(color: Colors.white),
nextMonthIcon: Icon(
Icons.arrow_forward_ios,
color: Colors.white,
),
lastMonthIcon: Icon(
Icons.arrow_back_ios_new,
color: Colors.white,
),
),
value: [selectedDate],
),
border: 0.9),
sizedBoxHeight(25.h),
Column(
children: List.generate(communityData.length, (index) {
return communitysessionCard(
imagePath: communityData[index]["imagePath"],
names: communityData[index]["names"],
title: communityData[index]["title"]);
}),
)
],
),
);
}
}
Widget communitysessionCard({
required String title,
required String imagePath,
required String names,
}) {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 20),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text18w700_FCFCFC(title),
sizedBoxHeight(25.h),
commonGlassContainer(
width: double.infinity,
height: 290.h,
borderradius: 10.r,
customWidget: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
height: 151.h,
width: double.infinity,
decoration: BoxDecoration(
borderRadius: BorderRadius.only(
topRight: Radius.circular(10.r),
topLeft: Radius.circular(10.r))),
child: Image.asset(
imagePath,
fit: BoxFit.cover,
)),
Row(
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
sizedBoxHeight(16.h),
Row(
children: [
sizedBoxWidth(16.w),
Image.asset(
"assets/images/png/calender.png",
color: Colors.white.withOpacity(0.8),
height: 12.h,
width: 12.w,
),
sizedBoxWidth(8.w),
text10w400_FCFCFC_blur("29th april 2024"),
],
),
sizedBoxHeight(15.h),
Padding(
padding: EdgeInsets.only(left: 16.w),
child: text18w700_FCFCFC(names),
),
sizedBoxHeight(15.h),
Row(
children: [
sizedBoxWidth(16.w),
CircleAvatar(
radius: 12.r,
backgroundImage: AssetImage(
"assets/images/png/Ellipse 52.png"),
),
sizedBoxWidth(8.w),
text14w400_FCFCFC("Ryan dorwat"),
],
),
]),
Spacer(),
Container(
height: 138.h,
width: 143.w,
decoration: BoxDecoration(
color: Color(0xFFD90B2E),
borderRadius: BorderRadius.only(
bottomRight: Radius.circular(10.r),
),
),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
text25700FCFCFC("14"),
text16w700_FCFCFCblur("April 2024"),
sizedBoxHeight(12.h),
text16w700_FCFCFC("3:00 pm")
],
),
)
],
),
],
),
border: 1)
],
),
);
}

View File

@@ -0,0 +1,320 @@
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/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 EventDetails extends StatefulWidget {
const EventDetails({super.key});
@override
State<EventDetails> createState() => _EventDetailsState();
}
class _EventDetailsState extends State<EventDetails> {
@override
Widget build(BuildContext context) {
return Scaffold(
// key: _scaffoldKey1,
backgroundColor: Color(0xFF222935),
extendBody: true,
appBar: CommonAppbar(
titleTxt: "",
customActionWidget: Row(
children: [
InkWell(
onTap: () {
Get.toNamed(RouteName.addEvent);
},
child: commonGlassContainer(
width: 40.w,
height: 40.h,
borderradius: 100,
opacity1: 0.24,
opacity2: 0.24,
customWidget: Center(
child: Image.asset("assets/images/png/Vector536.png",
height: 17.h, width: 17.w),
),
border: 0.5),
),
sizedBoxWidth(12.w),
commonGlassContainer(
width: 40.w,
height: 40.h,
borderradius: 100,
opacity1: 0.24,
opacity2: 0.24,
customWidget: Center(
child: Image.asset("assets/images/png/Vector522.png",
height: 17.h, width: 17.w),
),
border: 0.5),
],
),
),
body: Stack(children: [
const CommonBlurLeftRed(),
const CommonBlurRightRed(),
const CommonBlurLeft(),
const CommonBlurRight(),
Positioned.fill(
child: SingleChildScrollView(
child: Column(
children: [
Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
sizedBoxHeight(10.h),
SizedBox(
height: 260.h,
width: double.infinity,
child: ClipRRect(
borderRadius: BorderRadius.circular(10.r),
child: Image.asset(
"assets/images/png/Rectangle299.png",
fit: BoxFit.cover,
),
),
),
sizedBoxHeight(20.h),
text18w700_FCFCFC("Sports challenge"),
sizedBoxHeight(16.h),
text14400whiteblur(
"Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer . . . "),
sizedBoxHeight(22.h),
Row(
children: [
commonGlassContainer(
width: 35.w,
height: 35.h,
borderradius: 100,
opacity1: 0.24,
opacity2: 0.24,
customWidget: Center(
child: Image.asset(
"assets/images/png/calender.png",
height: 17.h,
width: 17.w,
),
),
border: 0.5),
sizedBoxWidth(10.w),
text16400white("20th April 2024 - 21st April 2024"),
],
),
sizedBoxHeight(16.h),
Row(
children: [
commonGlassContainer(
width: 35.w,
height: 35.h,
borderradius: 100,
opacity1: 0.24,
opacity2: 0.24,
customWidget: Center(
child: Image.asset(
"assets/images/png/clock.png",
height: 17.h,
width: 17.w,
),
),
border: 0.5),
sizedBoxWidth(10.w),
text16400white("3 hours"),
],
),
sizedBoxHeight(16.h),
Row(
children: [
commonGlassContainer(
width: 35.w,
height: 35.h,
borderradius: 100,
opacity1: 0.24,
opacity2: 0.24,
customWidget: Center(
child: Image.asset(
"assets/images/png/Group 58645.png",
height: 17.h,
width: 17.w,
),
),
border: 0.5),
sizedBoxWidth(10.w),
text16400white("Elm street london, United Kingdom"),
],
),
]),
),
sizedBoxHeight(16.h),
commonDivider(),
sizedBoxHeight(16.h),
text18w700white("Are you attending this event ?"),
sizedBoxHeight(20.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
commonGlassContainer(
width: 87.w,
height: 40.h,
borderradius: 30.r,
customWidget: Center(child: text16w400_white("Yes")),
border: 1),
commonGlassContainer(
width: 87.w,
height: 40.h,
borderradius: 30.r,
customWidget: Center(child: text16w400_white("No")),
border: 1),
commonGlassContainer(
width: 154.w,
height: 40.h,
borderradius: 30.r,
customWidget:
Center(child: text16w400_white("Not yet decided")),
border: 1),
],
),
sizedBoxHeight(20.h),
commonDivider(),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
sizedBoxHeight(20.h),
text18w700white("Reminder"),
sizedBoxHeight(10.h),
Row(
children: [
Image.asset(
"assets/images/png/alarm 1 (traced).png",
height: 24.h,
width: 24.w,
),
sizedBoxWidth(10.w),
text16w400_white("10 minutes before")
],
),
sizedBoxHeight(20.h),
commonGlassContainer(
width: double.infinity,
height: 251.h,
borderradius: 10.r,
customWidget: Padding(
padding: const EdgeInsets.symmetric(vertical: 20),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
reminderWidget(
text: "Total invites", count: '150'),
sizedBoxHeight(16.h),
reminderWidget(text: "Attending", count: '78'),
sizedBoxHeight(16.h),
reminderWidget(
text: "Not attending", count: '35'),
sizedBoxHeight(16.h),
reminderWidget(text: "Not deciding", count: '20'),
sizedBoxHeight(16.h),
reminderWidget(
text: "Waiting reply", count: '17'),
],
),
),
border: 1),
sizedBoxHeight(30.h),
text18w700white("Messages"),
sizedBoxHeight(20.h),
Row(
children: [
Image.asset(
"assets/images/png/Vector (5)3343.png",
height: 20.h,
width: 20.w,
),
sizedBoxWidth(10.w),
text16w400_white("Send message to invites"),
Spacer(),
commonGlassContainer(
width: 98.w,
height: 30.h,
borderradius: 30.r,
customWidget:
Center(child: text14400white("Select")),
border: 1)
],
),
sizedBoxHeight(25.h),
commonGlassContainer(
width: double.infinity,
height: 240.h,
borderradius: 10.r,
customWidget: Padding(
padding: EdgeInsets.symmetric(horizontal: 80.w),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
CircleAvatar(
radius: 33.5,
backgroundImage:
AssetImage("assets/images/png/cimg1.png"),
),
sizedBoxHeight(15.h),
text12400whiteblur("Organized By"),
text16w700white("Ryan dorwat"),
sizedBoxHeight(15.h),
commonDivider(),
sizedBoxHeight(15.h),
text12400whiteblur('Group'),
sizedBoxHeight(15.h),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
CircleAvatar(
radius: 12.5.r,
backgroundImage: AssetImage(
"assets/images/png/img322.png"),
),
sizedBoxWidth(8.w),
text16w700white("Row row your boat"),
],
)
]),
),
border: 1),
sizedBoxHeight(50.h),
CommonBtn(text: "Join the event"),
sizedBoxHeight(40.h),
],
),
),
],
)))
]));
}
Widget reminderWidget({required String text, required String count}) {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Row(
children: [
Image.asset("assets/images/png/Red.png", height: 22.h, width: 16.w),
sizedBoxWidth(10.w),
SizedBox(width: 250.w, child: text16w400_white(text)),
Spacer(),
text16400white(count),
],
),
);
}
}

View File

@@ -0,0 +1,36 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:regroup/Utils/Common/CommonAppbar.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
class ManageMember extends StatefulWidget {
const ManageMember({super.key});
@override
State<ManageMember> createState() => _ManageMemberState();
}
class _ManageMemberState extends State<ManageMember> {
@override
Widget build(BuildContext context) {
return Scaffold(
// key: _scaffoldKey1,
backgroundColor: Color(0xFF222935),
extendBody: true,
appBar: CommonAppbar(
titleTxt: "Add users",
),
body: Stack(children: [
const CommonBlurLeftRed(),
const CommonBlurRightRed(),
const CommonBlurLeft(),
const CommonBlurRight(),
Positioned.fill(
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
sizedBoxHeight(10.h),])))]));
}
}

View File

@@ -0,0 +1,284 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:regroup/Common/CommonGlassmorphism.dart';
import 'package:regroup/Common/CommonWidget.dart';
import 'package:regroup/Common/controller/CommonTextFormField.dart';
import 'package:regroup/Utils/Common/CommonAppbar.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
import 'package:regroup/resources/routes/route_name.dart';
class ResourcePool extends StatefulWidget {
const ResourcePool({super.key});
@override
State<ResourcePool> createState() => _ResourcePoolState();
}
class _ResourcePoolState extends State<ResourcePool> {
List<bool> isCheckedList = [false, false, false, false];
List eventData = [
{
"imagePath": "assets/images/png/img45.png",
"title": "Super sports fest",
},
{
"imagePath": "assets/images/png/Rectangle 25.png",
"title": "Tri-sport challenge",
},
{
"imagePath": "assets/images/png/img2.png",
"title": "Ultimate athlete challenge",
},
{
"imagePath": "assets/images/png/img2.png",
"title": "Cyclotron challenge",
},
];
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color(0xFF222935),
extendBody: true,
appBar: CommonAppbar(
titleTxt: "Resource pool",
),
body: Stack(children: [
const CommonBlurLeftRed(),
const CommonBlurRightRed(),
const CommonBlurLeft(),
const CommonBlurRight(),
Positioned.fill(
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Column(children: [
sizedBoxHeight(10.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 community sessions",
),
sizedBoxHeight(20.h),
Expanded(
child: ListView.builder(
itemCount: 2,
shrinkWrap: true,
itemBuilder: (context, index) {
return Padding(
padding: const EdgeInsets.symmetric(vertical: 16),
child: resourceCard(),
);
},
),
)
]),
))
]));
}
Widget resourceCard() {
return commonGlassContainer(
width: double.infinity,
height: 216.h,
borderradius: 10.r,
customWidget: Padding(
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16),
child:
Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
Row(
children: [
CircleAvatar(
backgroundImage:
AssetImage("assets/images/png/Ellipse 52.png"),
radius: 25.r,
),
sizedBoxWidth(8.w),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text16w400_FCFCFC("Ryan Dorwart"),
sizedBoxHeight(6.h),
text12w400_FCFCFC_blur("Row row row your boat")
],
),
Spacer(),
InkWell(
onTap: () {
inviteBottomSheet();
},
child: Container(
height: 30.h,
width: 95.w,
decoration: BoxDecoration(
color: Color(0xFFD90B2E),
borderRadius: BorderRadius.circular(30.r)),
child: Center(child: text14400white("Invite")),
),
)
],
),
sizedBoxHeight(14.h),
commonDivider(),
sizedBoxHeight(14.h),
text16w400_FCFCFC("Available for :"),
sizedBoxHeight(12.h),
Row(
children: [
Image.asset(
"assets/images/png/calender.png",
height: 16.h,
width: 16.w,
),
sizedBoxWidth(8.w),
SizedBox(width: 140.w, child: text14w400_FCFCFC("Race")),
sizedBoxWidth(16.w),
Image.asset(
"assets/images/png/Vector (4).png",
height: 16.h,
width: 16.w,
),
sizedBoxWidth(8.w),
SizedBox(width: 120.w, child: text14w400_FCFCFC("Race")),
],
),
sizedBoxHeight(12.h),
Row(
children: [
Image.asset(
"assets/images/png/Black.png",
height: 16.h,
width: 16.w,
),
sizedBoxWidth(8.w),
SizedBox(
width: 140.w,
child: text14w400_FCFCFC("Only group events")),
sizedBoxWidth(16.w),
Image.asset(
"assets/images/png/Group122.png",
height: 16.h,
width: 16.w,
),
sizedBoxWidth(8.w),
SizedBox(width: 120.w, child: text14w400_FCFCFC("Lorem ipsum")),
],
),
]),
),
border: 1);
}
void inviteBottomSheet() {
Get.bottomSheet(
StatefulBuilder(
builder: (BuildContext context, StateSetter setState) {
return Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(30.r),
topRight: Radius.circular(30.r),
),
color: Color(0xFF222935),
),
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
sizedBoxHeight(20.h),
text18w400white("Events"),
Column(
children: List.generate(eventData.length, (index) {
return Column(
children: [
sizedBoxHeight(10.h),
eventWidget(
index: index,
imagePath: eventData[index]["imagePath"],
title: eventData[index]["title"],
isChecked: isCheckedList[index],
onCheckedChanged: (bool? value) {
setState(() {
isCheckedList[index] = value ?? false;
});
},
),
if (index != eventData.length - 1) commonDivider(),
],
);
}),
),
sizedBoxHeight(30.h),
],
),
),
);
},
),
);
}
Widget eventWidget({
required int index,
required String imagePath,
required String title,
required bool isChecked,
required ValueChanged<bool?> onCheckedChanged,
}) {
return Padding(
padding: EdgeInsets.symmetric(
vertical: 16.h,
),
child: Row(
children: [
SizedBox(
height: 30.h,
width: 30.w,
child: ClipRRect(
borderRadius: BorderRadius.circular(5.r),
child: Image.asset(
imagePath,
fit: BoxFit.cover,
),
),
),
sizedBoxWidth(10.w),
text16w400_FCFCFC(title),
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,
),
),
),
],
),
);
}
}

View File

@@ -0,0 +1,220 @@
import 'package:flutter/cupertino.dart';
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/CommonButton.dart';
import 'package:regroup/Common/CommonDropDown.dart';
import 'package:regroup/Common/CommonGlassmorphism.dart';
import 'package:regroup/Utils/Common/CommonAppbar.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
class SetAvailabillity extends StatefulWidget {
const SetAvailabillity({super.key});
@override
State<SetAvailabillity> createState() => _SetAvailabillityState();
}
class _SetAvailabillityState extends State<SetAvailabillity> {
bool swichvalue = false;
var selectedContainerIndices = <int>{}.obs;
void toggleSelectedIndex(int index) {
if (selectedContainerIndices.contains(index)) {
selectedContainerIndices.remove(index);
} else {
selectedContainerIndices.add(index);
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
// key: _scaffoldKey1,
backgroundColor: Color(0xFF222935),
extendBody: true,
appBar: CommonAppbar(
titleTxt: "Set availability",
),
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(10.h),
text16400white("Select event type"),
sizedBoxHeight(15.h),
CommonDropdownBtn(hint: "", items: []),
sizedBoxHeight(18.h),
text16400white("Select sport"),
sizedBoxHeight(15.h),
CommonDropdownBtn(hint: "", items: []),
sizedBoxHeight(18.h),
text16400white("Select role "),
sizedBoxHeight(15.h),
CommonDropdownBtn(hint: "", items: []),
sizedBoxHeight(18.h),
text16400white("Space selection"),
sizedBoxHeight(15.h),
CommonDropdownBtn(hint: "", items: []),
sizedBoxHeight(18.h),
Row(
children: [
text16w400_white("Availability"),
Spacer(),
Transform.scale(
scaleY: 1,
child: CupertinoSwitch(
value: swichvalue,
trackColor:
Colors.white.withOpacity(0.4),
activeColor: Color(0xFF3192D8),
onChanged: (bool? value) {
setState(() {
swichvalue = value ?? false;
});
}))
],
),
sizedBoxHeight(30.h),
text16400white("Select days"),
sizedBoxHeight(15.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
commondayContainer(text: "M", index: 1),
commondayContainer(text: "Tu", index: 2),
commondayContainer(text: "W", index: 3),
commondayContainer(text: "Th", index: 4),
commondayContainer(text: "F", index: 5),
commondayContainer(text: "Sa", index: 6),
commondayContainer(text: "Su", index: 7),
// GlassmorphicContainer(
// width: 40.w,
// height: 40.h,
// borderRadius: 100,
// blur: 10,
// alignment: Alignment.topCenter,
// 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),
// ],
// ),
// child: Center(child: text16w400_FCFCFC("Su")),
// ),
],
),
sizedBoxHeight(20.h),
Row(
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text16400white("Start time"),
sizedBoxHeight(14.h),
commonGlassContainer(
width: 174.w,
height: 50.h,
borderradius: 30.r,
customWidget: Center(
child: Row(children: [
sizedBoxWidth(16.w),
Image.asset(
"assets/images/png/clock.png",
height: 20.h,
width: 20.w,
),
sizedBoxWidth(8.w),
text16w400_white("3:00 pm")
]),
),
border: 1)
],
),
Spacer(),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text16400white("End time"),
sizedBoxHeight(14.h),
commonGlassContainer(
width: 174.w,
height: 50.h,
borderradius: 30.r,
customWidget: Center(
child: Row(children: [
sizedBoxWidth(16.w),
Image.asset(
"assets/images/png/clock.png",
height: 20.h,
width: 20.w,
),
sizedBoxWidth(8.w),
text16w400_white("5:00 pm")
]),
),
border: 1)
],
),
],
),
sizedBoxHeight(30.h),
CommonBtn(text: "Send"),
sizedBoxHeight(30.h),
]))))
]));
}
Widget commondayContainer({
required String text,
required int index,
}) {
return Obx(() {
return GestureDetector(
onTap: () {
toggleSelectedIndex(index);
},
child: Container(
width: 40.w,
height: 40.h,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: selectedContainerIndices.contains(index)
? Color(0xFFD90B2E).withOpacity(0.4)
: Color(0xFFFFFFFF).withOpacity(0.2),
border: selectedContainerIndices.contains(index)
? Border.all(color: Color(0xFFD90B2E), width: 1)
: null),
child: Center(child: text16w400_FCFCFC(text)),
),
);
});
}
}

View File

@@ -179,13 +179,14 @@ class _EditCommunityState extends State<EditCommunity> {
text16w400_FCFCFC("Location*"),
sizedBoxHeight(14.h),
CommonDropdownradioBtn(
hint: '',
items: ["Public", "Private - Request to join"]),
hint: '', items: ["Public", "Private", "Secret"]),
sizedBoxHeight(25.h),
text16w400_FCFCFC("Primary activity*"),
sizedBoxHeight(14.h),
CommonDropdownradioBtn(
hint: '', items: ["Sports", "Hobby"]),
hint: '',
items: ["Sports", "Hobby"],
showOtherOption: true),
sizedBoxHeight(50.h),
CustomButton(text: 'Save changes', onPressed: () {}),
sizedBoxHeight(50.h),

View File

@@ -93,7 +93,9 @@ class _NewCommunityState extends State<NewCommunity> {
text16w400_FCFCFC("Type of community*"),
sizedBoxHeight(15.h),
CommonDropdownradioBtn(
hint: '', items: ['Public', 'Private', 'Secret']),
hint: '',
items: ['Public', 'Private', 'Secret'],
showOtherOption: false),
sizedBoxHeight(25.h),
text16w400_FCFCFC("Location*"),
sizedBoxHeight(15.h),
@@ -103,15 +105,20 @@ class _NewCommunityState extends State<NewCommunity> {
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']),
// CustomDropDownWidgetSignup(
// header: 'Primary activity',
// title: 'ss',
// listData: ['Public', 'Private', 'Secret'],
// onItemSelected: (p0) => {},
// leadingImage: SizedBox()),
sizedBoxHeight(20.h),
CommonDropdownradioBtn(
hint: '',
items: [
'Sports',
'Hobby',
],
showOtherOption: true),
sizedBoxHeight(25.h),
sizedBoxHeight(25.h),
CommonBtn(
@@ -121,7 +128,7 @@ class _NewCommunityState extends State<NewCommunity> {
},
),
sizedBoxHeight(25.h),
sizedBoxHeight(25.h),
sizedBoxHeight(150.h),
]),
)))
]));

View File

@@ -33,6 +33,17 @@ Widget text20400white(String text) {
);
}
Widget text20700white(String text) {
return Text(
text,
style: TextStyle(
fontSize: 20.sp,
color: AppColors.white,
fontWeight: FontWeight.w700,
fontFamily: 'Helvetica'),
);
}
Widget text16400white(String text) {
return Text(
text,
@@ -57,6 +68,18 @@ Widget text25700white(String text) {
);
}
Widget text25700FCFCFC(String text) {
return Text(
text,
// textAlign: TextAlign.center,
style: TextStyle(
fontSize: 25.sp,
color: Color(0xFFFCFCFC),
fontWeight: FontWeight.w700,
fontFamily: 'Helvetica'),
);
}
Widget text12400white(String text) {
return Text(
text,
@@ -68,6 +91,17 @@ Widget text12400white(String text) {
);
}
Widget text12400whiteblur(String text) {
return Text(
text,
style: TextStyle(
fontSize: 12.sp,
color: AppColors.white.withOpacity(0.8),
fontWeight: FontWeight.w400,
fontFamily: 'Helvetica'),
);
}
Widget text14400white(String text) {
return Text(
text,
@@ -80,6 +114,18 @@ Widget text14400white(String text) {
);
}
Widget text14400whiteblur(String text) {
return Text(
text,
// textAlign: TextAlign.center,
style: TextStyle(
fontSize: 14.sp,
color: AppColors.white.withOpacity(0.8),
fontWeight: FontWeight.w400,
fontFamily: 'Helvetica'),
);
}
Widget text14700white(String text) {
return Text(
text,
@@ -177,6 +223,20 @@ Widget text16w400white(String text, {TextAlign? textAlign}) {
),
);
}
Widget text16w700white(String text, {TextAlign? textAlign}) {
return Text(
text,
textAlign: textAlign,
style: TextStyle(
fontSize: 16.sp,
fontFamily: 'Helvetica',
fontWeight: FontWeight.w700,
color: AppColors.white,
),
);
}
Widget text18w700white(String text, {TextAlign? textAlign}) {
return Text(
text,
@@ -190,6 +250,19 @@ Widget text18w700white(String text, {TextAlign? textAlign}) {
);
}
Widget text18w400white(String text, {TextAlign? textAlign}) {
return Text(
text,
textAlign: textAlign,
style: TextStyle(
fontSize: 18.sp,
fontFamily: 'Helvetica',
fontWeight: FontWeight.w400,
color: AppColors.white,
),
);
}
Widget text14w400white(String text, {TextAlign? textAlign}) {
return Text(
text,
@@ -272,6 +345,30 @@ Widget text16w700_FCFCFC(String text) {
);
}
Widget text16w700_FCFCFCblur(String text) {
return Text(
text,
style: TextStyle(
fontSize: 16.sp,
color: Color(0xFFFCFCFC).withOpacity(0.8),
fontFamily: 'Helvetica',
fontWeight: FontWeight.w700),
);
}
Widget text16w700_FCFCFCline(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 text16w700_FCFCFCUnderline(String text) {
return Text(
text,

View File

@@ -42,6 +42,12 @@ class RouteName {
static const String managegroups = '/managegroups';
static const String addgroup = '/addgroup';
static const String newcommunity = '/newcommunity';
static const String resourcepool = '/resourcepool';
static const String eventDetails = '/eventDetails';
static const String addEvent = '/addEvent';
static const String setavailabillity = '/setavailabillity';
static const String addUsers = '/addUsers';
// static const String managemembers= '/managemembers';
}

View File

@@ -1,4 +1,9 @@
import 'package:get/get_navigation/src/routes/get_route.dart';
import 'package:regroup/Feed%20Module/Main_Screens/CalenderTab/AddEvent/AddEvent.dart';
import 'package:regroup/Feed%20Module/Main_Screens/CalenderTab/AddUsers/AddUsers.dart';
import 'package:regroup/Feed%20Module/Main_Screens/CalenderTab/EventDetails.dart';
import 'package:regroup/Feed%20Module/Main_Screens/CalenderTab/Resource%20Pool/ResourcePool.dart';
import 'package:regroup/Feed%20Module/Main_Screens/CalenderTab/SetAvailabillity.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';
@@ -201,5 +206,29 @@ class AppRoutes {
name: RouteName.newcommunity,
page: () => const NewCommunity(),
),
GetPage(
name: RouteName.resourcepool,
page: () => const ResourcePool(),
),
GetPage(
name: RouteName.eventDetails,
page: () => const EventDetails(),
),
GetPage(
name: RouteName.addEvent,
page: () => const AddEvent(),
),
GetPage(
name: RouteName.setavailabillity,
page: () => const SetAvailabillity(),
),
GetPage(
name: RouteName.addUsers,
page: () => const AddUsers(),
),
// GetPage(
// name: RouteName.managemembers,
// page: () => const ManageMembers(),
// ),
];
}

View File

@@ -41,6 +41,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.1"
calendar_date_picker2:
dependency: "direct main"
description:
name: calendar_date_picker2
sha256: "5fddc1fb78c8f218b2e0dd6bae239f7ac502784c62f34ef96f4b22a8cb5d5608"
url: "https://pub.dev"
source: hosted
version: "1.0.3"
characters:
dependency: transitive
description:
@@ -400,6 +408,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.2.1+1"
intl:
dependency: transitive
description:
name: intl
sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf
url: "https://pub.dev"
source: hosted
version: "0.19.0"
js:
dependency: transitive
description:
@@ -717,6 +733,30 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.2.0"
syncfusion_flutter_calendar:
dependency: "direct main"
description:
name: syncfusion_flutter_calendar
sha256: "4c14947b6a398afbbb341b4ea069bc0c1a68d5459ff8b04c8668342ea6380820"
url: "https://pub.dev"
source: hosted
version: "25.2.7"
syncfusion_flutter_core:
dependency: transitive
description:
name: syncfusion_flutter_core
sha256: e17dcc7a1d0701e84d0a83c0040503cdcc6c72e44db0d733ab4c706dd5b8b9f8
url: "https://pub.dev"
source: hosted
version: "25.2.7"
syncfusion_flutter_datepicker:
dependency: transitive
description:
name: syncfusion_flutter_datepicker
sha256: ebe93b6b54937164ee8b19cd036f314f226a5d69c47da97d05ce07a0ecae4dee
url: "https://pub.dev"
source: hosted
version: "25.2.7"
term_glyph:
dependency: transitive
description:
@@ -733,6 +773,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.6.1"
timezone:
dependency: transitive
description:
name: timezone
sha256: a6ccda4a69a442098b602c44e61a1e2b4bf6f5516e875bbf0f427d5df14745d5
url: "https://pub.dev"
source: hosted
version: "0.9.3"
typed_data:
dependency: transitive
description:

View File

@@ -59,6 +59,8 @@ dependencies:
dropdown_button2: ^2.3.9
flutter_reaction_button: any
syncfusion_flutter_calendar: ^25.2.7
calendar_date_picker2: ^1.0.3
dev_dependencies: