group tab and explore design done

This commit is contained in:
cj201199
2024-06-25 20:14:03 +05:30
parent d977a7c679
commit fbb3f2ee23
69 changed files with 4672 additions and 1255 deletions

View File

@@ -1,6 +1,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.regroup">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission
android:name="android.permission.USE_BIOMETRIC"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
@@ -43,5 +45,7 @@
<meta-data
android:name="flutterEmbedding"
android:value="2" />
<meta-data android:name="com.google.android.geo.API_KEY"
android:value="AIzaSyDdTfKwZav5Qyg3ht88N76lDTFntOe30dQ"/>
</application>
</manifest>

View File

@@ -1,5 +1,5 @@
buildscript {
ext.kotlin_version = '1.7.10'
ext.kotlin_version = '1.9.22'
repositories {
google()
mavenCentral()

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 934 B

View File

@@ -0,0 +1,5 @@
<svg width="46" height="46" viewBox="0 0 46 46" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M31.5339 0.0352745C29.6446 0.377148 28.646 0.701031 27.3685 1.34879C26.3518 1.8706 25.3172 2.59034 24.5255 3.32807C24.0307 3.7869 23.9767 3.86787 23.9767 4.19175C23.9767 4.47964 24.0307 4.5966 24.2106 4.74055C24.6425 5.08242 24.8854 4.99246 25.794 4.17376C27.9173 2.23947 31.1831 1.15986 34.098 1.42076C36.9679 1.67268 39.2531 2.74328 41.2504 4.74055C43.4905 6.98973 44.5791 9.61676 44.5791 12.7566C44.5791 15.2937 43.8324 17.5788 42.339 19.5671C41.6192 20.5388 38.0475 24.0295 37.2288 24.5693C35.1686 25.9278 32.7485 26.6115 30.3644 26.4946C29.0778 26.4316 28.2771 26.2697 26.5498 25.7119C23.8867 24.8482 22.1144 23.4537 21.0618 21.4024C20.6209 20.5388 19.9372 18.5235 19.6853 17.3449C19.4604 16.2743 19.4604 13.9892 19.6853 12.9366C20.1351 10.8493 21.0258 9.07696 22.4023 7.53852C22.8611 7.02571 22.9871 6.82779 22.9871 6.60287C22.9871 6.22501 22.7801 5.94611 22.4563 5.87413C22.0874 5.79316 21.8445 5.94611 21.2327 6.63885C19.7752 8.28525 18.7766 10.2735 18.2998 12.4867C18.1288 13.2784 18.0929 13.7103 18.0929 15.0958C18.0929 17.0301 18.1918 17.6778 18.8036 19.5581L19.1905 20.7817L18.0659 23.1748L16.9503 25.5769L15.3399 27.1963C14.4582 28.087 13.7115 28.9057 13.6755 29.0227C13.5405 29.4725 13.9454 29.9403 14.4582 29.9403C14.5841 29.9403 15.1329 29.4635 16.0776 28.5278L17.4991 27.1064L18.2008 27.8081L18.8936 28.5008L15.4478 31.9376L12.0111 35.3833L11.3183 34.6906L10.6256 33.9888L11.7682 32.8373C12.7938 31.8026 12.9107 31.6497 12.9107 31.3618C12.9107 30.9569 12.6049 30.6601 12.191 30.6601C11.9301 30.6601 11.7502 30.795 10.6976 31.8476L9.501 33.0352L8.9612 33.0082C8.57434 32.9902 8.34042 33.0352 8.07952 33.1701C7.89059 33.2691 6.15423 34.9335 4.12097 36.9757C-0.134471 41.2402 0.000480044 41.0512 0.000480044 42.6707C0.000480044 43.5793 0.0184735 43.6963 0.252388 44.1371C0.612256 44.8119 1.12507 45.3427 1.77283 45.6935C2.32163 45.9904 2.37561 45.9994 3.32926 45.9994C4.94867 45.9994 4.75074 46.1434 9.06916 41.834C13.0457 37.8574 13.0637 37.8394 12.9827 36.9667L12.9377 36.5259L16.6804 32.7833L20.423 29.0496L22.8161 27.9251L25.2182 26.8005L26.3158 27.1603C28.2681 27.7991 28.9249 27.9071 30.8592 27.9071C32.2807 27.9071 32.7215 27.8711 33.4412 27.7091C35.1956 27.3223 36.5901 26.7375 38.0295 25.7838C38.6593 25.37 39.3791 24.7222 40.9175 23.2018C43.2746 20.8716 43.9224 20.0709 44.6691 18.5595C45.6408 16.5982 45.9197 15.4376 45.9916 13.1885C46.0546 11.2902 45.9197 10.2825 45.3888 8.6991C44.7861 6.87277 43.8774 5.35233 42.5729 3.97583C40.7376 2.03254 38.5694 0.80899 35.8973 0.206211C35.2856 0.0622635 32.0557 -0.0636902 31.5339 0.0352745ZM20.396 23.1208C20.8908 23.8585 22.0694 25.0281 22.8251 25.5319C23.158 25.7569 23.4369 25.9548 23.4369 25.9818C23.4369 26.0088 22.6902 26.3776 21.7815 26.8005L20.1261 27.5742L19.2714 26.7105L18.4167 25.8468L19.1905 24.2004C19.6133 23.3008 19.9732 22.563 19.9912 22.563C20.0002 22.563 20.1801 22.8149 20.396 23.1208ZM10.2747 35.7162C10.9855 36.4269 11.5612 37.0567 11.5612 37.1377C11.5612 37.2097 11.3093 37.5245 11.0034 37.8304L10.4367 38.3972L9.02417 36.9847L7.60269 35.5633L8.16049 35.0055C8.46638 34.6906 8.78126 34.4387 8.86223 34.4387C8.93421 34.4387 9.57297 35.0145 10.2747 35.7162ZM8.77227 40.0616L8.1425 40.6914L6.73001 39.2789L5.30854 37.8574L5.9383 37.2276L6.56807 36.5979L7.98056 38.0104L9.40204 39.4318L8.77227 40.0616ZM5.71339 40.3315L7.10788 41.726L5.84834 42.9855C4.47184 44.371 4.11197 44.6049 3.39224 44.6049C2.58253 44.6049 1.92577 44.2091 1.56591 43.5073C1.35898 43.0935 1.34099 42.3018 1.52992 41.843C1.65587 41.5551 4.12097 38.937 4.27391 38.937C4.3009 38.937 4.94867 39.5668 5.71339 40.3315Z" fill="white"/>
<path d="M31.5613 3.53503C30.2028 3.77794 28.7274 4.40771 27.6658 5.19942C26.8561 5.8112 23.5453 9.16697 23.0774 9.86871C20.5494 13.6563 21.0712 18.7125 24.319 21.8613C25.1467 22.662 25.9024 23.1838 26.892 23.6427C29.879 25.0371 33.4057 24.7493 36.1676 22.8959C36.9144 22.3921 40.3511 18.9734 40.8819 18.1997C44.1927 13.4044 42.5733 6.93578 37.4272 4.37172C35.7178 3.51704 33.4416 3.19316 31.5613 3.53503ZM33.3337 5.51431L32.6679 6.18906L32.1011 5.63126C31.7952 5.32537 31.5613 5.05547 31.5793 5.03748C31.6783 4.93851 32.353 4.85755 33.1538 4.84855L33.9994 4.83955L33.3337 5.51431ZM37.0223 5.7932C37.2473 5.91916 37.6251 6.16207 37.868 6.333L38.3089 6.65689L37.0133 7.95241L35.7178 9.24794L34.7102 8.2403L33.6936 7.22368L34.7012 6.21605L35.6998 5.21741L36.1586 5.39735C36.4106 5.49631 36.7974 5.67624 37.0223 5.7932ZM30.7966 6.39598L31.6243 7.22368L30.2928 8.55519L28.9703 9.87771L27.9537 8.86108L26.937 7.84445L27.6388 7.1697C28.0256 6.80083 28.4755 6.39598 28.6464 6.27902C28.9613 6.0631 29.834 5.55929 29.9149 5.55929C29.9419 5.55929 30.3378 5.93715 30.7966 6.39598ZM39.8833 8.46522C40.1082 8.81609 40.4051 9.36489 40.54 9.68877L40.792 10.2826L39.7843 11.2992L38.7767 12.3068L37.7691 11.2992L36.7524 10.2826L38.03 9.00502C38.7317 8.30328 39.3435 7.75448 39.3885 7.78147C39.4334 7.80846 39.6584 8.11435 39.8833 8.46522ZM33.3607 11.6051L32.0292 12.9366L31.0215 11.929L30.0049 10.9123L31.3274 9.58981L32.6589 8.2583L33.6666 9.26593L34.6832 10.2826L33.3607 11.6051ZM26.6311 12.2168L25.3266 13.5214L24.4719 12.6667L23.6172 11.821L23.9051 11.3172C24.274 10.6514 24.6069 10.2196 25.3176 9.49085L25.9114 8.88807L26.919 9.8957L27.9357 10.9123L26.6311 12.2168ZM36.4196 14.664L35.088 15.9955L34.0804 14.9878L33.0638 13.9712L34.3863 12.6487L35.7178 11.3172L36.7254 12.3248L37.7421 13.3414L36.4196 14.664ZM29.69 15.2757L28.3855 16.5802L27.3779 15.5636L26.3612 14.556L27.6658 13.2515L28.9703 11.9469L29.9779 12.9546L30.9945 13.9712L29.69 15.2757ZM41.1338 13.0895C41.0619 14.601 41.0709 14.592 40.3871 13.9172L39.8113 13.3504L40.4591 12.6937C40.8189 12.3338 41.1248 12.0369 41.1518 12.0369C41.1698 12.0369 41.1608 12.5137 41.1338 13.0895ZM23.6622 15.1858C23.3204 15.5276 23.0055 15.8155 22.9695 15.8155C22.8615 15.8155 22.8795 14.8439 22.9965 14.0522L23.1044 13.3684L23.6982 13.9622L24.292 14.556L23.6622 15.1858ZM40.1712 16.5982C39.7843 17.291 39.4514 17.7138 38.7407 18.4516L38.1469 19.0543L37.1393 18.0467L36.1227 17.0301L37.4452 15.7076L38.7767 14.3761L39.6224 15.2217L40.4681 16.0674L40.1712 16.5982ZM32.7489 18.3346L31.4444 19.6391L30.4367 18.6225L29.4201 17.6149L30.7246 16.3103L32.0292 15.0058L33.0368 16.0135L34.0534 17.0301L32.7489 18.3346ZM26.3612 16.6252L27.3509 17.6149L26.0554 18.9104L24.7598 20.2149L24.4629 19.8281C24.0941 19.3422 23.5813 18.4066 23.4373 17.9388L23.3294 17.5969L24.301 16.6162C24.8408 16.0764 25.2996 15.6356 25.3266 15.6356C25.3536 15.6356 25.8214 16.0854 26.3612 16.6252ZM36.4196 20.7727C36.0327 21.1416 35.3759 21.6634 34.9531 21.9153L34.1884 22.3831L33.3337 21.5284L32.479 20.6737L33.7835 19.3692L35.088 18.0647L36.1047 19.0813L37.1213 20.089L36.4196 20.7727ZM29.4201 19.6841L30.4098 20.6737L29.4021 21.6814L28.4035 22.68L27.8367 22.4731C27.5218 22.3561 26.928 22.0323 26.5232 21.7624L25.7765 21.2675L27.054 19.981C27.7647 19.2703 28.3585 18.6945 28.3855 18.6945C28.4125 18.6945 28.8803 19.1443 29.4201 19.6841ZM32.0651 22.3291L32.6319 22.8959L32.2811 22.9589C31.6423 23.0579 30.4727 23.1298 30.3108 23.0669C30.1758 23.0129 30.2568 22.9049 30.7696 22.3831C31.1115 22.0323 31.4174 21.7534 31.4444 21.7534C31.4714 21.7534 31.7503 22.0143 32.0651 22.3291Z" fill="white"/>
<path d="M33.0001 28.7798C32.3793 29.0227 31.6146 29.7245 31.3267 30.3183C31.2008 30.5792 30.4451 32.5674 29.6443 34.7446C28.5108 37.8395 28.1329 38.7752 27.89 39.0631C26.0547 41.3032 27.0083 44.668 29.7253 45.5047C31.0388 45.9185 32.6223 45.6037 33.5849 44.749C33.8548 44.5151 34.7005 44.1732 38.0113 42.9496C40.2605 42.1309 42.2397 41.3842 42.4017 41.3032C43.5532 40.7184 44.291 39.207 44.0481 37.9025C43.9941 37.6146 43.8591 37.1917 43.7512 36.9668C43.4813 36.391 42.7076 35.6623 42.1768 35.4644C41.9428 35.3834 41.7179 35.2844 41.6729 35.2485C41.637 35.2215 41.6549 34.9606 41.6999 34.6817C41.9608 33.3052 41.1871 31.8117 39.9006 31.2089C39.4597 31.002 39.2978 30.975 38.3981 30.975H37.3995L37.2016 30.5072C36.9317 29.8594 36.4189 29.3106 35.7441 28.9508C35.2313 28.6719 35.0963 28.6449 34.3226 28.6179C33.6299 28.5909 33.378 28.6269 33.0001 28.7798ZM35.0874 30.2373C35.5462 30.4982 35.924 31.047 35.996 31.5688L36.05 31.9826L33.423 35.2844C31.3897 37.8215 30.7509 38.5682 30.643 38.5233C30.562 38.4873 30.3641 38.4153 30.2021 38.3613C30.0402 38.3073 29.9232 38.2264 29.9502 38.1724C29.9682 38.1274 30.58 36.463 31.3087 34.4837C32.7032 30.6961 32.8202 30.4442 33.4679 30.1563C33.8998 29.9674 34.6735 30.0034 35.0874 30.2373ZM39.1539 32.4685C39.4687 32.5854 39.9636 33.0443 40.1435 33.4041C40.3414 33.773 40.3324 34.5017 40.1255 34.9246C39.9906 35.2035 39.2438 35.8512 36.4908 38.0464L33.0181 40.8174L32.4243 40.2326L31.8215 39.6388L34.5565 36.2021C37.5255 32.4775 37.6424 32.3695 38.4701 32.3695C38.704 32.3695 39.0099 32.4145 39.1539 32.4685ZM41.619 36.8409C42.1408 37.1108 42.4557 37.4886 42.5996 38.0464C42.7885 38.7572 42.3747 39.6568 41.6909 39.9987C41.475 40.1067 39.8196 40.7364 38.0113 41.4022C36.2029 42.068 34.6555 42.6347 34.5745 42.6707C34.4576 42.7157 34.3856 42.6347 34.2417 42.3019C34.1337 42.068 34.0617 41.861 34.0797 41.843C34.0977 41.834 35.5822 40.6465 37.3905 39.207C39.7746 37.3087 40.7283 36.598 40.8992 36.598C41.0252 36.598 41.3491 36.7059 41.619 36.8409ZM31.3717 41.2583C32.5503 42.4278 32.9731 42.9136 32.9731 43.0666C32.9731 43.3635 32.3614 43.9213 31.8395 44.1012C31.1468 44.3351 30.481 44.2901 29.8423 43.9663C29.2575 43.6784 28.9516 43.3725 28.6277 42.7697C28.4748 42.4818 28.4298 42.2479 28.4298 41.6811C28.4298 41.0513 28.4658 40.8984 28.6997 40.4845C28.9966 39.9447 29.3025 39.6568 29.5904 39.6568C29.7073 39.6568 30.3281 40.2056 31.3717 41.2583Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 9.5 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 28 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 28 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -9,7 +9,7 @@ Widget commonGlassContainer({
required double border,
double opacity1 = 0.04,
double opacity2 = 0.05,
Color borderColor = const Color(0xff434A53),
Color borderColor = const Color(0xff434A53),
}) {
return GlassmorphicContainer(
width: width,
@@ -33,11 +33,48 @@ Widget commonGlassContainer({
borderGradient: LinearGradient(
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [
borderColor,
borderColor,
],
colors: [
borderColor,
borderColor,
],
),
child: customWidget);
}
Widget commonGlassContainerblue({
required double width,
required double height,
required double borderradius,
required Widget customWidget,
required double border,
Color borderColor = const Color(0xff434A53),
}) {
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(0xFF009DAB).withOpacity(0.48),
Color(0xFF009DAB).withOpacity(0.30),
],
stops: const [
0.1,
1,
],
),
borderGradient: LinearGradient(
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [
borderColor,
borderColor,
],
),
child: customWidget);
}

View File

@@ -211,7 +211,6 @@ Widget stackContainers({
}) {
return Row(
children: [
SizedBox(width: 12),
Stack(
clipBehavior: Clip.none,
children: [

View File

@@ -141,13 +141,13 @@ class _CustomTextFormFieldState extends State<CustomTextFormField> {
),
style: const TextStyle(color: Colors.white),
keyboardType: widget.texttype,
validator: widget.validator ??
(value) {
if (value == null || value.isEmpty) {
return "Empty value";
}
return null;
},
// validator: widget.validator ??
// (value) {
// if (value == null || value.isEmpty) {
// return "Empty value";
// }
// return null;
// },
inputFormatters: widget.inputFormatters,
onChanged: (value) {
widget.onInput?.call(value);

27
lib/Common/global.dart Normal file
View File

@@ -0,0 +1,27 @@
import 'package:geolocator/geolocator.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
LatLng? latlong;
getLocation() async {
LocationPermission permission = await Geolocator.checkPermission();
if (permission == LocationPermission.denied ||
permission == LocationPermission.deniedForever) {
permission = await Geolocator.requestPermission();
// } else {
Position currentP = await Geolocator.getCurrentPosition(
desiredAccuracy: LocationAccuracy.best);
latlong = LatLng(currentP.latitude, currentP.longitude);
} else {
// Position currentP = await Geolocator.getCurrentPosition(
// desiredAccuracy: LocationAccuracy.best);
// latlong = LatLng(prefs.getDouble('lat')!, prefs.getDouble('long')!);
Position currentP = await Geolocator.getCurrentPosition(
desiredAccuracy: LocationAccuracy.best);
latlong = LatLng(currentP.latitude, currentP.longitude);
}
print(latlong);
print('done');
}

View File

@@ -1,5 +1,6 @@
import 'dart:io';
import 'package:dotted_border/dotted_border.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
@@ -97,59 +98,66 @@ class _AddEventState extends State<AddEvent> {
},
);
},
child: commonGlassContainer(
border: 0.9,
width: double.infinity,
height: 130.h,
borderradius: 10.r,
customWidget: bannerPath.isNotEmpty && isbannerAdded
? Stack(children: [
Image.file(
bannerPath[0]!,
fit: BoxFit.cover,
width: double.infinity,
child: DottedBorder(
strokeWidth: 1,
dashPattern: [7, 4],
borderType: BorderType.RRect,
radius: Radius.circular(14.r),
color: Color(0xFF434A53),
child: commonGlassContainer(
border: 0,
width: double.infinity,
height: 130.h,
borderradius: 10.r,
customWidget: bannerPath.isNotEmpty && isbannerAdded
? Stack(children: [
Image.file(
bannerPath[0]!,
fit: BoxFit.cover,
width: double.infinity,
),
Positioned(
right: 5,
bottom: 5,
child: GestureDetector(
onTap: () {
bannerPath.clear();
isbannerAdded = false;
setState(() {});
},
child: Container(
width: 27,
height: 27,
decoration: ShapeDecoration(
color: Color(0xFF7E7E7E),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(5)),
),
child: Icon(
Icons.delete_outline_outlined,
color: Colors.white,
))),
),
])
: 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"),
],
),
),
Positioned(
right: 5,
bottom: 5,
child: GestureDetector(
onTap: () {
bannerPath.clear();
isbannerAdded = false;
setState(() {});
},
child: Container(
width: 27,
height: 27,
decoration: ShapeDecoration(
color: Color(0xFF7E7E7E),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(5)),
),
child: Icon(
Icons.delete_outline_outlined,
color: Colors.white,
))),
),
])
: 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),

View File

@@ -1,13 +1,12 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:get/get_connect/http/src/utils/utils.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/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';

View File

@@ -5,8 +5,8 @@ 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/CommonTextFormField.dart';
import 'package:regroup/Common/controller/MainScreen.dart';
import 'package:regroup/Utils/Common/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';

View File

@@ -4,8 +4,8 @@ import 'package:get/get.dart';
import 'package:glassmorphism/glassmorphism.dart';
import 'package:regroup/Common/CommonGlassmorphism.dart';
import 'package:regroup/Common/CommonWidget.dart';
import 'package:regroup/Common/controller/CommonTextFormField.dart';
import 'package:regroup/Utils/Common/CommonAppbar.dart';
import 'package:regroup/Utils/Common/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';

View File

@@ -3,8 +3,8 @@ 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/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
@@ -281,4 +281,6 @@ class _ResourcePoolState extends State<ResourcePool> {
),
);
}
}

View File

@@ -117,7 +117,7 @@ class _ChatsMainScreenState extends State<ChatsMainScreen> {
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
child: Scaffold(
resizeToAvoidBottomInset: false,
key: _scaffoldKey1,

View File

@@ -62,10 +62,15 @@ class _CommunityScreenState extends State<CommunityScreen> {
height: 25.h,
),
actions: [
Image.asset(
'assets/images/png/ion_search-outline.png',
height: 25.h,
width: 25.w,
GestureDetector(
onTap: () {
Get.toNamed(RouteName.explorescreen);
},
child: Image.asset(
'assets/images/png/ion_search-outline.png',
height: 25.h,
width: 25.w,
),
),
sizedBoxWidth(10.w),
GestureDetector(
@@ -173,7 +178,7 @@ Widget feedTab() {
Container(
width: double.infinity,
height: 47.h,
color: Color(0xFFD90B2E),
color: Color(0xFF009DAB),
child: Padding(
padding: EdgeInsets.only(left: 16.w),
child: Row(
@@ -184,7 +189,7 @@ Widget feedTab() {
),
),
),
normalcardtile(
announcecardtile(
profileImg: 'assets/images/png/Ellipse 48.png',
title: 'Jocelyn Dokidis',
mainImg: 'assets/images/png/Rectangle 46.png',
@@ -212,7 +217,7 @@ Widget feedTab() {
]));
}
Widget normalcardtile({
Widget announcecardtile({
required String profileImg,
required String title,
required String mainImg,
@@ -229,7 +234,7 @@ Widget normalcardtile({
}
}
return commonGlassContainer(
return commonGlassContainerblue(
width: double.infinity,
height: 570.h,
border: 0,
@@ -462,65 +467,403 @@ Widget normalcardtile({
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Obx(() {
return ReactionButton<String>(
onReactionChanged: (reaction) {
updateImage(reaction?.value ?? 'like');
debugPrint(
'Selected value: ${reaction?.value}');
},
reactions: <Reaction<String>?>[
Reaction<String>(
value: 'like',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/f7_hand-thumbsup.png'),
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
Reaction<String>(
value: 'heart',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/heart 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/heart 2.png'),
),
Reaction<String>(
value: 'party',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/party-popper 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/party-popper 2.png'),
),
],
selectedReaction: Reaction<String>(
value: 'like',
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
Obx(() {
return ReactionButton<String>(
onReactionChanged: (reaction) {
updateImage(reaction?.value ?? 'like');
debugPrint('Selected value: ${reaction?.value}');
},
reactions: <Reaction<String>?>[
Reaction<String>(
value: 'like',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/f7_hand-thumbsup.png'),
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png',
),
boxColor: Colors.white,
boxElevation: 9,
boxRadius: 30,
itemsSpacing: 8,
itemScale: 0.4,
itemSize: Size(45, 45),
boxPadding: EdgeInsets.all(8),
boxAnimationDuration: Duration(milliseconds: 200),
itemAnimationDuration:
Duration(milliseconds: 500),
hoverDuration: Duration(milliseconds: 700),
// toggle: false,
),
Reaction<String>(
value: 'heart',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/heart 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/heart 2.png'),
),
Reaction<String>(
value: 'party',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/party-popper 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/party-popper 2.png'),
),
],
selectedReaction: Reaction<String>(
value: 'like',
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbs.png'),
),
boxColor: Colors.white,
boxElevation: 2,
boxRadius: 30,
itemsSpacing: 8,
itemScale: 0.4,
itemSize: Size(45, 45),
boxPadding: EdgeInsets.all(8),
boxAnimationDuration: Duration(milliseconds: 200),
itemAnimationDuration: Duration(milliseconds: 500),
hoverDuration: Duration(milliseconds: 700),
// toggle: false,
direction: ReactionsBoxAlignment.rtl,
child: _buildReactionsIcon(mainImage.value),
);
})
],
child: _buildReactionsIcon(mainImage.value),
);
})
],
),
GestureDetector(
onTap: () {
Get.toNamed(RouteName.postdetailsScreen);
},
child: Column(
children: [
Image.asset(
'assets/images/png/Frame 1000004088.png',
height: 19.h,
width: 19.w,
),
sizedBoxHeight(8.h),
text11w400_FCFCFC('Comment')
],
),
),
Column(
children: [
Image.asset(
'assets/images/png/Frame 1000004089.png',
height: 19.h,
width: 19.w,
),
sizedBoxHeight(8.h),
text11w400_FCFCFC('Like')
text11w400_FCFCFC('Save')
],
)
],
),
sizedBoxHeight(12.h),
commonDivider(),
sizedBoxHeight(12.h),
]),
),
],
));
}
Widget normalcardtile({
required String profileImg,
required String title,
required String mainImg,
required List<String> containerTitle,
}) {
var mainImage = 'assets/images/png/uiw_like-o.png'.obs;
void updateImage(String reaction) {
if (reaction == 'like') {
mainImage.value = 'assets/images/png/f7_hand-thumbsup.png';
} else if (reaction == 'heart') {
mainImage.value = 'assets/images/png/heart 2.png';
} else if (reaction == 'party') {
mainImage.value = 'assets/images/png/party-popper 2.png';
}
}
return commonGlassContainer(
width: double.infinity,
height: 570.h,
border: 0,
borderradius: 1,
customWidget: Column(
children: [
sizedBoxHeight(25.h),
Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
CircleAvatar(
foregroundImage: AssetImage(profileImg),
radius: 25.r,
),
sizedBoxWidth(12.w),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text16w400_FCFCFC(title),
sizedBoxHeight(5.h),
Row(
children: [
Image.asset(
'assets/images/png/community 1 (traced).png',
height: 14.w,
width: 14.w,
),
sizedBoxWidth(7.w),
text12w400_FCFCFC('Active alliance network'),
sizedBoxWidth(7.w),
Icon(
Icons.circle,
color: Color(0xFFFCFCFC),
size: 4.sp,
),
sizedBoxWidth(6.w),
text12w400_FCFCFC('1 Hour ago'),
],
)
],
),
Spacer(),
PopupMenuButton(
surfaceTintColor: Color(0xFF222935),
constraints: BoxConstraints.tightFor(width: 176.w),
offset: Offset(0, 50),
color: Color(0xFF222935),
tooltip: "",
itemBuilder: (BuildContext context) => <PopupMenuEntry>[
PopupMenuItem(
onTap: () {},
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 12.w),
child: Row(
children: [
Text(
'Report Post',
style: TextStyle(
fontSize: 16.sp,
color: Colors.white,
fontWeight: FontWeight.w800,
fontFamily: "Nunito Sans",
),
),
Spacer(),
Image.asset(
"assets/images/png/Vector (5).png",
height: 15.h,
width: 15.w,
)
],
),
),
),
PopupMenuDivider(),
PopupMenuItem(
onTap: () {},
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 12.w),
child: Row(
children: [
Text(
'Share post',
style: TextStyle(
fontSize: 16.sp,
color: Colors.white,
fontWeight: FontWeight.w800,
fontFamily: "Nunito Sans",
),
),
Spacer(),
Image.asset(
"assets/images/png/share.png",
height: 20.h,
width: 20.w,
)
],
),
),
),
PopupMenuDivider(),
PopupMenuItem(
onTap: () {},
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 12.w),
child: Row(
children: [
Text(
'Pin',
style: TextStyle(
fontSize: 16.sp,
color: Colors.white,
fontWeight: FontWeight.w800,
fontFamily: "Nunito Sans",
),
),
Spacer(),
Image.asset(
"assets/images/png/f7_pin-fill (2).png",
height: 25.h,
width: 25.w,
)
],
),
),
),
],
child: Image.asset(
'assets/images/png/Group 1000004071.png',
width: 16.w,
height: 18.h,
),
),
sizedBoxWidth(5.w)
],
),
),
sizedBoxHeight(20.h),
GestureDetector(
onTap: () {
Get.toNamed(RouteName.postdetailsScreen);
},
child: Container(
height: 163.h,
width: double.infinity,
child: Image.asset(
mainImg,
fit: BoxFit.cover,
),
)),
sizedBoxHeight(20.h),
Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Column(children: [
SizedBox(
height: 30.h,
child: ListView.builder(
scrollDirection: Axis.horizontal,
shrinkWrap: true,
itemCount: containerTitle.length,
itemBuilder: (context, index) {
return Padding(
padding: EdgeInsets.only(right: 12.w),
child: GestureDetector(
onTap: () {
Get.toNamed(RouteName.cyclescreen);
},
child: containertile(
text: ("#${containerTitle[index]}"))),
);
},
),
),
sizedBoxHeight(20.h),
text16w400_FCFCFC(
"Lorem Ipsum has been the industry's standard dummy text ever since the 1500s . . ."),
Row(children: [
InkWell(
onTap: () {
Get.toNamed(RouteName.reactionview);
},
child: stackReaction(number: '20', containerImages: [
'assets/images/png/f7_hand-thumbsup.png',
'assets/images/png/heart 2.png',
'assets/images/png/party-popper 2.png'
]),
),
Spacer(),
commonGlassContainer(
border: 0.43,
width: 30.w,
height: 30.h,
opacity1: 0.05,
opacity2: 0.06,
borderradius: 100,
customWidget: Center(
child: Image.asset(
'assets/images/png/Frame 1000004088.png',
height: 13.h,
width: 13.w,
),
),
),
sizedBoxWidth(12.w),
text14w400_FCFCFC('20'),
sizedBoxWidth(20.w),
commonGlassContainer(
border: 0.43,
width: 30.w,
height: 30.h,
borderradius: 100,
opacity1: 0.05,
opacity2: 0.06,
customWidget: Center(
child: Image.asset(
'assets/images/png/Vector (1).png',
height: 12.h,
width: 12.w,
),
),
),
sizedBoxWidth(12.w),
text14w400_FCFCFC('10'),
]),
sizedBoxHeight(12.h),
commonDivider(),
sizedBoxHeight(12.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Obx(() {
return ReactionButton<String>(
onReactionChanged: (reaction) {
updateImage(reaction?.value ?? 'like');
debugPrint('Selected value: ${reaction?.value}');
},
reactions: <Reaction<String>?>[
Reaction<String>(
value: 'like',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/f7_hand-thumbsup.png'),
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png',
),
),
Reaction<String>(
value: 'heart',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/heart 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/heart 2.png'),
),
Reaction<String>(
value: 'party',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/party-popper 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/party-popper 2.png'),
),
],
selectedReaction: Reaction<String>(
value: 'like',
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbs.png'),
),
boxColor: Colors.white,
boxElevation: 2,
boxRadius: 30,
itemsSpacing: 8,
itemScale: 0.4,
itemSize: Size(45, 45),
boxPadding: EdgeInsets.all(8),
boxAnimationDuration: Duration(milliseconds: 200),
itemAnimationDuration: Duration(milliseconds: 500),
hoverDuration: Duration(milliseconds: 700),
// toggle: false,
direction: ReactionsBoxAlignment.rtl,
child: _buildReactionsIcon(mainImage.value),
);
})
],
),
GestureDetector(
@@ -573,17 +916,23 @@ Widget _buildReactionsPreviewIcon(String assetPath) {
}
Widget _buildReactionsIcon(String assetPath) {
return Image.asset(
assetPath,
height: 19.h,
width: 19.w,
return Column(
children: [
Image.asset(
assetPath,
height: 19.h,
width: 19.w,
),
sizedBoxHeight(8.h),
text11w400_FCFCFC('Like')
],
);
}
Widget containertile({required String text}) {
return commonGlassContainer(
border: 1,
width: 100.w,
width: 130.w,
height: 30.h,
borderradius: 30.r,
borderColor: Color(0xFFD90B2E),

View File

@@ -369,65 +369,57 @@ Widget normalcardtile({
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Obx(() {
return ReactionButton<String>(
onReactionChanged: (reaction) {
updateImage(reaction?.value ?? 'like');
debugPrint(
'Selected value: ${reaction?.value}');
},
reactions: <Reaction<String>?>[
Reaction<String>(
value: 'like',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/f7_hand-thumbsup.png'),
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
Reaction<String>(
value: 'heart',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/heart 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/heart 2.png'),
),
Reaction<String>(
value: 'party',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/party-popper 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/party-popper 2.png'),
),
],
selectedReaction: Reaction<String>(
value: 'like',
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
boxColor: Colors.white,
boxElevation: 9,
boxRadius: 30,
itemsSpacing: 8,
itemScale: 0.4,
itemSize: Size(45, 45),
boxPadding: EdgeInsets.all(8),
boxAnimationDuration: Duration(milliseconds: 200),
itemAnimationDuration:
Duration(milliseconds: 500),
hoverDuration: Duration(milliseconds: 700),
// toggle: false,
Obx(() {
return ReactionButton<String>(
onReactionChanged: (reaction) {
updateImage(reaction?.value ?? 'like');
debugPrint('Selected value: ${reaction?.value}');
},
reactions: <Reaction<String>?>[
Reaction<String>(
value: 'like',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/f7_hand-thumbsup.png'),
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
Reaction<String>(
value: 'heart',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/heart 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/heart 2.png'),
),
Reaction<String>(
value: 'party',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/party-popper 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/party-popper 2.png'),
),
],
selectedReaction: Reaction<String>(
value: 'like',
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
boxColor: Colors.white,
boxElevation: 9,
boxRadius: 30,
itemsSpacing: 8,
itemScale: 0.4,
itemSize: Size(45, 45),
boxPadding: EdgeInsets.all(8),
boxAnimationDuration: Duration(milliseconds: 200),
itemAnimationDuration: Duration(milliseconds: 500),
hoverDuration: Duration(milliseconds: 700),
// toggle: false,
child: _buildReactionsIcon(mainImage.value),
);
})
],
),
sizedBoxHeight(8.h),
text11w400_FCFCFC('Like')
child: _buildReactionsIcon(mainImage.value),
);
})
],
),
GestureDetector(
@@ -480,9 +472,15 @@ Widget _buildReactionsPreviewIcon(String assetPath) {
}
Widget _buildReactionsIcon(String assetPath) {
return Image.asset(
assetPath,
height: 19.h,
width: 19.w,
return Column(
children: [
Image.asset(
assetPath,
height: 19.h,
width: 19.w,
),
sizedBoxHeight(8.h),
text11w400_FCFCFC('Like')
],
);
}

View File

@@ -4,8 +4,8 @@ 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/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
@@ -358,71 +358,66 @@ class _PostDetailsScreenState extends State<PostDetailsScreen> {
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Column(
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Obx(() {
return ReactionButton<String>(
onReactionChanged: (reaction) {
updateImage(reaction?.value ?? 'like');
debugPrint(
'Selected value: ${reaction?.value}');
},
reactions: <Reaction<String>?>[
Reaction<String>(
value: 'like',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/f7_hand-thumbsup.png'),
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
Reaction<String>(
value: 'heart',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/heart 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/heart 2.png'),
),
Reaction<String>(
value: 'party',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/party-popper 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/party-popper 2.png'),
),
],
selectedReaction: Reaction<String>(
value: 'like',
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
boxColor: Colors.white,
boxElevation: 9,
boxRadius: 30,
itemsSpacing: 8,
itemScale: 0.4,
itemSize: Size(45, 45),
boxPadding: EdgeInsets.all(8),
boxAnimationDuration: Duration(milliseconds: 200),
itemAnimationDuration:
Duration(milliseconds: 500),
hoverDuration: Duration(milliseconds: 700),
// toggle: false,
Obx(() {
return ReactionButton<String>(
onReactionChanged: (reaction) {
updateImage(reaction?.value ?? 'like');
debugPrint(
'Selected value: ${reaction?.value}');
},
reactions: <Reaction<String>?>[
Reaction<String>(
value: 'like',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/f7_hand-thumbsup.png'),
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
Reaction<String>(
value: 'heart',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/heart 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/heart 2.png'),
),
Reaction<String>(
value: 'party',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/party-popper 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/party-popper 2.png'),
),
],
selectedReaction: Reaction<String>(
value: 'like',
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
boxColor: Colors.white,
boxElevation: 9,
boxRadius: 30,
itemsSpacing: 8,
itemScale: 0.4,
itemSize: Size(45, 45),
boxPadding: EdgeInsets.all(8),
boxAnimationDuration:
Duration(milliseconds: 200),
itemAnimationDuration:
Duration(milliseconds: 500),
hoverDuration: Duration(milliseconds: 700),
// toggle: false,
child: _buildReactionsIcon(mainImage.value),
);
})
],
),
child: _buildReactionsIcon(mainImage.value),
);
})
],
),
sizedBoxHeight(8.h),
text11w400_FCFCFC('Like')
],
),
Column(
@@ -472,10 +467,16 @@ class _PostDetailsScreenState extends State<PostDetailsScreen> {
}
Widget _buildReactionsIcon(String assetPath) {
return Image.asset(
assetPath,
height: 19.h,
width: 19.w,
return Column(
children: [
Image.asset(
assetPath,
height: 19.h,
width: 19.w,
),
sizedBoxHeight(8.h),
text11w400_FCFCFC('Like')
],
);
}
}

View File

@@ -1,6 +1,8 @@
import 'dart:io';
import 'package:dotted_border/dotted_border.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_reaction_button/flutter_reaction_button.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
@@ -15,6 +17,7 @@ import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
import 'package:regroup/resources/routes/route_name.dart';
import 'package:remove_emoji_input_formatter/remove_emoji_input_formatter.dart';
class PostScreen extends StatefulWidget {
const PostScreen({super.key});
@@ -80,64 +83,73 @@ class _PostScreenState extends State<PostScreen> {
},
);
},
child: commonGlassContainer(
border: 0.9,
width: double.infinity,
height: 130.h,
borderradius: 10.r,
customWidget: bannerPath.isNotEmpty && isbannerAdded
? Stack(children: [
Image.file(
bannerPath[0]!,
fit: BoxFit.cover,
width: double.infinity,
),
Positioned(
right: 5,
bottom: 5,
child: GestureDetector(
onTap: () {
bannerPath.clear();
isbannerAdded = false;
setState(() {});
},
child: Container(
width: 27,
height: 27,
decoration: ShapeDecoration(
color: Color(0xFF7E7E7E),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(5)),
),
child: Icon(
Icons.delete_outline_outlined,
color: Colors.white,
))),
),
])
: 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),
text14w400_FCFCFC("Upload image"),
sizedBoxHeight(8.h),
text8w400_8A8A8A(
"Allowed file extensions: jpg, png, gif Max file size: 10 MB"),
],
),
)),
child: DottedBorder(
strokeWidth: 1,
dashPattern: [7, 4],
borderType: BorderType.RRect,
radius: Radius.circular(14.r),
color: Color(0xFF434A53),
child: commonGlassContainer(
border: 0,
width: double.infinity,
height: 130.h,
borderradius: 10.r,
customWidget: bannerPath.isNotEmpty && isbannerAdded
? Stack(children: [
Image.file(
bannerPath[0]!,
fit: BoxFit.cover,
width: double.infinity,
),
Positioned(
right: 5,
bottom: 5,
child: GestureDetector(
onTap: () {
bannerPath.clear();
isbannerAdded = false;
setState(() {});
},
child: Container(
width: 27,
height: 27,
decoration: ShapeDecoration(
color: Color(0xFF7E7E7E),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(
5)),
),
child: Icon(
Icons.delete_outline_outlined,
color: Colors.white,
))),
),
])
: 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),
text14w400_FCFCFC("Upload image"),
sizedBoxHeight(8.h),
text8w400_8A8A8A(
"Allowed file extensions: jpg, png, gif Max file size: 10 MB"),
],
),
)),
),
),
sizedBoxHeight(25.h),
text16w400_FCFCFC("Tags"),
sizedBoxHeight(18.h),
CustomDropDownTag(
CustomDropDownTag1(
header: "Enter tags",
title: "Enter tags",
listData: [
@@ -190,7 +202,19 @@ class _PostScreenState extends State<PostScreen> {
sizedBoxHeight(30.h),
text16w400_FCFCFC("CTA Title"),
sizedBoxHeight(18.h),
CustomTextFormField(),
CustomTextFormField(
// validationMessage: "Enter a CTA Title",
validator: (val) {
if (val == null || val.isEmpty) {
return 'Enter a CTA Title';
}
return null;
},
inputFormatters: [
LengthLimitingTextInputFormatter(20),
RemoveEmojiInputFormatter()
],
),
sizedBoxHeight(25.h),
text16w400_FCFCFC("Post as"),
sizedBoxHeight(18.h),
@@ -326,5 +350,4 @@ class _PostScreenState extends State<PostScreen> {
);
});
}
}

View File

@@ -0,0 +1,195 @@
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/CommonTabBar.dart';
import 'package:regroup/Common/CommonWidget.dart';
import 'package:regroup/Common/controller/CommonTextFormField.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
class DetailExplore extends StatefulWidget {
const DetailExplore({super.key});
@override
State<DetailExplore> createState() => _DetailExploreState();
}
class _DetailExploreState extends State<DetailExplore> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color(0xFF222935),
extendBody: true,
body: SafeArea(
child: Stack(children: [
const CommonBlurLeftRed(),
const CommonBlurRightRed(),
const CommonBlurLeft(),
const CommonBlurRight(),
Positioned.fill(
child: Column(children: [
sizedBoxHeight(20.h),
commonDivider(),
sizedBoxHeight(20.h),
Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Row(
children: [
GestureDetector(
onTap: () {
Get.back();
},
child: commonGlassContainer(
width: 40.w,
height: 40.h,
borderradius: 100,
customWidget: Center(
child: Icon(
Icons.arrow_back,
color: Colors.white,
)),
border: 1,
borderColor: Color(0xFF55434F)),
),
sizedBoxWidth(12.w),
Expanded(
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: "",
),
),
],
),
),
sizedBoxHeight(30.h),
Expanded(
child: DefaultTabController(
length: 4,
// initialIndex: selectedIndex.value,
child: Column(children: [
CommonTabBar(tabs: const [
Tab(
text: 'All',
),
Tab(
text: 'Events',
),
Tab(
text: 'Groups',
),
Tab(
text: 'Communities',
),
]),
Expanded(
child: TabBarView(
children: [
allTab(),
eventsTab(),
groupsTab(),
communitiesTab(),
],
),
),
])),
)
]))
])));
}
Widget allTab() {
List alldata = [
{
"imagePath": "assets/images/png/notification1.png",
"title": "Kartikey gautam"
},
{
"imagePath": "assets/images/png/notification2.png",
"title": "Kartikey gautam"
},
{
"imagePath": "assets/images/png/notification1.png",
"title": "Kartikey gautam"
},
];
return Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
sizedBoxHeight(30.h),
text16w700_FCFCFC("People"),
sizedBoxHeight(16.h),
ListView.builder(
shrinkWrap: true,
itemCount: alldata.length,
itemBuilder: (context, index) {
return Column(
children: [
rowTile(
imagePath: alldata[index]["imagePath"],
title: alldata[index]["title"]),
if (index != alldata.length - 1) commonDivider()
],
);
},
)
],
),
);
}
Widget rowTile({required String imagePath, required String title}) {
return Padding(
padding: EdgeInsets.symmetric(
vertical: 16.h,
),
child: Row(
children: [
Container(
height: 30.h,
width: 30.w,
decoration: BoxDecoration(
border: Border.all(color: Color(0xFF434A53), width: 0.5.w),
shape: BoxShape.circle,
),
child: Center(child: Image.asset(imagePath, fit: BoxFit.fill)),
),
sizedBoxWidth(12.w),
text16400white(title),
],
),
);
}
Widget eventsTab() {
return Column(
children: [],
);
}
Widget groupsTab() {
return Column(
children: [],
);
}
Widget communitiesTab() {
return Column(
children: [],
);
}
}

View File

@@ -0,0 +1,317 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:google_maps_flutter/google_maps_flutter.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/CustomTextformfield.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/Common/global.dart' as global;
import 'package:regroup/resources/routes/route_name.dart';
class ExploreScreen extends StatefulWidget {
const ExploreScreen({super.key});
@override
State<ExploreScreen> createState() => _ExploreScreenState();
}
class _ExploreScreenState extends State<ExploreScreen> {
GoogleMapController? _mapController;
double _zoomLevel = 18.0;
@override
void initState() {
global.getLocation();
_showInitialBottomSheet();
super.initState();
}
Future<void> _showInitialBottomSheet() async {
await Future.delayed(Duration(milliseconds: 400));
exploreBottomSheet();
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color(0xFF222935),
extendBody: true,
// appBar: CommonAppbar(
// titleTxt: "",
// ),
body: Stack(children: [
const CommonBlurLeftRed(),
const CommonBlurRightRed(),
const CommonBlurLeft(),
const CommonBlurRight(),
Positioned.fill(
child: Stack(children: [
GoogleMap(
mapType: MapType.normal,
mapToolbarEnabled: true,
onMapCreated: (controller) {
_mapController = controller;
_mapController!.animateCamera(
CameraUpdate.newCameraPosition(
CameraPosition(
target: global.latlong!,
zoom: _zoomLevel,
),
),
);
},
zoomControlsEnabled: false,
initialCameraPosition: CameraPosition(
target: global.latlong!,
zoom: _zoomLevel,
),
markers: {
Marker(
markerId: MarkerId('currentP'),
icon: BitmapDescriptor.defaultMarker,
position: global.latlong!,
onTap: () {
exploreBottomSheet2();
},
),
},
),
Positioned(
top: 50.h,
child: SizedBox(
width: 350.w,
child: GestureDetector(
onTap: () {
Get.toNamed(RouteName.searchgroup);
},
child: AbsorbPointer(
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 groups",
),
),
),
))
]))
]));
}
void exploreBottomSheet2() {
Get.bottomSheet(
Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(10.r),
topRight: Radius.circular(10.r),
),
color: Color(0xFF222935),
),
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: [
sizedBoxHeight(10.h),
Stack(clipBehavior: Clip.none, children: [
Container(
height: 130.h,
width: double.infinity,
decoration:
BoxDecoration(borderRadius: BorderRadius.circular(5.r)),
child: Image.asset(
"assets/images/png/Rectangle 32.png",
fit: BoxFit.cover,
),
),
Positioned(
bottom: -40.h,
right: 0,
left: 0,
child: Align(
alignment: Alignment.center,
child: Container(
height: 85.h,
width: 85.w,
decoration: BoxDecoration(
shape: BoxShape.circle,
),
child: Image.asset("assets/images/png/Ellipse 37.png",
fit: BoxFit.cover),
),
))
]),
sizedBoxHeight(50.h),
text20w700_FCFCFC("Iron titans fitness crew"),
sizedBoxHeight(25.h),
text14400whiteblur(
"Lorem Ipsum has been the industry's standard dummy text ever since the 1500s",
textAlign: TextAlign.center),
sizedBoxHeight(25.h),
commonDivider(),
sizedBoxHeight(25.h),
Row(
children: [
commonGlassContainer(
width: 30.w,
height: 30.h,
borderradius: 100,
customWidget: Center(
child: Image.asset(
"assets/images/png/community 1 (traced).png",
height: 18.h,
width: 18.w,
),
),
border: 0.5),
sizedBoxWidth(10.w),
text16400white("10 subgroups "),
Spacer(),
commonGlassContainer(
width: 30.w,
height: 30.h,
borderradius: 100,
customWidget: Center(
child: Image.asset(
"assets/images/png/ph_users-light.png",
height: 18.h,
width: 18.w,
)),
border: 0.5),
sizedBoxWidth(10.w),
text16400white("7 members"),
],
),
sizedBoxHeight(30.h),
Row(
children: [
commonGlassContainer(
width: 170.w,
height: 35.h,
opacity1: 0.05,
opacity2: 0.07,
borderradius: 30.r,
customWidget: Center(child: text14w400_FCFCFC("Message")),
border: 1),
Spacer(),
Container(
width: 170.w,
height: 35.h,
decoration: BoxDecoration(
color: Color(0xFFD90B2E),
borderRadius: BorderRadius.circular(30.r)),
child: Center(child: text14400white("Visit group")),
),
],
),
sizedBoxHeight(30.h)
],
),
),
),
);
}
void exploreBottomSheet() {
List exploreData = [
{
"imagePath": "assets/images/png/Rectangle 29.png",
"title": "Iron titans fitness crew",
"subtitle": "Elm street london, United Kingdom"
},
{
"imagePath": "assets/images/png/Rectangle 31ee.png",
"title": "Iron titans fitness crew",
"subtitle": "Elm street london, United Kingdom"
},
{
"imagePath": "assets/images/png/Rectangle 45.png",
"title": "Iron titans fitness crew",
"subtitle": "Elm street london, United Kingdom"
},
];
Get.bottomSheet(
Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(10.r),
topRight: Radius.circular(10.r),
),
color: Color(0xFF222935),
),
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
sizedBoxHeight(20.h),
text18w700_FCFCFC('Explore groups and business'),
sizedBoxHeight(25.h),
Column(
children: List.generate(exploreData.length, (index) {
return Column(
children: [
rowtile(
imagePath: exploreData[index]["imagePath"],
title: exploreData[index]["title"],
subtitle: exploreData[index]["subtitle"]),
if (exploreData.length - 1 != index) commonDivider(),
],
);
}),
),
sizedBoxHeight(30.h),
],
),
),
),
);
}
Widget rowtile(
{required String imagePath,
required String title,
required String subtitle}) {
return Padding(
padding: EdgeInsets.symmetric(vertical: 15.h),
child: Row(
children: [
Container(
height: 50.h,
width: 50.w,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(5.r),
),
child: Image.asset(imagePath),
),
sizedBoxWidth(10.w),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text16w400_FCFCFC(title),
sizedBoxHeight(6.h),
text12400whiteblur(subtitle),
],
)
],
),
);
}
}

View File

@@ -0,0 +1,149 @@
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 SearchGroup extends StatefulWidget {
const SearchGroup({super.key});
@override
State<SearchGroup> createState() => _SearchGroupState();
}
class _SearchGroupState extends State<SearchGroup> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color(0xFF222935),
extendBody: true,
body: SafeArea(
child: Stack(children: [
const CommonBlurLeftRed(),
const CommonBlurRightRed(),
const CommonBlurLeft(),
const CommonBlurRight(),
Positioned.fill(
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Column(children: [
sizedBoxHeight(20.h),
commonDivider(),
sizedBoxHeight(20.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
SizedBox(
width: 300.w,
child: CustomTextFormField(
leadingIcon: SizedBox(
height: 23,
width: 23,
child: Center(
child: Image.asset(
"assets/images/png/ion_search-outline.png",
height: 23,
width: 23,
),
),
),
hintText: "Search groups",
),
),
text14400white("Cancel"),
],
),
sizedBoxHeight(25.h),
Row(
children: [
text18w700white("Recent"),
Spacer(),
text16w400_FCFCFCblur("See all"),
],
),
sizedBoxHeight(30.h),
GestureDetector(
onTap: () {
Get.toNamed(RouteName.detailexplore);
},
child: rowTile(
imagePath: "assets/images/png/ion_search-outline.png",
title: "Athletes"),
),
sizedBoxHeight(12.h),
commonDivider(),
sizedBoxHeight(16.h),
Row(
children: [
CircleAvatar(
radius: 15.r,
backgroundImage:
AssetImage("assets/images/png/cimg3.png"),
),
sizedBoxWidth(12.w),
text16400white("Kartikey gautam"),
Spacer(),
Icon(
Icons.clear,
color: Colors.white,
)
],
),
sizedBoxHeight(12.h),
commonDivider(),
sizedBoxHeight(16.h),
rowTile(
imagePath: "assets/images/png/Black.png",
title: "Athletes"),
sizedBoxHeight(12.h),
commonDivider(),
sizedBoxHeight(16.h),
rowTile(
imagePath: "assets/images/png/Vector (5)aa.png",
title: "Athletes"),
sizedBoxHeight(12.h),
commonDivider(),
sizedBoxHeight(16.h),
rowTile(
imagePath: "assets/images/png/calender.png",
title: "Athletes"),
sizedBoxHeight(12.h),
commonDivider(),
sizedBoxHeight(16.h),
])))
]),
));
}
Widget rowTile({required String imagePath, required String title}) {
return Row(
children: [
commonGlassContainer(
width: 30.w,
height: 30.h,
borderradius: 100,
customWidget: Center(
child: Image.asset(
imagePath,
height: 16.h,
width: 16.w,
),
),
border: 0.5),
sizedBoxWidth(12.w),
text16400white(title),
Spacer(),
Icon(
Icons.clear,
color: Colors.white,
)
],
);
}
}

View File

@@ -0,0 +1,169 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:regroup/Common/CommonGlassmorphism.dart';
import 'package:regroup/Common/CommonWidget.dart';
import 'package:regroup/Utils/Common/CommonAppbar.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
import 'package:regroup/resources/routes/route_name.dart';
class ConnectCommunity extends StatefulWidget {
const ConnectCommunity({super.key});
@override
State<ConnectCommunity> createState() => _ConnectCommunityState();
}
class _ConnectCommunityState extends State<ConnectCommunity> {
List communityData = [
{
"imagePath": "assets/images/png/img2.png",
"text": "Active alliance network",
"members": "7 members"
},
{
"imagePath": "assets/images/png/img34.png",
"text": "FitFam federation",
"members": "7 members"
},
];
@override
Widget build(BuildContext context) {
return Scaffold(
// key: _scaffoldKey1,
backgroundColor: Color(0xFF222935),
extendBody: true,
appBar: CommonAppbar(
titleTxt: "Connect with communities",
),
body: Stack(children: [
const CommonBlurLeftRed(),
const CommonBlurRightRed(),
const CommonBlurLeft(),
const CommonBlurRight(),
Positioned.fill(
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child:
Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
sizedBoxHeight(30.h),
Expanded(
child: ListView.builder(
shrinkWrap: true,
physics: BouncingScrollPhysics(),
itemCount: communityData.length,
itemBuilder: (context, index) {
return communityCard(
ontap: () {},
imagepath: communityData[index]['imagePath'],
title: communityData[index]['text'],
members: communityData[index]['members']);
},
),
)
]),
))
]));
}
Widget communityCard({
required String imagepath,
required String title,
required void Function()? ontap,
required String members,
}) {
return Padding(
padding: EdgeInsets.only(bottom: 25.h),
child: GestureDetector(
onTap: ontap,
child: commonGlassContainer(
border: 0.9,
width: double.infinity,
height: 162.h,
borderradius: 10.r,
customWidget: Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 16.h),
child: Column(
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
height: 65.h,
width: 65.h,
decoration: BoxDecoration(
shape: BoxShape.circle,
// color: Colors.amber,
),
child:
// Center(
// child: Image.asset(imagepath, fit: BoxFit.cover)),
CircleAvatar(
backgroundImage: AssetImage(
imagepath,
),
),
),
sizedBoxWidth(13.w),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text18w700_FCFCFC(title),
sizedBoxHeight(10.h),
Row(
children: [
Image.asset(
"assets/images/png/community 1 (traced).png",
height: 20.h,
width: 20.w,
),
sizedBoxWidth(3.w),
text14w400_FCFCFCblur("10 groups")
],
),
],
),
Spacer(),
],
),
sizedBoxHeight(16.h),
commonDivider(),
sizedBoxHeight(10.h),
Expanded(
child: Row(
children: [
stackContainers(
number: "+2",
containerImages: [
"assets/images/png/cimg3.png",
"assets/images/png/cimg2.png",
"assets/images/png/cimg3.png",
"assets/images/png/cimg2.png",
],
),
sizedBoxWidth(95.w),
text12w400_FCFCFC_blur(members),
Spacer(),
Container(
height: 30.h,
width: 123.w,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(30.r),
color: Color(0xFFD90B2E)),
child: Center(
child: text14w400_FCFCFC("Request to join")),
)
],
),
)
],
),
)),
),
);
}
}

View File

@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:regroup/Common/CommonGlassmorphism.dart';
import 'package:regroup/Common/CommonWidget.dart';
import 'package:regroup/Utils/Common/CommonAppbar.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
@@ -16,6 +17,20 @@ class GroupSettings extends StatefulWidget {
}
class _GroupSettingsState extends State<GroupSettings> {
var selectedIndex = (-1).obs;
List eventData = [
{
"title": "Public",
},
{
"title": "Private - Request to join",
},
{
"title": "Private - Invite only",
},
];
@override
Widget build(BuildContext context) {
return Scaffold(
@@ -35,18 +50,23 @@ class _GroupSettingsState extends State<GroupSettings> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
sizedBoxHeight(30.h),
Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Row(
children: [
text18w400_FCFCFC("Group type"),
Spacer(),
Icon(
Icons.arrow_forward_ios_outlined,
color: Colors.white,
size: 18.sp,
)
],
GestureDetector(
onTap: () {
inviteBottomSheet();
},
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Row(
children: [
text18w400_FCFCFC("Group type"),
Spacer(),
Icon(
Icons.arrow_forward_ios_outlined,
color: Colors.white,
size: 18.sp,
)
],
),
),
),
sizedBoxHeight(25.h),
@@ -74,4 +94,85 @@ class _GroupSettingsState extends State<GroupSettings> {
]))
]));
}
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(30.h),
text18w400white("Choose"),
Obx(
() => Column(
children: List.generate(eventData.length, (index) {
return Column(
children: [
sizedBoxHeight(10.h),
eventWidget(
index: index,
title: eventData[index]["title"],
isSelected: selectedIndex.value == index,
onSelectedChanged: (int? value) {
selectedIndex.value = value ?? -1;
},
),
if (index != eventData.length - 1) commonDivider(),
],
);
}),
),
),
sizedBoxHeight(30.h),
],
),
),
);
},
),
);
}
Widget eventWidget({
required int index,
required String title,
required bool isSelected,
required ValueChanged<int?> onSelectedChanged,
}) {
return Padding(
padding: EdgeInsets.symmetric(
vertical: 10.h,
),
child: Row(
children: [
Transform.scale(
scale: 1.2,
child: Radio<int>(
value: index,
groupValue: isSelected ? index : null,
onChanged: onSelectedChanged,
activeColor: Colors.white,
fillColor: MaterialStateProperty.resolveWith((states) {
return Colors.white;
}),
),
),
sizedBoxWidth(10.w),
text16w400_FCFCFC(title),
],
),
);
}
}

View File

@@ -413,7 +413,11 @@ class _GroupDetailState extends State<GroupDetail> {
children: [
text18w400white("Subgroups"),
Spacer(),
text14400white("View more"),
GestureDetector(
onTap: () {
Get.toNamed(RouteName.subgroups);
},
child: text14400white("View more")),
],
),
sizedBoxHeight(20.h),
@@ -427,9 +431,14 @@ class _GroupDetailState extends State<GroupDetail> {
itemBuilder: (context, index) {
return Padding(
padding: EdgeInsets.only(right: 20.w),
child: profilecardtile(
imagePath: cardtile[index]["imagePath"],
title: cardtile[index]["title"]),
child: GestureDetector(
onTap: () {
Get.toNamed(RouteName.subgroupinfo);
},
child: profilecardtile(
imagePath: cardtile[index]["imagePath"],
title: cardtile[index]["title"]),
),
);
},
),
@@ -739,66 +748,57 @@ class _GroupDetailState extends State<GroupDetail> {
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Obx(() {
return ReactionButton<String>(
onReactionChanged: (reaction) {
updateImage(reaction?.value ?? 'like');
debugPrint(
'Selected value: ${reaction?.value}');
},
reactions: <Reaction<String>?>[
Reaction<String>(
value: 'like',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/f7_hand-thumbsup.png'),
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
Reaction<String>(
value: 'heart',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/heart 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/heart 2.png'),
),
Reaction<String>(
value: 'party',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/party-popper 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/party-popper 2.png'),
),
],
selectedReaction: Reaction<String>(
value: 'like',
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
boxColor: Colors.white,
boxElevation: 9,
boxRadius: 30,
itemsSpacing: 8,
itemScale: 0.4,
itemSize: Size(45, 45),
boxPadding: EdgeInsets.all(8),
boxAnimationDuration:
Duration(milliseconds: 200),
itemAnimationDuration:
Duration(milliseconds: 500),
hoverDuration: Duration(milliseconds: 700),
// toggle: false,
Obx(() {
return ReactionButton<String>(
onReactionChanged: (reaction) {
updateImage(reaction?.value ?? 'like');
debugPrint('Selected value: ${reaction?.value}');
},
reactions: <Reaction<String>?>[
Reaction<String>(
value: 'like',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/f7_hand-thumbsup.png'),
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
Reaction<String>(
value: 'heart',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/heart 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/heart 2.png'),
),
Reaction<String>(
value: 'party',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/party-popper 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/party-popper 2.png'),
),
],
selectedReaction: Reaction<String>(
value: 'like',
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
boxColor: Colors.white,
boxElevation: 9,
boxRadius: 30,
itemsSpacing: 8,
itemScale: 0.4,
itemSize: Size(45, 45),
boxPadding: EdgeInsets.all(8),
boxAnimationDuration: Duration(milliseconds: 200),
itemAnimationDuration: Duration(milliseconds: 500),
hoverDuration: Duration(milliseconds: 700),
// toggle: false,
child: _buildReactionsIcon(mainImage.value),
);
})
],
),
sizedBoxHeight(8.h),
text11w400_FCFCFC('Like')
child: _buildReactionsIcon(mainImage.value),
);
})
],
),
GestureDetector(
@@ -851,10 +851,16 @@ class _GroupDetailState extends State<GroupDetail> {
}
Widget _buildReactionsIcon(String assetPath) {
return Image.asset(
assetPath,
height: 19.h,
width: 19.w,
return Column(
children: [
Image.asset(
assetPath,
height: 19.h,
width: 19.w,
),
sizedBoxHeight(8.h),
text11w400_FCFCFC('Like')
],
);
}

View File

@@ -1,5 +1,6 @@
import 'dart:io';
import 'package:dotted_border/dotted_border.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
@@ -79,8 +80,15 @@ class _GroupEventState extends State<GroupEvent> {
),
),
),
hintText: "Tri-sport challenge",
hintText: "",
validator: (val) {
if (val == null || val.isEmpty) {
return 'Enter Event Title';
}
return null;
},
),
sizedBoxHeight(20.h),
text16400white("Event image"),
sizedBoxHeight(20.h),
GestureDetector(
@@ -97,59 +105,66 @@ class _GroupEventState extends State<GroupEvent> {
},
);
},
child: commonGlassContainer(
border: 0.9,
width: double.infinity,
height: 130.h,
borderradius: 10.r,
customWidget: bannerPath.isNotEmpty && isbannerAdded
? Stack(children: [
Image.file(
bannerPath[0]!,
fit: BoxFit.cover,
width: double.infinity,
child: DottedBorder(
strokeWidth: 1,
dashPattern: [7, 4],
borderType: BorderType.RRect,
radius: Radius.circular(14.r),
color: Color(0xFF434A53),
child: commonGlassContainer(
border: 0,
width: double.infinity,
height: 130.h,
borderradius: 10.r,
customWidget: bannerPath.isNotEmpty && isbannerAdded
? Stack(children: [
Image.file(
bannerPath[0]!,
fit: BoxFit.cover,
width: double.infinity,
),
Positioned(
right: 5,
bottom: 5,
child: GestureDetector(
onTap: () {
bannerPath.clear();
isbannerAdded = false;
setState(() {});
},
child: Container(
width: 27,
height: 27,
decoration: ShapeDecoration(
color: Color(0xFF7E7E7E),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(5)),
),
child: Icon(
Icons.delete_outline_outlined,
color: Colors.white,
))),
),
])
: 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"),
],
),
),
Positioned(
right: 5,
bottom: 5,
child: GestureDetector(
onTap: () {
bannerPath.clear();
isbannerAdded = false;
setState(() {});
},
child: Container(
width: 27,
height: 27,
decoration: ShapeDecoration(
color: Color(0xFF7E7E7E),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(5)),
),
child: Icon(
Icons.delete_outline_outlined,
color: Colors.white,
))),
),
])
: 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),
@@ -195,7 +210,7 @@ class _GroupEventState extends State<GroupEvent> {
text16400white("Type of event"),
sizedBoxHeight(14.h),
CommonDropdownBtn(
hint: 'Race',
hint: '',
items: [],
leadingImage: Container(
height: 22.h,
@@ -211,7 +226,7 @@ class _GroupEventState extends State<GroupEvent> {
text16400white("Sport"),
sizedBoxHeight(14.h),
CommonDropdownBtn(
hint: 'Cycling',
hint: '',
items: [],
leadingImage: Container(
height: 22.h,
@@ -240,7 +255,7 @@ class _GroupEventState extends State<GroupEvent> {
child: AbsorbPointer(
child: CustomTextFormField(
textEditingController: dateController,
hintText: "1-4-2024",
hintText: "",
leadingIcon: Container(
height: 20.h,
width: 20.w,
@@ -271,7 +286,7 @@ class _GroupEventState extends State<GroupEvent> {
child: AbsorbPointer(
child: CustomTextFormField(
textEditingController: dateController2,
hintText: "4-4-2024",
hintText: "",
leadingIcon: Container(
height: 20.h,
width: 20.w,
@@ -460,8 +475,15 @@ class _GroupEventState extends State<GroupEvent> {
),
),
),
hintText: "Elm street, London, United kingdom",
hintText: "",
validator: (val) {
if (val == null || val.isEmpty) {
return 'Enter the location';
}
return null;
},
),
sizedBoxHeight(16.h),
text16400white("Reminder"),
sizedBoxHeight(14.h),
Row(
@@ -496,7 +518,7 @@ class _GroupEventState extends State<GroupEvent> {
],
),
sizedBoxHeight(35.h),
CommonBtn(text: "Save"),
CommonBtn(text: "Create event"),
sizedBoxHeight(70.h),
]),
),

View File

@@ -1,5 +1,6 @@
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';
@@ -7,6 +8,7 @@ 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 GroupInfo extends StatefulWidget {
const GroupInfo({super.key});
@@ -131,7 +133,9 @@ class _GroupInfoState extends State<GroupInfo> {
],
),
sizedBoxHeight(50.h),
CommonBtn(text: "Connect with the community"),
CommonBtn(text: "Connect with the community", onTap: () {
Get.toNamed(RouteName.connectcommunity);
},),
],
),
),

View File

@@ -5,8 +5,8 @@ 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/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';

View File

@@ -4,8 +4,8 @@ import 'package:get/get.dart';
import 'package:regroup/Common/CommonBottomNavigationBar.dart';
import 'package:regroup/Common/CommonGlassmorphism.dart';
import 'package:regroup/Common/CommonWidget.dart';
import 'package:regroup/Common/controller/CommonTextFormField.dart';
import 'package:regroup/Common/controller/MainScreen.dart';
import 'package:regroup/Utils/Common/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
@@ -330,4 +330,6 @@ class _GroupTabState extends State<GroupTab> {
),
);
}
}

View File

@@ -1,5 +1,6 @@
import 'dart:io';
import 'package:dotted_border/dotted_border.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
@@ -57,7 +58,9 @@ class _NewPostState extends State<NewPost> {
sizedBoxHeight(30.h),
text16w400_FCFCFC("Caption"),
sizedBoxHeight(20.h),
CustomTextFormField2(),
CustomTextFormField2(
maxlines: 3,
),
text16400white("Media"),
sizedBoxHeight(15.h),
GestureDetector(
@@ -74,59 +77,68 @@ class _NewPostState extends State<NewPost> {
},
);
},
child: commonGlassContainer(
border: 0.9,
width: double.infinity,
height: 130.h,
borderradius: 10.r,
customWidget: bannerPath.isNotEmpty && isbannerAdded
? Stack(children: [
Image.file(
bannerPath[0]!,
fit: BoxFit.cover,
width: double.infinity,
),
Positioned(
right: 5,
bottom: 5,
child: GestureDetector(
onTap: () {
bannerPath.clear();
isbannerAdded = false;
setState(() {});
},
child: Container(
width: 27,
height: 27,
decoration: ShapeDecoration(
color: Color(0xFF7E7E7E),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(5)),
),
child: Icon(
Icons.delete_outline_outlined,
color: Colors.white,
))),
),
])
: 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),
text14w400_FCFCFC("Upload image"),
sizedBoxHeight(8.h),
text8w400_8A8A8A(
"Allowed file extensions: jpg, png, gif Max file size: 10 MB"),
],
),
)),
child: DottedBorder(
strokeWidth: 1,
dashPattern: [7, 4],
borderType: BorderType.RRect,
radius: Radius.circular(14.r),
color: Color(0xFF434A53),
child: commonGlassContainer(
border: 0,
width: double.infinity,
height: 130.h,
borderradius: 10.r,
customWidget: bannerPath.isNotEmpty && isbannerAdded
? Stack(children: [
Image.file(
bannerPath[0]!,
fit: BoxFit.cover,
width: double.infinity,
),
Positioned(
right: 5,
bottom: 5,
child: GestureDetector(
onTap: () {
bannerPath.clear();
isbannerAdded = false;
setState(() {});
},
child: Container(
width: 27,
height: 27,
decoration: ShapeDecoration(
color: Color(0xFF7E7E7E),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(
5)),
),
child: Icon(
Icons.delete_outline_outlined,
color: Colors.white,
))),
),
])
: 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),
text14w400_FCFCFC("Upload image"),
sizedBoxHeight(8.h),
text8w400_8A8A8A(
"Allowed file extensions: jpg, png, gif Max file size: 10 MB"),
],
),
)),
),
),
sizedBoxHeight(20.h),
text16w400_FCFCFC("Tags"),

View File

@@ -0,0 +1,212 @@
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:regroup/Common/CommonButton.dart';
import 'package:regroup/Common/CommonGlassmorphism.dart';
import 'package:regroup/Utils/Common/CommonAppbar.dart';
import 'package:regroup/Utils/Common/ImageUpload.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 EditSubgroupInfo extends StatefulWidget {
const EditSubgroupInfo({super.key});
@override
State<EditSubgroupInfo> createState() => _EditSubgroupInfoState();
}
class _EditSubgroupInfoState extends State<EditSubgroupInfo> {
List<File?> filePath = [];
bool? isImageAdded = false;
List<File?> bannerPath = [];
bool isbannerAdded = false;
@override
Widget build(BuildContext context) {
return Scaffold(
// key: _scaffoldKey1,
backgroundColor: Color(0xFF222935),
extendBody: true,
appBar: CommonAppbar(
titleTxt: "Edit subgroup info",
),
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: [
Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
sizedBoxHeight(30.h),
Stack(
children: [
filePath.isNotEmpty
? ClipOval(
child: SizedBox.fromSize(
size: Size.fromRadius(50.r),
child: Image.file(
filePath[0]!,
fit: BoxFit.cover,
width: double.infinity,
),
),
)
: CircleAvatar(
backgroundImage: AssetImage(
"assets/images/png/cimg3.png",
),
radius: 50.r,
),
Positioned(
bottom: 0,
right: 0,
child: InkWell(
onTap: () {
ImageUploadBottomSheet().showModal(
context,
true,
(result) {
var file = File(result);
filePath.add(file);
isImageAdded = true;
setState(() {});
},
);
},
child: Container(
height: 35.h,
width: 35.w,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: Color(0xFFD90B2E)),
child: Center(
child: Image.asset(
"assets/images/png/cameraicon2.png",
height: 19.h,
width: 19.w,
),
),
),
))
],
),
sizedBoxHeight(20.h),
text16400white("Edit profile picture"),
sizedBoxHeight(20.h),
]),
),
text16w400_FCFCFC("Event banner image"),
sizedBoxHeight(20.h),
GestureDetector(
onTap: () {
ImageUploadBottomSheet().showModal(
context,
false,
(result) {
var file = File(result);
bannerPath.add(file);
isbannerAdded = true;
setState(() {});
},
);
},
child: commonGlassContainer(
border: 0.9,
width: double.infinity,
height: 150.h,
borderradius: 10.r,
customWidget: bannerPath.isNotEmpty && isbannerAdded
? Stack(children: [
Image.file(
bannerPath[0]!,
fit: BoxFit.cover,
width: double.infinity,
),
Positioned(
right: 5,
bottom: 5,
child: GestureDetector(
onTap: () {
bannerPath.clear();
isbannerAdded = false;
setState(() {});
},
child: Container(
width: 27,
height: 27,
decoration: ShapeDecoration(
color: Color(0xFF7E7E7E),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(
5)),
),
child: Icon(
Icons.delete_outline_outlined,
color: Colors.white,
))),
),
])
: Padding(
padding:
EdgeInsets.symmetric(vertical: 16.h),
child: Column(
children: [
Image.asset(
"assets/images/png/onlycamera.png",
height: 36.h,
width: 36.w,
),
sizedBoxHeight(10.h),
text14w400white("Upload event image"),
sizedBoxHeight(12.h),
SizedBox(
width: 192.w,
child: text8w400_8A8A8A(
"Lorem Ipsum has been the industry's standard dummy text ever since the 1500s"),
),
],
),
),
),
),
sizedBoxHeight(20.h),
text16w400_FCFCFC("Group title"),
sizedBoxHeight(20.h),
CustomTextFormField(
hintText: "Iron titans fitness crew"),
sizedBoxHeight(20.h),
text16w400_FCFCFC("Group description"),
sizedBoxHeight(15.h),
CustomTextFormField2(
maxlines: 3,
hintText:
"Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer .",
),
sizedBoxHeight(20.h),
text16w400_FCFCFC("Location"),
CustomTextFormField(
hintText: "Elm street london, United Kingdom"),
sizedBoxHeight(40.h),
CommonBtn(text: "Save changes"),
sizedBoxHeight(40.h),
],
),
)))
]));
}
}

View File

@@ -0,0 +1,770 @@
import 'package:flutter/material.dart';
import 'package:flutter_reaction_button/flutter_reaction_button.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:regroup/Common/CommonGlassmorphism.dart';
import 'package:regroup/Common/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 SubGroupInfo extends StatefulWidget {
const SubGroupInfo({super.key});
@override
State<SubGroupInfo> createState() => _SubGroupInfoState();
}
class _SubGroupInfoState extends State<SubGroupInfo> {
List cardtile = [
{
"imagePath": "assets/images/png/Rectangle 29ss.png",
"title": "Cardio crusaders circle"
},
{
"imagePath": "assets/images/png/Rectangle 31ee.png",
"title": "Strength squad syndicate"
},
{
"imagePath": "assets/images/png/Rectangle 30aa.png",
"title": "Flexibility faction force"
},
{
"imagePath": "assets/images/png/Rectangle 29ss.png",
"title": "Cardio crusaders circle"
},
];
@override
Widget build(BuildContext context) {
return Scaffold(
// key: _scaffoldKey1,
backgroundColor: Color(0xFF222935),
extendBody: true,
appBar: CommonAppbar(
titleTxt: "",
customActionWidget: Row(children: [
PopupMenuButton(
surfaceTintColor: Color(0xFF222935),
constraints: BoxConstraints.tightFor(
width: 150.w,
),
offset: Offset(0, 40),
color: Color(0xFF222935),
tooltip: "",
itemBuilder: (BuildContext context) => <PopupMenuEntry>[
PopupMenuItem(
onTap: () {
Get.toNamed(RouteName.newpost);
},
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 8.w),
child: text14w400white("Create post"),
),
),
PopupMenuDivider(),
PopupMenuItem(
onTap: () {
Get.toNamed(RouteName.groupevent);
},
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 8.w),
child: text14w400white("Create event"),
),
),
],
child: commonGlassContainer(
opacity1: 0.24,
opacity2: 0.24,
width: 40.w,
height: 40.h,
borderradius: 100,
customWidget: Center(
child: Image.asset(
"assets/images/png/Vector536.png",
height: 17.h,
width: 17.w,
),
),
border: 0.5),
),
sizedBoxWidth(16.w),
GestureDetector(
onTap: () {
Get.toNamed(RouteName.editsubgroupinfo);
},
child: commonGlassContainer(
opacity1: 0.24,
opacity2: 0.24,
width: 40.w,
height: 40.h,
borderradius: 100,
customWidget: Center(
child: Image.asset(
"assets/images/png/codicon_account.png",
height: 20.h,
width: 20.w,
),
),
border: 0.5),
),
sizedBoxWidth(16.w),
PopupMenuButton(
surfaceTintColor: Color(0xFF222935),
constraints: BoxConstraints.tightFor(
width: 230.w,
),
offset: Offset(0, 40),
color: Color(0xFF222935),
tooltip: "",
itemBuilder: (BuildContext context) => <PopupMenuEntry>[
PopupMenuItem(
onTap: () {},
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 8.w),
child: Row(
children: [
text14w400white("Add members"),
Spacer(),
Image.asset(
"assets/images/png/uiw_user-add.png",
height: 15.h,
width: 15.w,
)
],
),
),
),
PopupMenuDivider(),
PopupMenuItem(
onTap: () {},
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 8.w),
child: Row(
children: [
text14w400white("Share"),
Spacer(),
Image.asset(
"assets/images/png/share.png",
height: 20.h,
width: 20.w,
)
],
),
),
),
PopupMenuDivider(),
PopupMenuItem(
onTap: () {
// Get.toNamed(RouteName.groupinfo);
},
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 8.w),
child: Row(
children: [
text14w400white("Sub -Group info"),
Spacer(),
Image.asset(
"assets/images/png/codicon_account.png",
height: 20.h,
width: 20.w,
)
],
),
),
),
PopupMenuDivider(),
PopupMenuItem(
onTap: () {},
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 8.w),
child: Row(
children: [
text14w400white("Search"),
Spacer(),
Image.asset(
"assets/images/png/Frame 58575.png",
height: 18.h,
width: 18.w,
)
],
),
),
),
PopupMenuDivider(),
PopupMenuItem(
onTap: () {},
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 8.w),
child: Row(
children: [
text14w400white("Mute Notification"),
Spacer(),
Image.asset(
"assets/images/png/Black1233.png",
height: 16.h,
width: 16.w,
)
],
),
),
),
PopupMenuDivider(),
PopupMenuItem(
onTap: () {
Get.toNamed(RouteName.subgroupsetting);
},
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 8.w),
child: Row(
children: [
text14w400white("Edit sub-group settings"),
Spacer(),
Image.asset(
"assets/images/png/setting2.png",
height: 18.h,
width: 18.w,
)
],
),
),
),
],
child: Image.asset(
'assets/images/png/Group 1000004071.png',
height: 20.h,
width: 20.w,
)),
]),
),
body: Stack(children: [
const CommonBlurLeftRed(),
const CommonBlurRightRed(),
const CommonBlurLeft(),
const CommonBlurRight(),
Positioned.fill(
child: SingleChildScrollView(
child:
Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
sizedBoxHeight(20.h),
Stack(clipBehavior: Clip.none, children: [
GestureDetector(
onTap: () {},
child: SizedBox(
height: 130.h,
width: double.infinity,
child: Image.asset(
"assets/images/png/group11.png",
fit: BoxFit.cover,
),
),
),
Positioned(
bottom: -35.h,
left: 20.w,
child: Container(
width: 85.r,
height: 85.r,
decoration: BoxDecoration(
shape: BoxShape.circle,
border: Border.all(
color: Colors.white,
width: 2,
),
boxShadow: [
BoxShadow(
color: Color.fromRGBO(0, 0, 0, 0.25),
blurRadius: 12,
offset: Offset(0, 6),
),
],
),
child: CircleAvatar(
radius: 42.5.r,
foregroundImage:
AssetImage("assets/images/png/group111.png"),
),
))
]),
sizedBoxHeight(60.h),
Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text20w700_FCFCFC("Cardio crusaders circle"),
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/Black.png",
height: 20.h, width: 20.w),
),
border: 0.5),
sizedBoxWidth(7.w),
text16w400_FCFCFCblur("The athlectic town"),
sizedBoxWidth(20.w),
commonGlassContainer(
width: 35.w,
height: 35.h,
opacity1: 0.24,
opacity2: 0.24,
borderradius: 100,
customWidget: Center(
child: Image.asset("assets/images/png/img12.png",
height: 20.h, width: 20.w),
),
border: 0.5),
sizedBoxWidth(7.w),
text16w400_FCFCFCblur("Public"),
],
),
sizedBoxHeight(35.h),
],
),
),
DefaultTabController(
length: 2,
// initialIndex: selectedIndex.value,
child: Column(
children: [
CommonTabBar(tabs: const [
Tab(
text: 'Posts',
),
Tab(
text: 'Events',
),
]),
SizedBox(
height: 600.h,
child: TabBarView(
// clipBehavior: Clip.none,
children: [
postsTab(),
eventsTab(),
],
),
),
sizedBoxHeight(90.h),
],
),
),
]),
))
]));
}
Widget postsTab() {
return Column(
children: [
sizedBoxHeight(30.h),
normalcardtile(
profileImg: 'assets/images/png/cimg4.png',
title: 'Edward Hackket',
mainImg: 'assets/images/png/img322.png',
containerTitle: [
'Kayaking',
'Marathon',
'Events',
'Marathon',
'Events'
]),
],
);
}
Widget normalcardtile({
required String profileImg,
required String title,
required String mainImg,
required List<String> containerTitle,
}) {
var mainImage = 'assets/images/png/uiw_like-o.png'.obs;
void updateImage(String reaction) {
if (reaction == 'like') {
mainImage.value = 'assets/images/png/f7_hand-thumbsup.png';
} else if (reaction == 'heart') {
mainImage.value = 'assets/images/png/heart 2.png';
} else if (reaction == 'party') {
mainImage.value = 'assets/images/png/party-popper 2.png';
}
}
return commonGlassContainer(
width: double.infinity,
height: 570.h,
border: 0,
borderradius: 1,
customWidget: Column(
children: [
sizedBoxHeight(25.h),
Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
CircleAvatar(
foregroundImage: AssetImage(profileImg),
radius: 25.r,
),
sizedBoxWidth(12.w),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text16w400_FCFCFC(title),
sizedBoxHeight(5.h),
Row(
children: [
Image.asset(
'assets/images/png/community 1 (traced).png',
height: 14.w,
width: 14.w,
),
sizedBoxWidth(7.w),
text12w400_FCFCFC('Active alliance network'),
sizedBoxWidth(7.w),
Icon(
Icons.circle,
color: Color(0xFFFCFCFC),
size: 4.sp,
),
sizedBoxWidth(6.w),
text12w400_FCFCFC('1 Hour ago'),
],
)
],
),
Spacer(),
PopupMenuButton(
surfaceTintColor: Color(0xFF222935),
constraints: BoxConstraints.tightFor(width: 176.w),
offset: Offset(0, 50),
color: Color(0xFF222935),
tooltip: "",
itemBuilder: (BuildContext context) => <PopupMenuEntry>[
PopupMenuItem(
onTap: () {},
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 12.w),
child: Row(
children: [
Text(
'Report Post',
style: TextStyle(
fontSize: 16.sp,
color: Colors.white,
fontWeight: FontWeight.w800,
fontFamily: "Nunito Sans",
),
),
Spacer(),
Image.asset(
"assets/images/png/Vector (5).png",
height: 15.h,
width: 15.w,
)
],
),
),
),
PopupMenuDivider(),
PopupMenuItem(
onTap: () {},
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 12.w),
child: Row(
children: [
Text(
'Share post',
style: TextStyle(
fontSize: 16.sp,
color: Colors.white,
fontWeight: FontWeight.w800,
fontFamily: "Nunito Sans",
),
),
Spacer(),
Image.asset(
"assets/images/png/share.png",
height: 20.h,
width: 20.w,
)
],
),
),
),
PopupMenuDivider(),
PopupMenuItem(
onTap: () {},
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 12.w),
child: Row(
children: [
Text(
'Pin',
style: TextStyle(
fontSize: 16.sp,
color: Colors.white,
fontWeight: FontWeight.w800,
fontFamily: "Nunito Sans",
),
),
Spacer(),
Image.asset(
"assets/images/png/f7_pin-fill (2).png",
height: 25.h,
width: 25.w,
)
],
),
),
),
],
child: Image.asset(
'assets/images/png/Group 1000004071.png',
width: 16.w,
height: 18.h,
),
),
sizedBoxWidth(5.w)
],
),
),
sizedBoxHeight(20.h),
GestureDetector(
onTap: () {
// Get.toNamed(RouteName.postdetailsScreen);
},
child: Container(
height: 163.h,
width: double.infinity,
child: Image.asset(
mainImg,
fit: BoxFit.cover,
),
)),
sizedBoxHeight(20.h),
Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Column(children: [
SizedBox(
height: 30.h,
child: ListView.builder(
scrollDirection: Axis.horizontal,
shrinkWrap: true,
itemCount: containerTitle.length,
itemBuilder: (context, index) {
return Padding(
padding: EdgeInsets.only(right: 12.w),
child: GestureDetector(
onTap: () {
// Get.toNamed(RouteName.cyclescreen);
},
child: containertile(text: containerTitle[index])),
);
},
),
),
sizedBoxHeight(20.h),
text16w400_FCFCFC(
"Lorem Ipsum has been the industry's standard dummy text ever since the 1500s . . ."),
Row(children: [
InkWell(
onTap: () {
// Get.toNamed(RouteName.reactionview);
},
child: stackReaction(number: '20', containerImages: [
'assets/images/png/f7_hand-thumbsup.png',
'assets/images/png/heart 2.png',
'assets/images/png/party-popper 2.png'
]),
),
Spacer(),
commonGlassContainer(
border: 0.43,
width: 30.w,
height: 30.h,
opacity1: 0.05,
opacity2: 0.06,
borderradius: 100,
customWidget: Center(
child: Image.asset(
'assets/images/png/Frame 1000004088.png',
height: 13.h,
width: 13.w,
),
),
),
sizedBoxWidth(12.w),
text14w400_FCFCFC('20'),
sizedBoxWidth(20.w),
commonGlassContainer(
border: 0.43,
width: 30.w,
height: 30.h,
borderradius: 100,
opacity1: 0.05,
opacity2: 0.06,
customWidget: Center(
child: Image.asset(
'assets/images/png/Vector (1).png',
height: 12.h,
width: 12.w,
),
),
),
sizedBoxWidth(12.w),
text14w400_FCFCFC('10'),
]),
sizedBoxHeight(12.h),
commonDivider(),
sizedBoxHeight(12.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Obx(() {
return ReactionButton<String>(
onReactionChanged: (reaction) {
updateImage(reaction?.value ?? 'like');
debugPrint('Selected value: ${reaction?.value}');
},
reactions: <Reaction<String>?>[
Reaction<String>(
value: 'like',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/f7_hand-thumbsup.png'),
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
Reaction<String>(
value: 'heart',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/heart 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/heart 2.png'),
),
Reaction<String>(
value: 'party',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/party-popper 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/party-popper 2.png'),
),
],
selectedReaction: Reaction<String>(
value: 'like',
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
boxColor: Colors.white,
boxElevation: 9,
boxRadius: 30,
itemsSpacing: 8,
itemScale: 0.4,
itemSize: Size(45, 45),
boxPadding: EdgeInsets.all(8),
boxAnimationDuration: Duration(milliseconds: 200),
itemAnimationDuration: Duration(milliseconds: 500),
hoverDuration: Duration(milliseconds: 700),
// toggle: false,
child: _buildReactionsIcon(mainImage.value),
);
})
],
),
GestureDetector(
onTap: () {
// Get.toNamed(RouteName.postdetailsScreen);
},
child: Column(
children: [
Image.asset(
'assets/images/png/Frame 1000004088.png',
height: 19.h,
width: 19.w,
),
sizedBoxHeight(8.h),
text11w400_FCFCFC('Comment')
],
),
),
Column(
children: [
Image.asset(
'assets/images/png/Frame 1000004089.png',
height: 19.h,
width: 19.w,
),
sizedBoxHeight(8.h),
text11w400_FCFCFC('Save')
],
)
],
),
sizedBoxHeight(12.h),
commonDivider(),
sizedBoxHeight(12.h),
]),
),
],
));
}
Widget _buildReactionsPreviewIcon(String assetPath) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Image.asset(
assetPath,
height: 40.h,
width: 40.w,
),
);
}
Widget _buildReactionsIcon(String assetPath) {
return Column(
children: [
Image.asset(
assetPath,
height: 19.h,
width: 19.w,
),
sizedBoxHeight(8.h),
text11w400_FCFCFC('Like')
],
);
}
Widget containertile({required String text}) {
return commonGlassContainer(
border: 1,
width: 100.w,
height: 30.h,
borderradius: 30.r,
borderColor: Color(0xFFD90B2E),
customWidget: Padding(
padding: EdgeInsets.symmetric(horizontal: 10.w),
child: Center(child: text14w400_FCFCFC(text)),
));
}
Widget eventsTab() {
return Column(
children: [],
);
}
}

View File

@@ -0,0 +1,175 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:regroup/Common/CommonGlassmorphism.dart';
import 'package:regroup/Common/CommonWidget.dart';
import 'package:regroup/Utils/Common/CommonAppbar.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
import 'package:regroup/resources/routes/route_name.dart';
class SubGroupSetting extends StatefulWidget {
const SubGroupSetting({super.key});
@override
State<SubGroupSetting> createState() => _SubGroupSettingState();
}
class _SubGroupSettingState extends State<SubGroupSetting> {
var selectedIndex = (-1).obs;
List eventData = [
{
"title": "Open",
},
{
"title": "Invite only",
},
];
@override
Widget build(BuildContext context) {
return Scaffold(
// key: _scaffoldKey1,
backgroundColor: Color(0xFF222935),
extendBody: true,
appBar: CommonAppbar(
titleTxt: "Subgroup settings",
),
body: Stack(children: [
const CommonBlurLeftRed(),
const CommonBlurRightRed(),
const CommonBlurLeft(),
const CommonBlurRight(),
Positioned.fill(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
sizedBoxHeight(30.h),
GestureDetector(
onTap: () {
inviteBottomSheet();
},
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Row(
children: [
text18w400_FCFCFC("Group type"),
Spacer(),
Icon(
Icons.arrow_forward_ios_outlined,
color: Colors.white,
size: 18.sp,
)
],
),
),
),
sizedBoxHeight(25.h),
commonDivider(),
sizedBoxHeight(25.h),
GestureDetector(
onTap: () {
Get.toNamed(RouteName.groupmanage);
},
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Row(
children: [
text18w400_FCFCFC("Manage members"),
Spacer(),
Icon(
Icons.arrow_forward_ios_outlined,
color: Colors.white,
size: 18.sp,
)
],
),
),
),
]))
]));
}
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(30.h),
text18w400white("Choose"),
Obx(
() => Column(
children: List.generate(eventData.length, (index) {
return Column(
children: [
sizedBoxHeight(10.h),
eventWidget(
index: index,
title: eventData[index]["title"],
isSelected: selectedIndex.value == index,
onSelectedChanged: (int? value) {
selectedIndex.value = value ?? -1;
},
),
if (index != eventData.length - 1) commonDivider(),
],
);
}),
),
),
sizedBoxHeight(30.h),
],
),
),
);
},
),
);
}
Widget eventWidget({
required int index,
required String title,
required bool isSelected,
required ValueChanged<int?> onSelectedChanged,
}) {
return Padding(
padding: EdgeInsets.symmetric(
vertical: 10.h,
),
child: Row(
children: [
Transform.scale(
scale: 1.2,
child: Radio<int>(
value: index,
groupValue: isSelected ? index : null,
onChanged: onSelectedChanged,
activeColor: Colors.white,
fillColor: MaterialStateProperty.resolveWith((states) {
return Colors.white;
}),
),
),
sizedBoxWidth(10.w),
text16w400_FCFCFC(title),
],
),
);
}
}

View File

@@ -0,0 +1,275 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:regroup/Common/CommonGlassmorphism.dart';
import 'package:regroup/Common/CommonWidget.dart';
import 'package:regroup/Utils/Common/CommonAppbar.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
import 'package:regroup/resources/routes/route_name.dart';
class SubGroups extends StatefulWidget {
const SubGroups({super.key});
@override
State<SubGroups> createState() => _SubGroupsState();
}
class _SubGroupsState extends State<SubGroups> {
List subgroupData = [
{
"imagePath": "assets/images/png/img2.png",
"text": "Active alliance network",
"members": "7 members"
},
{
"imagePath": "assets/images/png/img34.png",
"text": "FitFam federation",
"members": "7 members"
},
{
"imagePath": "assets/images/png/img2.png",
"text": "Active alliance network",
"members": "7 members"
},
];
@override
Widget build(BuildContext context) {
return Scaffold(
// key: _scaffoldKey1,
backgroundColor: Color(0xFF222935),
extendBody: true,
appBar: CommonAppbar(
titleTxt: "Subgroups",
customActionWidget: InkWell(
onTap: () {
// Get.toNamed(RouteName.addEvent);
},
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),
),
),
),
body: Stack(children: [
const CommonBlurLeftRed(),
const CommonBlurRightRed(),
const CommonBlurLeft(),
const CommonBlurRight(),
Positioned.fill(
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
sizedBoxHeight(30.h),
Expanded(
child: ListView.builder(
shrinkWrap: true,
physics: BouncingScrollPhysics(),
itemCount: subgroupData.length,
itemBuilder: (context, index) {
return subgroupCard(
ontap: () {
Get.toNamed(RouteName.groupdetail);
},
imagepath: subgroupData[index]['imagePath'],
title: subgroupData[index]['text'],
members: subgroupData[index]['members']);
},
),
)
])))
]));
}
Widget subgroupCard({
required String imagepath,
required String title,
required void Function()? ontap,
required String members,
}) {
return Padding(
padding: EdgeInsets.only(bottom: 25.h),
child: GestureDetector(
onTap: ontap,
child: commonGlassContainer(
border: 0.9,
width: double.infinity,
height: 162.h,
borderradius: 10.r,
customWidget: Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 16.h),
child: Column(
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
height: 65.h,
width: 65.h,
decoration: BoxDecoration(
shape: BoxShape.circle,
// color: Colors.amber,
),
child:
// Center(
// child: Image.asset(imagepath, fit: BoxFit.cover)),
CircleAvatar(
backgroundImage: AssetImage(
imagepath,
),
),
),
sizedBoxWidth(13.w),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text18w700_FCFCFC(title),
sizedBoxHeight(10.h),
Row(
children: [
Image.asset(
"assets/images/png/community 1 (traced).png",
height: 20.h,
width: 20.w,
),
sizedBoxWidth(3.w),
text14w400_FCFCFCblur("10 groups")
],
),
],
),
Spacer(),
PopupMenuButton(
surfaceTintColor: Color(0xFF222935),
constraints: BoxConstraints.tightFor(width: 200.w),
offset: Offset(0, 30),
color: Color(0xFF222935),
tooltip: "",
itemBuilder: (BuildContext context) =>
<PopupMenuEntry>[
PopupMenuItem(
onTap: () {},
child: Padding(
padding:
EdgeInsets.symmetric(horizontal: 8.w),
child: Row(
children: [
text14w400_FCFCFC("Mute community"),
Spacer(),
Image.asset(
"assets/images/png/Black (1).png",
height: 18.h,
width: 18.w,
)
],
),
),
),
PopupMenuDivider(),
PopupMenuItem(
onTap: () {},
child: Padding(
padding:
EdgeInsets.symmetric(horizontal: 8.w),
child: Row(
children: [
text14w400_FCFCFC("Hide post"),
Spacer(),
Image.asset(
"assets/images/png/mingcute_eye-close-line.png",
height: 20.h,
width: 20.w,
)
],
),
),
),
PopupMenuDivider(),
PopupMenuItem(
onTap: () {},
child: Padding(
padding:
EdgeInsets.symmetric(horizontal: 8.w),
child: Row(
children: [
text14w400_FCFCFC("Pin"),
Spacer(),
Image.asset(
"assets/images/png/f7_pin-fill (2).png",
height: 25.h,
width: 25.w,
)
],
),
),
),
PopupMenuDivider(),
PopupMenuItem(
onTap: () {},
child: Padding(
padding:
EdgeInsets.symmetric(horizontal: 8.w),
child: Row(
children: [
text14w400_FCFCFC("Leave community"),
Spacer(),
Image.asset(
"assets/images/png/logout 1 (traced).png",
height: 18.h,
width: 18.w,
)
],
),
),
),
],
child: Image.asset(
"assets/images/png/Group 1000004071.png",
height: 18.h,
width: 20.w,
)),
],
),
sizedBoxHeight(16.h),
commonDivider(),
sizedBoxHeight(10.h),
Row(
children: [
stackContainers(
number: "+2",
containerImages: [
"assets/images/png/cimg3.png",
"assets/images/png/cimg2.png",
"assets/images/png/cimg3.png",
"assets/images/png/cimg2.png",
],
),
sizedBoxWidth(95.w),
text12w400_FCFCFC_blur(members),
],
)
],
),
)),
),
);
}
}

View File

@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:regroup/Common/CommonWidget.dart';
import 'package:regroup/Common/controller/CommonTextFormField.dart';
import 'package:regroup/Utils/Common/CommonAppbar.dart';
import 'package:regroup/Utils/Common/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';

View File

@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:regroup/Common/CommonWidget.dart';
import 'package:regroup/Common/controller/CommonTextFormField.dart';
import 'package:regroup/Utils/Common/CommonAppbar.dart';
import 'package:regroup/Utils/Common/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';

View File

@@ -519,8 +519,7 @@ class _ProfileTabState extends State<ProfileTab> {
height: 145.h,
borderradius: 10.r,
customWidget: Padding(
padding:
EdgeInsets.symmetric( horizontal: 16.w),
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@@ -790,71 +789,57 @@ class _ProfileTabState extends State<ProfileTab> {
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Obx(() {
return ReactionButton<String>(
onReactionChanged: (reaction) {
updateImage(reaction?.value ?? 'like');
debugPrint(
'Selected value: ${reaction?.value}');
},
reactions: <Reaction<String>?>[
Reaction<String>(
value: 'like',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/f7_hand-thumbsup.png'),
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
Reaction<String>(
value: 'heart',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/heart 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/heart 2.png'),
),
Reaction<String>(
value: 'party',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/party-popper 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/party-popper 2.png'),
),
],
selectedReaction: Reaction<String>(
value: 'like',
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
boxColor: Colors.white,
boxElevation: 9,
boxRadius: 30,
itemsSpacing: 8,
itemScale: 0.4,
itemSize: Size(45, 45),
boxPadding: EdgeInsets.all(8),
boxAnimationDuration:
Duration(milliseconds: 200),
itemAnimationDuration:
Duration(milliseconds: 500),
hoverDuration: Duration(milliseconds: 700),
// toggle: false,
child: _buildReactionsIcon(mainImage.value),
);
})
],
Obx(() {
return ReactionButton<String>(
onReactionChanged: (reaction) {
updateImage(reaction?.value ?? 'like');
debugPrint('Selected value: ${reaction?.value}');
},
reactions: <Reaction<String>?>[
Reaction<String>(
value: 'like',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/f7_hand-thumbsup.png'),
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
Reaction<String>(
value: 'heart',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/heart 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/heart 2.png'),
),
Reaction<String>(
value: 'party',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/party-popper 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/party-popper 2.png'),
),
],
selectedReaction: Reaction<String>(
value: 'like',
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
],
),
sizedBoxHeight(8.h),
text11w400_FCFCFC('Like')
boxColor: Colors.white,
boxElevation: 9,
boxRadius: 30,
itemsSpacing: 8,
itemScale: 0.4,
itemSize: Size(45, 45),
boxPadding: EdgeInsets.all(8),
boxAnimationDuration: Duration(milliseconds: 200),
itemAnimationDuration: Duration(milliseconds: 500),
hoverDuration: Duration(milliseconds: 700),
// toggle: false,
child: _buildReactionsIcon(mainImage.value),
);
})
],
),
GestureDetector(
@@ -904,10 +889,16 @@ class _ProfileTabState extends State<ProfileTab> {
}
Widget _buildReactionsIcon(String assetPath) {
return Image.asset(
assetPath,
height: 19.h,
width: 19.w,
return Column(
children: [
Image.asset(
assetPath,
height: 19.h,
width: 19.w,
),
sizedBoxHeight(8.h),
text11w400_FCFCFC('Like')
],
);
}

View File

@@ -3,8 +3,8 @@ 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/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';

View File

@@ -4,13 +4,13 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:regroup/Common/CommonButton.dart';
import 'package:regroup/Utils/Common/CommonAppbar.dart';
import 'package:regroup/Utils/Common/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
import 'package:regroup/resources/routes/route_name.dart';
import 'package:remove_emoji_input_formatter/remove_emoji_input_formatter.dart';
import '../../../../Common/controller/CommonTextFormField.dart';
class ChangePassword extends StatefulWidget {
const ChangePassword({super.key});

View File

@@ -32,27 +32,27 @@ class _FaqScreenState extends State<FaqScreen> {
{
'title': 'How can I get started with the application?',
'content':
"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since. Lorem Ipsum has been the industry's standard dummy text ever since.",
"Getting started is easy! Simply download the app from the App Store or Google Play Store, create an account, set up your profile, and you're ready to explore all the features the app has to offer."
},
{
'title': 'How can I get started with the application?',
'content':
"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since. Lorem Ipsum has been the industry's standard dummy text ever since.",
"Getting started is easy! Simply download the app from the App Store or Google Play Store, create an account, set up your profile, and you're ready to explore all the features the app has to offer."
},
{
'title': 'How can I get started with the application?',
'content':
"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since. Lorem Ipsum has been the industry's standard dummy text ever since.",
"Getting started is easy! Simply download the app from the App Store or Google Play Store, create an account, set up your profile, and you're ready to explore all the features the app has to offer."
},
{
'title': 'How can I get started with the application?',
'content':
"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since. Lorem Ipsum has been the industry's standard dummy text ever since.",
"Getting started is easy! Simply download the app from the App Store or Google Play Store, create an account, set up your profile, and you're ready to explore all the features the app has to offer."
},
{
'title': 'How can I get started with the application?',
'content':
"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since. Lorem Ipsum has been the industry's standard dummy text ever since.",
"Getting started is easy! Simply download the app from the App Store or Google Play Store, create an account, set up your profile, and you're ready to explore all the features the app has to offer."
},
];

View File

@@ -1,15 +1,14 @@
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/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
import 'package:regroup/resources/routes/route_name.dart';
class ShareProfile extends StatefulWidget {
const ShareProfile({super.key});

View File

@@ -4,8 +4,8 @@ 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/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';

View File

@@ -193,56 +193,63 @@ class _NotificationlistState extends State<Notificationlist> {
],
)
: widget.followrequest == true
? Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text14700white(widget.name),
sizedBoxHeight(3.h),
text12400white('wants to follow you'),
sizedBoxHeight(6.h),
text12400white('3 mins ago'),
],
),
sizedBoxWidth(10.w),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
SizedBox(
width: 80.w,
height: 30.h,
child: CustomButton(
text: 'Confirm', onPressed: () {})),
sizedBoxWidth(10.w),
SizedBox(
width: 80.w,
height: 30.h,
child: CustomButton2(
text: 'Delete', onPressed: () {}))
],
)
],
? Expanded(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text14700white(widget.name),
sizedBoxHeight(3.h),
text12400white('wants to follow you'),
sizedBoxHeight(6.h),
text12400white('3 mins ago'),
],
),
Spacer(),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
SizedBox(
width: 80.w,
height: 30.h,
child: CustomButton(
text: 'Confirm', onPressed: () {})),
sizedBoxWidth(10.w),
SizedBox(
width: 80.w,
height: 30.h,
child: CustomButton2(
text: 'Delete', onPressed: () {}))
],
)
],
),
)
: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text14400white(widget.name),
sizedBoxHeight(6.h),
text12400white('3 mins ago'),
],
),
sizedBoxWidth(25.w),
Image.asset(
'assets/images/png/notifcation.png',
width: 60.w,
height: 60.h,
)
],
: Expanded(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text14400white(widget.name),
sizedBoxHeight(6.h),
text12400white('3 mins ago'),
],
),
// sizedBoxWidth(25.w),
Spacer(),
Expanded(
child: Image.asset(
'assets/images/png/notifcation.png',
width: 90.w,
height: 90.h,
),
)
],
),
)
],
),

View File

@@ -1,5 +1,6 @@
import 'dart:io';
import 'package:dotted_border/dotted_border.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:regroup/Common/CommonDropDown.dart';
@@ -141,62 +142,69 @@ class _EditCommunityState extends State<EditCommunity> {
},
);
},
child: commonGlassContainer(
border: 0.9,
width: double.infinity,
height: 150.h,
borderradius: 10.r,
customWidget: bannerPath.isNotEmpty && isbannerAdded
? Stack(children: [
Image.file(
bannerPath[0]!,
fit: BoxFit.cover,
width: double.infinity,
child: DottedBorder(
strokeWidth: 1,
dashPattern: [7, 4],
borderType: BorderType.RRect,
radius: Radius.circular(14.r),
color: Color(0xFF434A53),
child: commonGlassContainer(
border: 0,
width: double.infinity,
height: 150.h,
borderradius: 10.r,
customWidget: bannerPath.isNotEmpty && isbannerAdded
? Stack(children: [
Image.file(
bannerPath[0]!,
fit: BoxFit.cover,
width: double.infinity,
),
Positioned(
right: 5,
bottom: 5,
child: GestureDetector(
onTap: () {
bannerPath.clear();
isbannerAdded = false;
setState(() {});
},
child: Container(
width: 27,
height: 27,
decoration: ShapeDecoration(
color: Color(0xFF7E7E7E),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(5)),
),
child: Icon(
Icons.delete_outline_outlined,
color: Colors.white,
))),
),
])
: 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"),
),
],
),
),
Positioned(
right: 5,
bottom: 5,
child: GestureDetector(
onTap: () {
bannerPath.clear();
isbannerAdded = false;
setState(() {});
},
child: Container(
width: 27,
height: 27,
decoration: ShapeDecoration(
color: Color(0xFF7E7E7E),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(5)),
),
child: Icon(
Icons.delete_outline_outlined,
color: Colors.white,
))),
),
])
: 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),
@@ -243,7 +251,14 @@ class _EditCommunityState extends State<EditCommunity> {
sizedBoxHeight(14.h),
CustomTextFormField(
textEditingController: communitynameController,
validator: (val) {
if (val == null || val.isEmpty) {
return 'Enter Community name';
}
return null;
},
),
sizedBoxHeight(25.h),
text16w400_FCFCFC("Group description"),
sizedBoxHeight(14.h),
CustomTextFormField2(

View File

@@ -2,8 +2,8 @@ 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/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';

View File

@@ -1,8 +1,8 @@
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/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
@@ -40,7 +40,15 @@ class _NewTagState extends State<NewTag> {
sizedBoxHeight(30.h),
text16w400_FCFCFC("Tag name"),
sizedBoxHeight(16.h),
CustomTextFormField(),
CustomTextFormField(
hintText: "",
validator: (val) {
if (val == null || val.isEmpty) {
return 'Enter a tag name';
}
return null;
},
),
sizedBoxHeight(80.h),
CustomButton(text: "Add", onPressed: () {})
]),

View File

@@ -5,8 +5,8 @@ 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/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';

View File

@@ -4,8 +4,8 @@ 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/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';

View File

@@ -1,14 +1,15 @@
import 'dart:io';
import 'package:dotted_border/dotted_border.dart';
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/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/ImageUpload.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
@@ -110,66 +111,80 @@ class _NewCommunityState extends State<NewCommunity> {
},
);
},
child: commonGlassContainer(
border: 0.9,
width: double.infinity,
height: 130.h,
borderradius: 10.r,
customWidget: bannerPath.isNotEmpty && isbannerAdded
? Stack(children: [
Image.file(
bannerPath[0]!,
fit: BoxFit.cover,
width: double.infinity,
child: DottedBorder(
strokeWidth: 1,
dashPattern: [7, 4],
borderType: BorderType.RRect,
radius: Radius.circular(14.r),
color: Color(0xFF434A53),
child: commonGlassContainer(
border: 0,
width: double.infinity,
height: 130.h,
borderradius: 10.r,
customWidget: bannerPath.isNotEmpty && isbannerAdded
? Stack(children: [
Image.file(
bannerPath[0]!,
fit: BoxFit.cover,
width: double.infinity,
),
Positioned(
right: 5,
bottom: 5,
child: GestureDetector(
onTap: () {
bannerPath.clear();
isbannerAdded = false;
setState(() {});
},
child: Container(
width: 27,
height: 27,
decoration: ShapeDecoration(
color: Color(0xFF7E7E7E),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(5)),
),
child: Icon(
Icons.delete_outline_outlined,
color: Colors.white,
))),
),
])
: 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"),
],
),
),
Positioned(
right: 5,
bottom: 5,
child: GestureDetector(
onTap: () {
bannerPath.clear();
isbannerAdded = false;
setState(() {});
},
child: Container(
width: 27,
height: 27,
decoration: ShapeDecoration(
color: Color(0xFF7E7E7E),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(5)),
),
child: Icon(
Icons.delete_outline_outlined,
color: Colors.white,
))),
),
])
: 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(),
CustomTextFormField(
validator: (val) {
if (val == null || val.isEmpty) {
return 'Enter Community name';
}
return null;
},
),
sizedBoxHeight(25.h),
text16w400_FCFCFC("Type of community*"),
sizedBoxHeight(15.h),

View File

@@ -27,9 +27,7 @@ class _CommunityDetailsState extends State<CommunityDetails> {
extendBody: true,
appBar: CommonAppbar(
titleTxt: "",
customActionWidget:
PopupMenuButton(
customActionWidget: PopupMenuButton(
surfaceTintColor: Color(0xFF222935),
constraints: BoxConstraints.tightFor(width: 180.w),
offset: Offset(0, 40),
@@ -151,7 +149,6 @@ class _CommunityDetailsState extends State<CommunityDetails> {
height: 20.h,
width: 20.w,
)),
),
body: Stack(children: [
const CommonBlurLeftRed(),
@@ -237,6 +234,7 @@ class _CommunityDetailsState extends State<CommunityDetails> {
children: [
Row(
children: [
sizedBoxWidth(16.w),
stackContainers(
number: "+2",
containerImages: [
@@ -638,71 +636,57 @@ class _CommunityDetailsState extends State<CommunityDetails> {
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Obx(() {
return ReactionButton<String>(
onReactionChanged: (reaction) {
updateImage(reaction?.value ?? 'like');
debugPrint(
'Selected value: ${reaction?.value}');
},
reactions: <Reaction<String>?>[
Reaction<String>(
value: 'like',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/f7_hand-thumbsup.png'),
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
Reaction<String>(
value: 'heart',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/heart 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/heart 2.png'),
),
Reaction<String>(
value: 'party',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/party-popper 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/party-popper 2.png'),
),
],
selectedReaction: Reaction<String>(
value: 'like',
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
boxColor: Colors.white,
boxElevation: 9,
boxRadius: 30,
itemsSpacing: 8,
itemScale: 0.4,
itemSize: Size(45, 45),
boxPadding: EdgeInsets.all(8),
boxAnimationDuration:
Duration(milliseconds: 200),
itemAnimationDuration:
Duration(milliseconds: 500),
hoverDuration: Duration(milliseconds: 700),
// toggle: false,
child: _buildReactionsIcon(mainImage.value),
);
})
],
Obx(() {
return ReactionButton<String>(
onReactionChanged: (reaction) {
updateImage(reaction?.value ?? 'like');
debugPrint('Selected value: ${reaction?.value}');
},
reactions: <Reaction<String>?>[
Reaction<String>(
value: 'like',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/f7_hand-thumbsup.png'),
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
Reaction<String>(
value: 'heart',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/heart 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/heart 2.png'),
),
Reaction<String>(
value: 'party',
previewIcon: _buildReactionsPreviewIcon(
'assets/images/png/party-popper 2.png'),
icon: _buildReactionsIcon(
'assets/images/png/party-popper 2.png'),
),
],
selectedReaction: Reaction<String>(
value: 'like',
icon: _buildReactionsIcon(
'assets/images/png/f7_hand-thumbsup.png'),
),
],
),
sizedBoxHeight(8.h),
text11w400_FCFCFC('Like')
boxColor: Colors.white,
boxElevation: 9,
boxRadius: 30,
itemsSpacing: 8,
itemScale: 0.4,
itemSize: Size(45, 45),
boxPadding: EdgeInsets.all(8),
boxAnimationDuration: Duration(milliseconds: 200),
itemAnimationDuration: Duration(milliseconds: 500),
hoverDuration: Duration(milliseconds: 700),
// toggle: false,
child: _buildReactionsIcon(mainImage.value),
);
})
],
),
GestureDetector(
@@ -752,10 +736,16 @@ class _CommunityDetailsState extends State<CommunityDetails> {
}
Widget _buildReactionsIcon(String assetPath) {
return Image.asset(
assetPath,
height: 19.h,
width: 19.w,
return Column(
children: [
Image.asset(
assetPath,
height: 19.h,
width: 19.w,
),
sizedBoxHeight(8.h),
text11w400_FCFCFC('Like')
],
);
}

View File

@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:regroup/Utils/Common/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
@@ -151,6 +152,153 @@ class _CustomDropDownWidgetSignupState
}
}
class CustomDropDownTag1 extends StatefulWidget {
const CustomDropDownTag1(
{Key? key,
required this.header,
required this.title,
required this.listData,
required this.onItemSelected,
required this.leadingImage,
required this.rowData})
: super(key: key);
final String header;
final String title;
final List<String> listData;
final List<String> rowData;
final Function(String) onItemSelected;
final Widget? leadingImage;
@override
State<CustomDropDownTag1> createState() => _CustomDropDownTag1State();
}
class _CustomDropDownTag1State extends State<CustomDropDownTag1> {
RxBool onDropTap = false.obs;
RxString selectedValue = "".obs;
RxList<String> filteredListData = <String>[].obs;
TextEditingController textEditingController = TextEditingController();
@override
void initState() {
super.initState();
filteredListData.value = widget.listData;
textEditingController.addListener(() {
filterList();
});
}
void filterList() {
String query = textEditingController.text.toLowerCase();
if (query.isNotEmpty) {
filteredListData.value = widget.listData
.where((item) => item.toLowerCase().contains(query))
.toList();
} else {
filteredListData.value = widget.listData;
}
onDropTap.value = filteredListData.isNotEmpty;
}
@override
Widget build(BuildContext context) {
return Obx(
() => Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
CustomTextFormField(
hintText: widget.header,
suffixIcon: GestureDetector(
onTap: () {
onDropTap.value = !onDropTap.value;
},
child: Container(
height: 20.h,
width: 20,
child: Center(
child: Image.asset(
'assets/images/png/Frame 58575.png',
height: 20.h,
width: 20,
),
),
),
),
textEditingController: textEditingController,
// onInput: (p0) {
// onDropTap.value = !onDropTap.value;
// },
onTap: () {
onDropTap.value = !onDropTap.value;
},
),
if (onDropTap.value)
Container(
width: double.infinity,
decoration: BoxDecoration(
color: Color(0xFFFFFFFF).withOpacity(0.10),
borderRadius: BorderRadius.vertical(
bottom: Radius.circular(30.r),
),
border: Border.all(color: const Color(0xFF434A53)),
gradient: LinearGradient(
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [
const Color(0xFFffffff).withOpacity(0.50),
const Color(0xFFFFFFFF).withOpacity(0.50),
],
),
),
child: ListView.builder(
shrinkWrap: true,
itemCount: filteredListData.length,
itemBuilder: (context, index) {
return InkWell(
onTap: () {
selectedValue.value = filteredListData[index];
onDropTap.value = false;
textEditingController.text = selectedValue.value;
widget.onItemSelected(selectedValue.value);
},
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(
left: 20.0, right: 20.0, top: 10.0, bottom: 10.0),
child: Row(
children: [
Text(
filteredListData[index],
style: TextStyle(
color: Colors.white,
fontSize: 16.sp,
fontWeight: FontWeight.w400,
fontFamily: 'Helvetica'),
),
Spacer(),
text14400whiteblur(widget.rowData[widget.listData
.indexOf(filteredListData[index])]),
],
),
),
if (index != filteredListData.length - 1)
Divider(thickness: 1, color: const Color(0xFF434A53)),
],
),
);
},
),
),
],
),
);
}
}
class CustomDropDownTag extends StatefulWidget {
const CustomDropDownTag(
{Key? key,

View File

@@ -29,6 +29,8 @@ class CustomTextFormField extends StatefulWidget {
this.onInput,
this.onTap,
this.suffixIcon,
this.opacity1 = 0.04,
this.opacity2 = 0.05,
}) : super(key: key);
final String? Function(String?)? validator;
@@ -47,6 +49,9 @@ class CustomTextFormField extends StatefulWidget {
final Function(String)? onInput;
final VoidCallback? onTap;
final Widget? suffixIcon;
final double opacity1;
final double opacity2;
String? validationMessage;
@override
@@ -85,8 +90,8 @@ class _CustomTextFormFieldState extends State<CustomTextFormField> {
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [
const Color(0xFFffffff).withOpacity(0.04),
const Color(0xFFFFFFFF).withOpacity(0.05),
const Color(0xFFffffff).withOpacity(widget.opacity1),
const Color(0xFFFFFFFF).withOpacity(widget.opacity2),
],
stops: [
0.1,
@@ -121,8 +126,12 @@ class _CustomTextFormFieldState extends State<CustomTextFormField> {
color: Colors.white,
fontWeight: FontWeight.w400,
fontFamily: 'Helvetica'),
prefixIcon:
widget.leadingIcon == null ? null : widget.leadingIcon!,
prefixIcon: widget.leadingIcon == null
? null
: Padding(
padding: EdgeInsets.symmetric(horizontal: 10),
child: widget.leadingIcon!,
),
suffixIcon: widget.isInputPassword
? GestureDetector(
onTap: () => setState(() => obscureText = !obscureText),
@@ -155,7 +164,7 @@ class _CustomTextFormFieldState extends State<CustomTextFormField> {
: widget.suffixIcon!,
border: InputBorder.none,
contentPadding:
const EdgeInsets.symmetric(horizontal: 10, vertical: 10),
const EdgeInsets.symmetric(horizontal: 20, vertical: 10),
),
keyboardType: widget.texttype,
inputFormatters: widget.inputFormatters,
@@ -166,11 +175,13 @@ class _CustomTextFormFieldState extends State<CustomTextFormField> {
),
),
sizedBoxHeight(5.h),
Text(
widget.validationMessage ?? '',
style: TextStyle(color: Colors.red, fontSize: 12.sp),
overflow: TextOverflow.ellipsis,
),
widget.validationMessage == null
? SizedBox()
: Text(
widget.validationMessage ?? '',
style: TextStyle(color: Colors.red, fontSize: 12.sp),
overflow: TextOverflow.ellipsis,
),
],
);
}

View File

@@ -0,0 +1 @@
// TODO Implement this library.

View File

@@ -32,6 +32,16 @@ Widget text20400white(String text) {
fontFamily: 'Helvetica'),
);
}
Widget text20400FCFCFC(String text) {
return Text(
text,
style: TextStyle(
fontSize: 20.sp,
color: Color(0xFFFCFCFC),
fontWeight: FontWeight.w400,
fontFamily: 'Helvetica'),
);
}
Widget text20700white(String text) {
return Text(
@@ -149,10 +159,10 @@ Widget text144005DFD63(String text) {
);
}
Widget text14400whiteblur(String text) {
Widget text14400whiteblur(String text, {TextAlign? textAlign}) {
return Text(
text,
// textAlign: TextAlign.center,
textAlign: textAlign,
style: TextStyle(
fontSize: 14.sp,
color: AppColors.white.withOpacity(0.8),

View File

@@ -206,7 +206,7 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver {
fontFamily: 'Cambria',
),
debugShowCheckedModeBanner: false,
initialRoute: RouteName.mainscreen,
initialRoute: RouteName.individualprofilestep1,
//initialRoute: RouteName.mainScreen,
getPages: AppRoutes.appRoutes(),

View File

@@ -74,7 +74,7 @@ class _SelectIndividualProfileState extends State<SelectIndividualProfile> {
alignment: Alignment.topRight,
child: GestureDetector(
onTap: () {
Get.toNamed(RouteName.communitycommitscreen);
Get.toNamed(RouteName.communitycommitscreen);
},
child: Text(
'Skip',
@@ -221,7 +221,7 @@ class _ProfileContainerState extends State<ProfileContainer> {
bool isSelected = selectedIndex == widget.index;
return Container(
width: 358.w,
height: 100.h,
height: 126.h,
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),

View File

@@ -3,6 +3,8 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import 'package:glassmorphism/glassmorphism.dart';
import 'package:regroup/Common/CommonDropDown.dart';
import 'package:regroup/Utils/Common/CommonDropdown.dart';
import 'package:regroup/Utils/Common/CustomNextButton.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
@@ -18,6 +20,38 @@ class SelectIndividualActivity extends StatefulWidget {
}
class _SelectIndividualActivityState extends State<SelectIndividualActivity> {
final List<int> _selectedIndices = [];
void _onContainerTap(int index) {
setState(() {
if (_selectedIndices.contains(index)) {
_selectedIndices.remove(index);
} else {
if (_selectedIndices.length < 2) {
_selectedIndices.add(index);
} else {
_selectedIndices[1] = index;
}
}
});
}
Color _getGradientColor(int index) {
if (_selectedIndices.isEmpty) {
return Colors.transparent;
} else if (_selectedIndices.length == 1 &&
_selectedIndices.contains(index)) {
return Color(0XFFD90B2E);
} else if (_selectedIndices.length == 2) {
if (_selectedIndices[0] == index) {
return Color(0XFFD90B2E);
} else if (_selectedIndices[1] == index) {
return Color(0xFF009DAB);
}
}
return Colors.transparent;
}
@override
Widget build(BuildContext context) {
return Scaffold(
@@ -28,283 +62,377 @@ class _SelectIndividualActivityState extends State<SelectIndividualActivity> {
Positioned(top: 450, right: -30, child: CommonBlurRightSecond()),
Positioned(top: 530, left: -30, child: CommonBlurLeftBlue()),
GlassmorphicContainer(
width: MediaQuery.of(context).size.width,
height:
// 500.h,
MediaQuery.of(context).size.height,
borderRadius: 2,
blur: 10,
alignment: Alignment.bottomLeft,
border: 2,
linearGradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height,
borderRadius: 2,
blur: 10,
alignment: Alignment.bottomLeft,
border: 2,
linearGradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
],
),
borderGradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
Color(0XFF222935).withOpacity(0.60),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
],
),
borderGradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
],
),
child: Padding(
padding:
EdgeInsets.symmetric(horizontal: 16.w, vertical: 50.h),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Align(
alignment: Alignment.topRight,
child: GestureDetector(
onTap: () {
Color(0XFF222935).withOpacity(0.60),
],
),
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 50.h),
child: Expanded(
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Align(
alignment: Alignment.topRight,
child: GestureDetector(
onTap: () {
Get.toNamed(RouteName.communitycommitscreen);
},
child: Text(
'Skip',
style: TextStyle(
color: Colors.white,
fontSize: 16.sp,
fontFamily: 'Helvetica',
fontWeight: FontWeight.w400,
decoration: TextDecoration.underline,
decorationColor: Colors.white),
},
child: Text(
'Skip',
style: TextStyle(
color: Colors.white,
fontSize: 16.sp,
fontFamily: 'Helvetica',
fontWeight: FontWeight.w400,
decoration: TextDecoration.underline,
decorationColor: Colors.white),
),
),
),
),
sizedBoxHeight(30.h),
Align(
alignment: Alignment.center,
child: text16400white('Step 2 of 4')),
sizedBoxHeight(20.h),
Container(
width: 358.w,
height: 25.h,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side:
BorderSide(width: 1, color: Color(0xFF434A53)),
borderRadius: BorderRadius.circular(30),
),
),
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 8.w, vertical: 2.h),
child: Row(
children: [
Container(
width: 87.w,
height: 15.h,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Color(0xA5D90B2E),
Color(0x42D90B2E)
],
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30),
),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Container(
width: 15,
height: 15,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Color(0xFFD90B2E),
Color(0x60D90B2E)
],
),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(30),
),
),
)
],
))
],
),
),
),
sizedBoxHeight(40.h),
Center(
child:
text20400white('What is your main activity ?')),
sizedBoxHeight(10.w),
Center(
child: Container(
width: 154.w,
sizedBoxHeight(30.h),
Align(
alignment: Alignment.center,
child: text16400white('Step 2 of 4')),
sizedBoxHeight(20.h),
Container(
width: double.infinity,
height: 25.h,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(
width: 1,
strokeAlign: BorderSide.strokeAlignCenter,
color: Color(0xFF858585),
width: 1, color: Color(0xFF434A53)),
borderRadius: BorderRadius.circular(30),
),
),
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 8.w, vertical: 2.h),
child: Row(
children: [
Container(
width: 120.w,
height: 15.h,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Color(0xA5D90B2E),
Color(0x42D90B2E)
],
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30),
),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Container(
width: 15,
height: 15,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Color(0xFFD90B2E),
Color(0x60D90B2E)
],
),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(30),
),
),
)
],
))
],
),
),
),
sizedBoxHeight(40.h),
Center(
child: _selectedIndices.isEmpty
? text20400white('What is your main activity ?')
: text20400white('What else do you do?')),
sizedBoxHeight(10.w),
Center(
child: Container(
width: 154.w,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(
width: 1,
strokeAlign: BorderSide.strokeAlignCenter,
color: Color(0xFF858585),
),
),
),
),
),
),
sizedBoxHeight(30.h),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
ActivityContainer(
titleString: 'Kayaking',
image:
'assets/images/svg/individualact1.svg'),
ActivityContainer(
sizedBoxHeight(30.h),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
ActivityContainer(
index: 0,
titleString: 'Rowing',
image: 'assets/images/svg/individualact1.svg',
isSelected: _selectedIndices.contains(0),
gradientColor: _getGradientColor(0),
onTap: _onContainerTap,
),
ActivityContainer(
index: 1,
titleString: 'Badminton',
image: 'assets/images/svg/badminton.svg',
isSelected: _selectedIndices.contains(1),
gradientColor: _getGradientColor(1),
onTap: _onContainerTap,
),
ActivityContainer(
index: 2,
titleString: 'Cycling',
image:
'assets/images/svg/individualact2.svg'),
ActivityContainer(
titleString: 'Running',
image:
'assets/images/svg/individualact3.svg'),
],
),
sizedBoxHeight(20.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
ActivityContainer(
titleString: 'Swimming',
image:
'assets/images/svg/individualact4.svg'),
ActivityContainer(
titleString: 'Triathlon',
image:
'assets/images/svg/individualact5.svg'),
ActivityContainer(
titleString: 'Hiking',
image:
'assets/images/svg/individualact6.svg'),
],
),
sizedBoxHeight(20.h),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ActivityContainer(
image: 'assets/images/svg/individualact2.svg',
isSelected: _selectedIndices.contains(2),
gradientColor: _getGradientColor(2),
onTap: _onContainerTap,
),
],
),
SizedBox(height: 20.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
ActivityContainer(
index: 3,
titleString: 'Football',
image: 'assets/images/svg/individualact7.svg',
isSelected: _selectedIndices.contains(3),
gradientColor: _getGradientColor(3),
onTap: _onContainerTap,
),
ActivityContainer(
index: 4,
titleString: 'Weightlifting',
image: 'assets/images/svg/weightlifting.svg',
isSelected: _selectedIndices.contains(4),
gradientColor: _getGradientColor(4),
onTap: _onContainerTap,
),
ActivityContainer(
index: 5,
titleString: 'Running',
image: 'assets/images/svg/individualact3.svg',
isSelected: _selectedIndices.contains(5),
gradientColor: _getGradientColor(5),
onTap: _onContainerTap,
),
],
),
SizedBox(height: 20.h),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ActivityContainer(
index: 6,
titleString: 'Social',
image: 'assets/images/svg/individualact7.svg',
isSelected: _selectedIndices.contains(6),
gradientColor: _getGradientColor(6),
onTap: _onContainerTap,
),
SizedBox(width: 20.w),
ActivityContainer(
index: 7,
titleString: 'Special Interest (Societies)',
image:
'assets/images/svg/individualact7.svg'),
sizedBoxWidth(20.w),
ActivityContainer(
titleString: 'Rugby',
image:
'assets/images/svg/individualact8.svg'),
'assets/images/svg/special interest.svg',
isSelected: _selectedIndices.contains(7),
gradientColor: _getGradientColor(7),
onTap: _onContainerTap,
),
],
),
],
),
sizedBoxHeight(30.h),
text20400FCFCFC("Select other activity"),
sizedBoxHeight(25.h),
CustomDropDownRadio(
header: "",
title: "",
listData: [
"American football",
"Archery",
"Athletics",
"Baseball",
"Basketball",
"Boxing",
"Canoeing",
"Clay pigeon shooting",
"Climbing",
"Combat sports",
"Cricket",
"Dodgeball",
"Equestrian",
"Fencing",
"Gaelic football",
"Golf",
"Gymnastics",
"Handball",
"Hockey",
"Lacrosse",
"Modern biathlon and pentathlon",
"Netball",
"Orienteering",
"Pool and snooker",
"Powerlifting",
"Rifle",
"Rugby league",
"Rugby union",
"Sailing",
"Snowsports",
"Squash",
"Surfing",
"Swimming",
"Softball",
"Table tennis",
"Tennis",
"Touch rugby",
"Trampoline",
"Triathlon",
"Ultimate frisbee",
"Volleyball",
"Water polo",
"Windsurfing"
],
),
],
),
Spacer(flex: 1),
CustomButton(
text: "Continue",
onPressed: () {
Get.toNamed(RouteName.individualgroupstep3);
})
],
onItemSelected: (p0) {},
leadingImage: SizedBox()),
// Spacer(flex: 1),
sizedBoxHeight(35.h),
CustomButton(
text: "Continue",
onPressed: () {
Get.toNamed(RouteName.individualgroupstep3);
})
],
),
),
)),
),
),
)
],
));
}
}
class ActivityContainer extends StatefulWidget {
class ActivityContainer extends StatelessWidget {
final int index;
final String titleString;
final String image;
final bool isSelected;
final Color gradientColor;
final Function(int) onTap;
ActivityContainer({
Key? key,
required this.index,
required this.titleString,
required this.image,
}) : super(key: key);
@override
State<ActivityContainer> createState() => _ActivityContainerState();
}
class _ActivityContainerState extends State<ActivityContainer> {
bool _colorcontainer = false;
required this.isSelected,
required this.gradientColor,
required this.onTap,
});
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () {
setState(() {
_colorcontainer = !_colorcontainer;
});
// Set the selected ValueNotifier to true when tapped
},
child: Container(
width: 110.w,
height: 106.h,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: _colorcontainer
? [
Color(0XFFD90B2E).withOpacity(0.80),
Color(0XFFD90B2E).withOpacity(0.77),
Color(0XFFD90B2E).withOpacity(0.66),
Color(0XFFD90B2E).withOpacity(0.18),
]
: [
Colors.white.withOpacity(0.05999999865889549),
Colors.white.withOpacity(0.07999999821186066)
]),
shape: RoundedRectangleBorder(
side: BorderSide(width: 1, color: Color(0xFF434A53)),
borderRadius: BorderRadius.circular(10),
),
onTap: () => onTap(index),
child: Container(
width: 110.w,
height: 120.h,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: isSelected
? [
gradientColor.withOpacity(0.80),
gradientColor.withOpacity(0.77),
gradientColor.withOpacity(0.66),
gradientColor.withOpacity(0.18),
]
: [
Colors.white.withOpacity(0.06),
Colors.white.withOpacity(0.08),
],
),
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 10.w, vertical: 10.h),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SvgPicture.asset(
widget.image,
width: 50.w,
height: 50.h,
shape: RoundedRectangleBorder(
side: BorderSide(width: 1, color: Color(0xFF434A53)),
borderRadius: BorderRadius.circular(10),
),
),
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 10.w, vertical: 10.h),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SvgPicture.asset(
image,
width: 50.w,
height: 50.h,
),
SizedBox(height: 10.h),
SizedBox(
child: Text(
titleString,
style: TextStyle(
fontSize: 14.sp,
color: Colors.white,
fontWeight: FontWeight.w400,
),
textAlign: TextAlign.center,
),
sizedBoxHeight(10.h),
SizedBox(
// width: 60,
// height: 16,
child: text14400white(widget.titleString)),
],
),
),
],
),
));
),
),
);
}
}

View File

@@ -79,7 +79,7 @@ class _SelectIndividualGroupState extends State<SelectIndividualGroup> {
child: GestureDetector(
onTap: () {
Get.toNamed(RouteName.communitycommitscreen);
},
},
child: Text(
'Skip',
style: TextStyle(
@@ -98,7 +98,7 @@ class _SelectIndividualGroupState extends State<SelectIndividualGroup> {
child: text16400white('Step 3 of 4')),
sizedBoxHeight(20.h),
Container(
width: 358.w,
width: double.infinity,
height: 25.h,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
@@ -113,7 +113,7 @@ class _SelectIndividualGroupState extends State<SelectIndividualGroup> {
child: Row(
children: [
Container(
width: 178.w,
width: 240.w,
height: 15.h,
decoration: ShapeDecoration(
gradient: LinearGradient(

View File

@@ -71,76 +71,60 @@ class _SelectIndividualCommunityState extends State<SelectIndividualCommunity> {
child: Padding(
padding:
EdgeInsets.symmetric(horizontal: 16.w, vertical: 50.h),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Align(
alignment: Alignment.topRight,
child: GestureDetector(
onTap: () {
Get.toNamed(RouteName.communitycommitscreen);
},
child: Text(
'Skip',
style: TextStyle(
color: Colors.white,
fontSize: 16.sp,
fontFamily: 'Helvetica',
fontWeight: FontWeight.w400,
decoration: TextDecoration.underline,
decorationColor: Colors.white),
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Align(
alignment: Alignment.topRight,
child: GestureDetector(
onTap: () {
Get.toNamed(RouteName.communitycommitscreen);
},
child: Text(
'Skip',
style: TextStyle(
color: Colors.white,
fontSize: 16.sp,
fontFamily: 'Helvetica',
fontWeight: FontWeight.w400,
decoration: TextDecoration.underline,
decorationColor: Colors.white),
),
),
),
),
sizedBoxHeight(30.h),
Align(
alignment: Alignment.center,
child: text16400white('Step 4 of 4')),
sizedBoxHeight(20.h),
Container(
width: 358.w,
height: 25.h,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(
width: 1, color: Color(0xFF434A53)),
borderRadius: BorderRadius.circular(30),
sizedBoxHeight(30.h),
Align(
alignment: Alignment.center,
child: text16400white('Step 4 of 4')),
sizedBoxHeight(20.h),
Container(
width: double.infinity,
height: 25.h,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(
width: 1, color: Color(0xFF434A53)),
borderRadius: BorderRadius.circular(30),
),
),
),
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 8.w, vertical: 2.h),
child: Row(
children: [
Container(
width: 260.w,
height: 15.h,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Color(0xA5D90B2E),
Color(0x42D90B2E)
],
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30),
),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Container(
width: 15,
height: 15,
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 8.w, vertical: 2.h),
child: Row(
children: [
Expanded(
child: Container(
width: double.infinity,
child: Container(
height: 15.h,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Color(0xFFD90B2E),
Color(0x60D90B2E)
Color(0xA5D90B2E),
Color(0x42D90B2E)
],
),
shape: RoundedRectangleBorder(
@@ -148,98 +132,134 @@ class _SelectIndividualCommunityState extends State<SelectIndividualCommunity> {
BorderRadius.circular(30),
),
),
)
],
))
],
child: Row(
mainAxisAlignment:
MainAxisAlignment.end,
children: [
Container(
width: 15,
height: 15,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin:
Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Color(0xFFD90B2E),
Color(0x60D90B2E)
],
),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(
30),
),
),
)
],
)),
),
)
],
),
),
),
),
sizedBoxHeight(40.h),
Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
text20400white('Find your community'),
sizedBoxWidth(5.w),
Image.asset(
'assets/images/png/informationicon.png',
)
],
)),
sizedBoxHeight(10.w),
Center(
child: Container(
width: 108.w,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(
width: 1,
strokeAlign: BorderSide.strokeAlignCenter,
color: Color(0xFF858585),
sizedBoxHeight(40.h),
Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
text20400white('Find your community'),
sizedBoxWidth(5.w),
Image.asset(
'assets/images/png/informationicon.png',
)
],
)),
sizedBoxHeight(10.w),
Center(
child: Container(
width: 108.w,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(
width: 1,
strokeAlign: BorderSide.strokeAlignCenter,
color: Color(0xFF858585),
),
),
),
),
),
),
sizedBoxHeight(30.h),
CustomTextFormField(
textEditingController: searchcontroller,
texttype: TextInputType.text,
hintText: "Search community",
leadingIcon:
// const Icon(Icons.mail_outline),
// SvgPicture.asset(
// // width: 23.w,
// // height: 23.h,
// 'assets/images/svg/search.svg',
// ),
Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Icon(
Icons.search,
size: 35,
color: Colors.white,
sizedBoxHeight(30.h),
CustomTextFormField(
textEditingController: searchcontroller,
texttype: TextInputType.text,
hintText: "Search community",
leadingIcon:
// const Icon(Icons.mail_outline),
// SvgPicture.asset(
// // width: 23.w,
// // height: 23.h,
// 'assets/images/svg/search.svg',
// ),
Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Icon(
Icons.search,
size: 35,
color: Colors.white,
),
),
// validatorText: "Enter your full name",
inputFormatters: [
// LengthLimitingTextInputFormatter(20),
RemoveEmojiInputFormatter(),
],
),
// validatorText: "Enter your full name",
inputFormatters: [
// LengthLimitingTextInputFormatter(20),
RemoveEmojiInputFormatter(),
],
),
sizedBoxHeight(30.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
CommunitySelect(
titleString: 'Active alliance network ',
image: 'assets/images/png/community1.png'),
CommunitySelect(
titleString: 'Fitfam federation',
image: 'assets/images/png/community2.png'),
],
),
sizedBoxHeight(30.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
CommunitySelect(
titleString: 'The athletic town',
image:
'assets/images/png/groupindividual3.png'),
CommunitySelect(
titleString: 'Football Fever',
image: 'assets/images/png/community3.png'),
],
),
Spacer(flex: 1),
CustomButton(
text: "Continue",
onPressed: () {
Get.toNamed(RouteName.communitycommitscreen);
})
],
sizedBoxHeight(30.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
CommunitySelect(
titleString: 'Liverpool FC ',
image:
'assets/images/png/groupindividual2.png'),
CommunitySelect(
titleString: 'Cambridge rugby Club',
image: 'assets/images/png/community2.png'),
CommunitySelect(
titleString: 'Cambridge rugby Club',
image: 'assets/images/png/community2.png'),
],
),
sizedBoxHeight(30.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
CommunitySelect(
titleString: 'The athletic town',
image:
'assets/images/png/groupindividual3.png'),
CommunitySelect(
titleString: 'Football Fever',
image:
'assets/images/png/groupindividual2.png'),
CommunitySelect(
titleString: 'Football Fever',
image:
'assets/images/png/groupindividual2.png'),
],
),
// Spacer(flex: 1),
sizedBoxHeight(40.h),
CustomButton(
text: "Continue",
onPressed: () {
Get.toNamed(RouteName.communitycommitscreen);
})
],
),
),
)),
),
@@ -267,10 +287,10 @@ class _CommunitySelectState extends State<CommunitySelect> {
@override
Widget build(BuildContext context) {
return Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
return Column(crossAxisAlignment: CrossAxisAlignment.center, children: [
Container(
width: 169,
height: 74,
width: 73.w,
height: 73.h,
decoration: ShapeDecoration(
image: DecorationImage(
image: AssetImage(
@@ -278,11 +298,13 @@ class _CommunitySelectState extends State<CommunitySelect> {
widget.image),
fit: BoxFit.fill,
),
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(5)),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(100),
),
),
),
sizedBoxHeight(15.h),
text12400white(widget.titleString),
SizedBox(width: 94.w, child: text12400white(widget.titleString)),
sizedBoxHeight(15.h),
GestureDetector(
onTap: () {
@@ -291,8 +313,8 @@ class _CommunitySelectState extends State<CommunitySelect> {
});
},
child: Container(
width: 169,
height: 23,
width: 100.w,
height: 23.h,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(width: 1, color: Color(0xFFFF002B)),

View File

@@ -95,7 +95,7 @@ class _SignupendPageState extends State<SignupendPage> {
// text16400white(
// '''Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.'''),
Text(
'''Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.''',
'''Congratulations, your account has been successfully created. Get ready to regroup with your community''',
textAlign: TextAlign.center,
style: TextStyle(
color: Color(0xCCFCFCFC),
@@ -106,8 +106,9 @@ class _SignupendPageState extends State<SignupendPage> {
),
sizedBoxHeight(20.h),
CustomButton(
text: 'Start your journey', onPressed: () {
Get.toNamed(RouteName.mainscreen);
text: "Let's begin",
onPressed: () {
Get.toNamed(RouteName.mainscreen);
})
],
),

View File

@@ -90,11 +90,21 @@ class RouteName {
static const String groupinfo = '/groupinfo';
static const String newpost = '/newpost';
static const String groupevent = '/groupevent';
static const String connectcommunity = '/connectcommunity';
//subgroup
static const String subgroups = '/subgroups';
static const String subgroupinfo = '/subgroupinfo';
static const String editsubgroupinfo = '/editsubgroupinfo';
static const String subgroupsetting = '/subgroupsetting';
//ExploreDesign
static const String explorescreen = '/explorescreen';
static const String searchgroup = '/searchgroup';
static const String detailexplore = '/detailexplore';
static const String notificaationpage = '/notificationpage';
}

View File

@@ -13,6 +13,10 @@ import 'package:regroup/Feed%20Module/Main_Screens/Chats/View/newchatpage.dart';
import 'package:regroup/Feed%20Module/Main_Screens/Chats/View/newgroup.dart';
import 'package:regroup/Feed%20Module/Main_Screens/Chats/View/userchat.dart';
import 'package:regroup/Feed%20Module/Main_Screens/Community/PostDetailScreen/View/ReactionView.dart';
import 'package:regroup/Feed%20Module/Main_Screens/ExploreDesign/DetailExplore.dart';
import 'package:regroup/Feed%20Module/Main_Screens/ExploreDesign/ExploreScreen.dart';
import 'package:regroup/Feed%20Module/Main_Screens/ExploreDesign/SearchGroup.dart';
import 'package:regroup/Feed%20Module/Main_Screens/GroupTab/View/ConnectCommunity.dart';
import 'package:regroup/Feed%20Module/Main_Screens/GroupTab/View/GoupSettings.dart';
import 'package:regroup/Feed%20Module/Main_Screens/GroupTab/View/GroupDetail.dart';
import 'package:regroup/Feed%20Module/Main_Screens/GroupTab/View/GroupEvent.dart';
@@ -21,6 +25,10 @@ import 'package:regroup/Feed%20Module/Main_Screens/GroupTab/View/GroupManage.dar
import 'package:regroup/Feed%20Module/Main_Screens/GroupTab/View/GroupTab.dart';
import 'package:regroup/Feed%20Module/Main_Screens/GroupTab/View/NewPost.dart';
import 'package:regroup/Feed%20Module/Main_Screens/GroupTab/View/RequestedGroups.dart';
import 'package:regroup/Feed%20Module/Main_Screens/GroupTab/View/SubGroup/EditSubgroupInfo.dart';
import 'package:regroup/Feed%20Module/Main_Screens/GroupTab/View/SubGroup/SubGroupInfo.dart';
import 'package:regroup/Feed%20Module/Main_Screens/GroupTab/View/SubGroup/SubgroupSetting.dart';
import 'package:regroup/Feed%20Module/Main_Screens/GroupTab/View/SubGroup/Subgroups.dart';
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/Badges/Badges.dart';
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/Clubs/Clubs.dart';
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/EditProfile/EditProfile.dart';
@@ -383,11 +391,11 @@ class AppRoutes {
name: RouteName.verifycode,
page: () => const VerifyCode(),
),
GetPage(
GetPage(
name: RouteName.grouptab,
page: () => const GroupTab(),
),
GetPage(
GetPage(
name: RouteName.requestedgroups,
page: () => const RequestedGroups(),
),
@@ -399,21 +407,57 @@ class AppRoutes {
name: RouteName.groupsettings,
page: () => const GroupSettings(),
),
GetPage(
GetPage(
name: RouteName.groupmanage,
page: () => const GroupManage(),
),
GetPage(
GetPage(
name: RouteName.groupinfo,
page: () => const GroupInfo(),
),
GetPage(
GetPage(
name: RouteName.newpost,
page: () => const NewPost(),
),
GetPage(
GetPage(
name: RouteName.groupevent,
page: () => const GroupEvent(),
),
GetPage(
name: RouteName.connectcommunity,
page: () => const ConnectCommunity(),
),
GetPage(
name: RouteName.subgroups,
page: () => const SubGroups(),
),
GetPage(
name: RouteName.subgroupinfo,
page: () => const SubGroupInfo(),
),
GetPage(
name: RouteName.subgroupinfo,
page: () => const SubGroupInfo(),
),
GetPage(
name: RouteName.editsubgroupinfo,
page: () => const EditSubgroupInfo(),
),
GetPage(
name: RouteName.subgroupsetting,
page: () => const SubGroupSetting(),
),
GetPage(
name: RouteName.explorescreen,
page: () => const ExploreScreen(),
),
GetPage(
name: RouteName.searchgroup,
page: () => const SearchGroup(),
),
GetPage(
name: RouteName.detailexplore,
page: () => const DetailExplore(),
),
];
}

View File

@@ -145,6 +145,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "5.4.3+1"
dotted_border:
dependency: "direct main"
description:
name: dotted_border
sha256: "108837e11848ca776c53b30bc870086f84b62ed6e01c503ed976e8f8c7df9c04"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
dropdown_button2:
dependency: "direct main"
description:
@@ -217,6 +225,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.9.3+1"
fixnum:
dependency: transitive
description:
name: fixnum
sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1"
url: "https://pub.dev"
source: hosted
version: "1.1.0"
flutter:
dependency: "direct main"
description: flutter
@@ -280,6 +296,54 @@ packages:
url: "https://pub.dev"
source: hosted
version: "8.2.5"
geolocator:
dependency: "direct main"
description:
name: geolocator
sha256: "6cb9fb6e5928b58b9a84bdf85012d757fd07aab8215c5205337021c4999bad27"
url: "https://pub.dev"
source: hosted
version: "11.1.0"
geolocator_android:
dependency: transitive
description:
name: geolocator_android
sha256: "00c7177a95823dd3ee35ef42fd8666cd27d219ae14cea472ac76a21dff43000b"
url: "https://pub.dev"
source: hosted
version: "4.6.0"
geolocator_apple:
dependency: transitive
description:
name: geolocator_apple
sha256: bc2aca02423ad429cb0556121f56e60360a2b7d694c8570301d06ea0c00732fd
url: "https://pub.dev"
source: hosted
version: "2.3.7"
geolocator_platform_interface:
dependency: transitive
description:
name: geolocator_platform_interface
sha256: "386ce3d9cce47838355000070b1d0b13efb5bc430f8ecda7e9238c8409ace012"
url: "https://pub.dev"
source: hosted
version: "4.2.4"
geolocator_web:
dependency: transitive
description:
name: geolocator_web
sha256: "49d8f846ebeb5e2b6641fe477a7e97e5dd73f03cbfef3fd5c42177b7300fb0ed"
url: "https://pub.dev"
source: hosted
version: "3.0.0"
geolocator_windows:
dependency: transitive
description:
name: geolocator_windows
sha256: "53da08937d07c24b0d9952eb57a3b474e29aae2abf9dd717f7e1230995f13f0e"
url: "https://pub.dev"
source: hosted
version: "0.2.3"
get:
dependency: "direct main"
description:
@@ -296,6 +360,38 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.0.0"
google_maps_flutter:
dependency: "direct main"
description:
name: google_maps_flutter
sha256: abefcb1e5e5c96bdd8084939dda555257af272c7972902ca46d5631092c1df68
url: "https://pub.dev"
source: hosted
version: "2.2.8"
google_maps_flutter_android:
dependency: transitive
description:
name: google_maps_flutter_android
sha256: "0bcadb80eba39afda77dede89a6caafd3b68f2786b90491eceea4a01c3db181c"
url: "https://pub.dev"
source: hosted
version: "2.8.0"
google_maps_flutter_ios:
dependency: transitive
description:
name: google_maps_flutter_ios
sha256: c89556ed0338fcb4b843c9fcdafac7ad2df601c8b41286d82f0727f7f66434e4
url: "https://pub.dev"
source: hosted
version: "2.3.6"
google_maps_flutter_platform_interface:
dependency: transitive
description:
name: google_maps_flutter_platform_interface
sha256: bd60ca330e3c7763b95b477054adec338a522d982af73ecc520b232474063ac5
url: "https://pub.dev"
source: hosted
version: "2.8.0"
http:
dependency: transitive
description:
@@ -488,6 +584,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.8.3"
path_drawing:
dependency: transitive
description:
name: path_drawing
sha256: bbb1934c0cbb03091af082a6389ca2080345291ef07a5fa6d6e078ba8682f977
url: "https://pub.dev"
source: hosted
version: "1.0.1"
path_parsing:
dependency: transitive
description:
@@ -709,6 +813,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.10.0"
sprintf:
dependency: transitive
description:
name: sprintf
sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23"
url: "https://pub.dev"
source: hosted
version: "7.0.0"
stack_trace:
dependency: transitive
description:
@@ -725,6 +837,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.2"
stream_transform:
dependency: transitive
description:
name: stream_transform
sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
string_scanner:
dependency: transitive
description:
@@ -789,6 +909,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.3.2"
uuid:
dependency: transitive
description:
name: uuid
sha256: "814e9e88f21a176ae1359149021870e87f7cddaf633ab678a5d2b0bff7fd1ba8"
url: "https://pub.dev"
source: hosted
version: "4.4.0"
vector_graphics:
dependency: transitive
description:

View File

@@ -61,6 +61,9 @@ dependencies:
flutter_reaction_button: any
syncfusion_flutter_calendar: ^25.2.7
calendar_date_picker2: ^1.0.3
dotted_border: ^2.1.0
google_maps_flutter: ^2.2.8
geolocator: ^11.1.0
dev_dependencies: