diff --git a/assets/images/svg/fluent_home-20-regular.svg b/assets/images/svg/fluent_home-20-regular.svg
new file mode 100644
index 0000000..b28e2f5
--- /dev/null
+++ b/assets/images/svg/fluent_home-20-regular.svg
@@ -0,0 +1,3 @@
+
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index add4e3d..1e00913 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -8,6 +8,7 @@
/* Begin PBXBuildFile section */
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
+ 2105BA461347F33698D3FD7B /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC7FC30109CCD5376F6BFA0F /* Pods_Runner.framework */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
@@ -29,12 +30,15 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
+ 01A8D59FC22474B9D47BC82F /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
+ 3E093EFD052120EBB5EFE242 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
+ 8DA153E7FEAC51D97681DB93 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -42,6 +46,7 @@
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ DC7FC30109CCD5376F6BFA0F /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -49,12 +54,23 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ 2105BA461347F33698D3FD7B /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
+ 01448FBCAC46C16EC8BC1181 /* Pods */ = {
+ isa = PBXGroup;
+ children = (
+ 8DA153E7FEAC51D97681DB93 /* Pods-Runner.debug.xcconfig */,
+ 3E093EFD052120EBB5EFE242 /* Pods-Runner.release.xcconfig */,
+ 01A8D59FC22474B9D47BC82F /* Pods-Runner.profile.xcconfig */,
+ );
+ path = Pods;
+ sourceTree = "";
+ };
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
@@ -72,6 +88,8 @@
9740EEB11CF90186004384FC /* Flutter */,
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
+ 01448FBCAC46C16EC8BC1181 /* Pods */,
+ DE8E73CF7AB07643531FB23E /* Frameworks */,
);
sourceTree = "";
};
@@ -98,6 +116,14 @@
path = Runner;
sourceTree = "";
};
+ DE8E73CF7AB07643531FB23E /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ DC7FC30109CCD5376F6BFA0F /* Pods_Runner.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@@ -105,12 +131,15 @@
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
+ 2427B225240D99C3274E4E9F /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
+ 193E6ECF33FCE0798A403773 /* [CP] Embed Pods Frameworks */,
+ A1A5C179E86574032091061E /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@@ -127,7 +156,7 @@
97C146E61CF9000F007C117D /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 1300;
+ LastUpgradeCheck = 1430;
ORGANIZATIONNAME = "";
TargetAttributes = {
97C146ED1CF9000F007C117D = {
@@ -169,6 +198,45 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
+ 193E6ECF33FCE0798A403773 /* [CP] Embed Pods Frameworks */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
+ );
+ name = "[CP] Embed Pods Frameworks";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ 2427B225240D99C3274E4E9F /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
@@ -176,6 +244,7 @@
files = (
);
inputPaths = (
+ "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
);
name = "Thin Binary";
outputPaths = (
@@ -199,6 +268,23 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
};
+ A1A5C179E86574032091061E /* [CP] Copy Pods Resources */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
+ );
+ name = "[CP] Copy Pods Resources";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -274,7 +360,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
@@ -290,13 +376,18 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+ DEVELOPMENT_TEAM = A89AY6VY4F;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
+ INFOPLIST_KEY_CFBundleDisplayName = Regroup;
+ INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.example.regroup;
+ MARKETING_VERSION = 1;
+ PRODUCT_BUNDLE_IDENTIFIER = com.regroup.wdi;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
@@ -351,7 +442,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -400,7 +491,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
@@ -418,13 +509,18 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+ DEVELOPMENT_TEAM = A89AY6VY4F;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
+ INFOPLIST_KEY_CFBundleDisplayName = Regroup;
+ INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.example.regroup;
+ MARKETING_VERSION = 1;
+ PRODUCT_BUNDLE_IDENTIFIER = com.regroup.wdi;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -440,13 +536,18 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+ DEVELOPMENT_TEAM = A89AY6VY4F;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
+ INFOPLIST_KEY_CFBundleDisplayName = Regroup;
+ INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.example.regroup;
+ MARKETING_VERSION = 1;
+ PRODUCT_BUNDLE_IDENTIFIER = com.regroup.wdi;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
index c87d15a..a6b826d 100644
--- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -1,6 +1,6 @@
+ CADisableMinimumFrameDurationOnPhone
+
CFBundleDevelopmentRegion
$(DEVELOPMENT_LANGUAGE)
CFBundleDisplayName
@@ -24,6 +26,8 @@
$(FLUTTER_BUILD_NUMBER)
LSRequiresIPhoneOS
+ UIApplicationSupportsIndirectInputEvents
+
UILaunchStoryboardName
LaunchScreen
UIMainStoryboardFile
@@ -43,9 +47,9 @@
UIViewControllerBasedStatusBarAppearance
- CADisableMinimumFrameDurationOnPhone
-
- UIApplicationSupportsIndirectInputEvents
-
+ NSPhotoLibraryAddUsageDescription
+ Regroup get write-only access to the user photo library
+ NSPhotoLibraryUsageDescription
+ Allow access to photo library
diff --git a/lib/Common/CommonBottomNavigationBar.dart b/lib/Common/CommonBottomNavigationBar.dart
index 0ee4674..2be08c2 100644
--- a/lib/Common/CommonBottomNavigationBar.dart
+++ b/lib/Common/CommonBottomNavigationBar.dart
@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
+import 'package:flutter_svg/flutter_svg.dart';
import 'package:glassmorphism/glassmorphism.dart';
import 'package:regroup/Common/controller/MainController.dart';
@@ -8,7 +9,7 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
width: double.infinity,
height: 83.h,
borderRadius: 2,
- blur: 30,
+ blur: 6,
alignment: Alignment.center,
border: 0,
linearGradient: LinearGradient(
@@ -16,7 +17,7 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
end: Alignment.bottomRight,
colors: [
Colors.white.withOpacity(0.04),
- Color(0xFFFFFFFF).withOpacity(0.05),
+ const Color(0xFFFFFFFF).withOpacity(0.05),
],
stops: const [
0.1,
@@ -31,7 +32,6 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
],
),
child: BottomNavigationBar(
- // backgroundColor: ,
type: BottomNavigationBarType.fixed,
backgroundColor: const Color(0xFFFFFFFF).withOpacity(0),
showUnselectedLabels: true,
@@ -41,22 +41,22 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
fontSize: 10.sp,
color: const Color(0xFF676767),
fontWeight: FontWeight.w400,
- fontFamily: 'hiragino'),
+ fontFamily: 'Helvetica'),
selectedLabelStyle: TextStyle(
fontSize: 10.sp,
color: const Color(0xFFFFFFFF),
fontWeight: FontWeight.w400,
- fontFamily: 'hiragino'),
+ fontFamily: 'Helvetica'),
currentIndex: _mainController.selectedIndex.value,
onTap: (index) {
_mainController.updateTab(index);
},
items: [
BottomNavigationBarItem(
- icon: Image.asset(
- 'assets/images/png/BottomBar/inactiveHome.png',
- height: 26.h,
- width: 26.w,
+ icon: SvgPicture.asset(
+ 'assets/images/svg/fluent_home-20-regular.svg',
+ height: 25.h,
+ width: 25.w,
),
// Icon(
// Icons.home,
@@ -67,13 +67,13 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
children: [
if (_mainController.selectedIndex.value == 0)
Container(
- height: 40.h,
- width: 40.w,
+ height: 39.h,
+ // width: 40.w,
decoration: BoxDecoration(
shape: BoxShape.circle,
boxShadow: [
BoxShadow(
- color: Color(0xFFD90B2E).withOpacity(0.16),
+ color: Colors.amber,
spreadRadius: 15,
blurRadius: 25,
offset: const Offset(0, 10),
@@ -81,27 +81,27 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
],
),
),
- Positioned(
- left: 0,
- right: 0,
- top: -15,
- child: Container(
- height: 2.h,
- width: 20.w,
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(10.r),
- color: Color(0xFFD90B2E)),
- )),
+ // Positioned(
+ // left: 0,
+ // right: 0,
+ // top: -15,
+ // child: Container(
+ // height: 2.h,
+ // width: 20.w,
+ // decoration: BoxDecoration(
+ // borderRadius: BorderRadius.circular(10.r),
+ // color: const Color(0xFFD90B2E)),
+ // )),
Positioned(
top: 0,
bottom: 0,
right: 0,
left: 0,
child: Center(
- child: Image.asset(
- 'assets/images/png/BottomBar/ActiveHome.png',
- height: 30.h,
- width: 30.w,
+ child: SvgPicture.asset(
+ 'assets/images/svg/fluent_home-20-regular.svg',
+ // height: 25.h,
+ // width: 25.w,
),
),
)
@@ -128,7 +128,7 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
shape: BoxShape.circle,
boxShadow: [
BoxShadow(
- color: Color(0xFFD90B2E).withOpacity(0.16),
+ color: const Color(0xFFD90B2E).withOpacity(0.16),
spreadRadius: 15,
blurRadius: 25,
offset: const Offset(0, 10),
@@ -145,7 +145,7 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
width: 20.w,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10.r),
- color: Color(0xFFD90B2E)),
+ color: const Color(0xFFD90B2E)),
)),
Positioned(
left: 0,
@@ -182,7 +182,7 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
shape: BoxShape.circle,
boxShadow: [
BoxShadow(
- color: Color(0xFFD90B2E).withOpacity(0.16),
+ color: const Color(0xFFD90B2E).withOpacity(0.16),
spreadRadius: 15,
blurRadius: 25,
offset: const Offset(0, 10),
@@ -199,7 +199,7 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
width: 20.w,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10.r),
- color: Color(0xFFD90B2E)),
+ color: const Color(0xFFD90B2E)),
)),
Positioned(
left: 0,
@@ -236,7 +236,7 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
shape: BoxShape.circle,
boxShadow: [
BoxShadow(
- color: Color(0xFFD90B2E).withOpacity(0.16),
+ color: const Color(0xFFD90B2E).withOpacity(0.16),
spreadRadius: 15,
blurRadius: 25,
offset: const Offset(0, 10),
@@ -253,7 +253,7 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
width: 20.w,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10.r),
- color: Color(0xFFD90B2E)),
+ color: const Color(0xFFD90B2E)),
)),
Positioned(
left: 0,
@@ -290,7 +290,7 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
shape: BoxShape.circle,
boxShadow: [
BoxShadow(
- color: Color(0xFFD90B2E).withOpacity(0.16),
+ color: const Color(0xFFD90B2E).withOpacity(0.16),
spreadRadius: 15,
blurRadius: 25,
offset: const Offset(0, 10),
@@ -307,7 +307,7 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
width: 20.w,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10.r),
- color: Color(0xFFD90B2E)),
+ color: const Color(0xFFD90B2E)),
)),
Positioned(
left: 0,
diff --git a/lib/Feed Module/Main_Screens/Community/Community.dart b/lib/Feed Module/Main_Screens/Community/Community.dart
index 756ccce..b613e85 100644
--- a/lib/Feed Module/Main_Screens/Community/Community.dart
+++ b/lib/Feed Module/Main_Screens/Community/Community.dart
@@ -34,13 +34,13 @@ class _CommunityScreenState extends State {
Widget build(BuildContext context) {
return Scaffold(
key: _scaffoldKey1,
- backgroundColor: Color(0xFF222935),
+ backgroundColor: const Color(0xFF222935),
// drawerEnableOpenDragGesture: false,
- drawer: SizedBox(width: 300.w, child: SideMenu()),
+ drawer: SizedBox(width: 300.w, child: const SideMenu()),
extendBody: true,
appBar: AppBar(
scrolledUnderElevation: 0.0,
- backgroundColor: Color(0xff222935),
+ backgroundColor: const Color(0xff222935),
elevation: 0,
automaticallyImplyLeading: false,
titleSpacing: 0,
@@ -86,53 +86,52 @@ class _CommunityScreenState extends State {
sizedBoxWidth(16.w),
],
),
- body: Stack(children: [
- const CommonBlurLeftRed(),
- const CommonBlurRightRed(),
- const CommonBlurLeft(),
- const CommonBlurRight(),
- Stack(children: [
- Padding(
- padding: const EdgeInsets.symmetric(vertical: 16),
- child: Column(children: [
- Expanded(
- child: DefaultTabController(
- length: 3,
- // initialIndex: selectedIndex.value,
- child: Column(
- children: [
- CommonTabBar(tabs: const [
- Tab(
- text: 'Feed',
- ),
- Tab(
- text: 'Popular',
- ),
- Tab(
- text: 'Latest',
- ),
- ]),
- Expanded(
- child: TabBarView(
- children: [
- feedTab(),
- popularTab(),
- latestTab(),
- ],
- ),
+ body:
+ // const CommonBlurLeftRed(),
+ // const CommonBlurRightRed(),
+ // const CommonBlurLeft(),
+ // const CommonBlurRight(),
+ Stack(children: [
+ Padding(
+ padding: const EdgeInsets.symmetric(vertical: 16),
+ child: Column(children: [
+ Expanded(
+ child: DefaultTabController(
+ length: 3,
+ // initialIndex: selectedIndex.value,
+ child: Column(
+ children: [
+ CommonTabBar(tabs: const [
+ Tab(
+ text: 'Feed',
),
- sizedBoxHeight(90.h)
- ],
- ),
+ Tab(
+ text: 'Popular',
+ ),
+ Tab(
+ text: 'Latest',
+ ),
+ ]),
+ Expanded(
+ child: TabBarView(
+ children: [
+ feedTab(),
+ popularTab(),
+ latestTab(),
+ ],
+ ),
+ ),
+ sizedBoxHeight(90.h)
+ ],
),
),
- ]))
- ])
+ ),
+ ]))
]),
floatingActionButton: Container(
height: 55.h,
width: 55.w,
- decoration: BoxDecoration(
+ decoration: const BoxDecoration(
shape: BoxShape.circle,
boxShadow: [
BoxShadow(
@@ -146,9 +145,9 @@ class _CommunityScreenState extends State {
onPressed: () {
Get.toNamed(RouteName.postscreen);
},
- backgroundColor: Color(0xFFD90B2E),
+ backgroundColor: const Color(0xFFD90B2E),
autofocus: true,
- shape: CircleBorder(),
+ shape: const CircleBorder(),
child: Image.asset(
"assets/images/png/iconamoon_edit-thin.png",
height: 30.h,
@@ -251,7 +250,7 @@ Widget announcecardtile({
sizedBoxWidth(7.w),
Icon(
Icons.circle,
- color: Color(0xFFFCFCFC),
+ color: const Color(0xFFFCFCFC),
size: 4.sp,
),
sizedBoxWidth(6.w),
@@ -260,12 +259,12 @@ Widget announcecardtile({
)
],
),
- Spacer(),
+ const Spacer(),
PopupMenuButton(
- surfaceTintColor: Color(0xFF222935),
+ surfaceTintColor: const Color(0xFF222935),
constraints: BoxConstraints.tightFor(width: 176.w),
- offset: Offset(0, 50),
- color: Color(0xFF222935),
+ offset: const Offset(0, 50),
+ color: const Color(0xFF222935),
tooltip: "",
itemBuilder: (BuildContext context) => [
PopupMenuItem(
@@ -283,7 +282,7 @@ Widget announcecardtile({
fontFamily: "Nunito Sans",
),
),
- Spacer(),
+ const Spacer(),
Image.asset(
"assets/images/png/Vector (5).png",
height: 15.h,
@@ -293,7 +292,7 @@ Widget announcecardtile({
),
),
),
- PopupMenuDivider(),
+ const PopupMenuDivider(),
PopupMenuItem(
onTap: () {},
child: Padding(
@@ -309,7 +308,7 @@ Widget announcecardtile({
fontFamily: "Nunito Sans",
),
),
- Spacer(),
+ const Spacer(),
Image.asset(
"assets/images/png/share.png",
height: 20.h,
@@ -319,7 +318,7 @@ Widget announcecardtile({
),
),
),
- PopupMenuDivider(),
+ const PopupMenuDivider(),
PopupMenuItem(
onTap: () {},
child: Padding(
@@ -335,7 +334,7 @@ Widget announcecardtile({
fontFamily: "Nunito Sans",
),
),
- Spacer(),
+ const Spacer(),
Image.asset(
"assets/images/png/f7_pin-fill (2).png",
height: 25.h,
@@ -405,7 +404,7 @@ Widget announcecardtile({
'assets/images/png/party-popper 2.png'
]),
),
- Spacer(),
+ const Spacer(),
commonGlassContainer(
border: 0.43,
width: 30.w,
@@ -490,11 +489,13 @@ Widget announcecardtile({
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),
+ itemSize: const Size(45, 45),
+ boxPadding: const EdgeInsets.all(8),
+ boxAnimationDuration:
+ const Duration(milliseconds: 200),
+ itemAnimationDuration:
+ const Duration(milliseconds: 500),
+ hoverDuration: const Duration(milliseconds: 700),
// toggle: false,
child: _buildReactionsIcon(mainImage.value),
@@ -592,7 +593,7 @@ Widget normalcardtile({
sizedBoxWidth(7.w),
Icon(
Icons.circle,
- color: Color(0xFFFCFCFC),
+ color: const Color(0xFFFCFCFC),
size: 4.sp,
),
sizedBoxWidth(6.w),
@@ -601,12 +602,12 @@ Widget normalcardtile({
)
],
),
- Spacer(),
+ const Spacer(),
PopupMenuButton(
- surfaceTintColor: Color(0xFF222935),
+ surfaceTintColor: const Color(0xFF222935),
constraints: BoxConstraints.tightFor(width: 176.w),
- offset: Offset(0, 50),
- color: Color(0xFF222935),
+ offset: const Offset(0, 50),
+ color: const Color(0xFF222935),
tooltip: "",
itemBuilder: (BuildContext context) => [
PopupMenuItem(
@@ -624,7 +625,7 @@ Widget normalcardtile({
fontFamily: "Nunito Sans",
),
),
- Spacer(),
+ const Spacer(),
Image.asset(
"assets/images/png/Vector (5).png",
height: 15.h,
@@ -634,7 +635,7 @@ Widget normalcardtile({
),
),
),
- PopupMenuDivider(),
+ const PopupMenuDivider(),
PopupMenuItem(
onTap: () {},
child: Padding(
@@ -650,7 +651,7 @@ Widget normalcardtile({
fontFamily: "Nunito Sans",
),
),
- Spacer(),
+ const Spacer(),
Image.asset(
"assets/images/png/share.png",
height: 20.h,
@@ -660,7 +661,7 @@ Widget normalcardtile({
),
),
),
- PopupMenuDivider(),
+ const PopupMenuDivider(),
PopupMenuItem(
onTap: () {},
child: Padding(
@@ -676,7 +677,7 @@ Widget normalcardtile({
fontFamily: "Nunito Sans",
),
),
- Spacer(),
+ const Spacer(),
Image.asset(
"assets/images/png/f7_pin-fill (2).png",
height: 25.h,
@@ -747,7 +748,7 @@ Widget normalcardtile({
'assets/images/png/party-popper 2.png'
]),
),
- Spacer(),
+ const Spacer(),
commonGlassContainer(
border: 0.43,
width: 30.w,
@@ -833,11 +834,13 @@ Widget normalcardtile({
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),
+ itemSize: const Size(45, 45),
+ boxPadding: const EdgeInsets.all(8),
+ boxAnimationDuration:
+ const Duration(milliseconds: 200),
+ itemAnimationDuration:
+ const Duration(milliseconds: 500),
+ hoverDuration: const Duration(milliseconds: 700),
// toggle: false,
direction: ReactionsBoxAlignment.rtl,
@@ -915,7 +918,7 @@ Widget containertile({required String text}) {
width: 130.w,
height: 30.h,
borderradius: 30.r,
- borderColor: Color(0xFFD90B2E),
+ borderColor: const Color(0xFFD90B2E),
customWidget: Padding(
padding: EdgeInsets.symmetric(horizontal: 10.w),
child: Center(child: text14w400_FCFCFC(text)),
diff --git a/lib/Login/View/loginscreen.dart b/lib/Login/View/loginscreen.dart
index 3327348..eabc455 100644
--- a/lib/Login/View/loginscreen.dart
+++ b/lib/Login/View/loginscreen.dart
@@ -13,6 +13,7 @@ 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 'package:show_fps/show_fps.dart';
class LoginScreen extends StatefulWidget {
const LoginScreen({super.key});
@@ -22,471 +23,244 @@ class LoginScreen extends StatefulWidget {
}
class _LoginScreenState extends State {
- TextEditingController _email = TextEditingController();
+ final TextEditingController _email = TextEditingController();
RxBool isObscured = true.obs;
- TextEditingController _password = TextEditingController();
+ final TextEditingController _password = TextEditingController();
// final GlobalKey _form = GlobalKey();
@override
Widget build(BuildContext context) {
return Scaffold(
- backgroundColor: Color.fromARGB(255, 18, 32, 47),
- body: Stack(
- children: [
- Positioned(top: 210, left: -30, child: CommonBlurLeftSecond()),
- Positioned(top: 400, right: -30, child: CommonBlurRightSecond()),
- Positioned(top: 550, left: -30, child: CommonBlurLeftBlue()),
- SingleChildScrollView(
- child: 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),
-
- // 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),
- ],
- ),
+ resizeToAvoidBottomInset:
+ false, // Prevent resizing when the keyboard opens
+ backgroundColor: const Color.fromARGB(255, 18, 32, 47),
+ body: Stack(
+ clipBehavior: Clip.none,
+ children: [
+ Container(
+ decoration: const BoxDecoration(
+ image: DecorationImage(
+ image: AssetImage("assets/images/png/Choice screen.png"))),
+ ),
+ Center(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ SizedBox(
+ height: 271.h,
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
- Container(
- width: double.infinity,
- height: 271.h,
- decoration: BoxDecoration(
- image: DecorationImage(
- image: AssetImage(
- "assets/images/png/blurwhole.png"),
- fit: BoxFit.fill)),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.end,
- children: [
- Padding(
- padding: EdgeInsets.only(top: 100.h),
- child: Center(
- child: SvgPicture.asset(
- "assets/images/svg/onboarding2.svg",
- width: 104.w,
- height: 104.h,
- ),
- ),
- ),
- sizedBoxHeight(15.h),
- Center(
- child: text22400white('Find your community')),
- ],
+ sizedBoxHeight(35.h),
+ text16400white('Email address'),
+ sizedBoxHeight(10.h),
+ CustomTextFormField(
+ textEditingController: _email,
+ hintText: "Enter your email address",
+ leadingIcon:
+ // const Icon(Icons.mail_outline),
+ SizedBox(
+ width: 22.w,
+ height: 17.h,
+ child: Image.asset(
+ 'assets/images/png/mail.png',
+ width: 22.w,
+ height: 17.h,
+ ),
+ ),
+ // validatorText: "Email Id",
+ validator: (value) {
+ if (value!.isEmpty) {
+ return 'Enter your e-mail address';
+ }
+ if (!RegExp(
+ r'^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$')
+ .hasMatch(value)) {
+ return 'Enter a valid e-mail address';
+ }
+ return null;
+ },
+ inputFormatters: [
+ LengthLimitingTextInputFormatter(30),
+ RemoveEmojiInputFormatter()
+ ],
+ ),
+ sizedBoxHeight(10.h),
+ text16400white('Password'),
+ sizedBoxHeight(10.h),
+ CustomTextFormField(
+ isInputPassword: true,
+ textEditingController: _password,
+ hintText: 'Enter your password',
+ leadingIcon: Image.asset(
+ 'assets/images/png/lock.png',
+ width: 22.w,
+ height: 17.h,
+ ),
+ validator: (val) {
+ if (val == null || val.isEmpty) {
+ return 'Please enter your password';
+ }
+ return null;
+ },
+ inputFormatters: [
+ LengthLimitingTextInputFormatter(20),
+ RemoveEmojiInputFormatter()
+ ],
+ ),
+ sizedBoxHeight(10.h),
+ Align(
+ alignment: Alignment.centerRight,
+ child: Padding(
+ padding: EdgeInsets.only(right: 6.w),
+ child: text14400white('Forgot password ?'),
)),
- Padding(
- padding: EdgeInsets.symmetric(horizontal: 16.w),
- child: Column(
+ sizedBoxHeight(40.h),
+ CustomButton(
+ text: "Login",
+ onPressed: () {
+ Get.toNamed(RouteName.mainscreen);
+ }),
+ sizedBoxHeight(20.h),
+ GestureDetector(
+ onTap: () {
+ Get.toNamed(RouteName.signupscreen);
+ },
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
- sizedBoxHeight(35.h),
- text16400white('Email address'),
- sizedBoxHeight(10.h),
- // TextFormField(
- // style: TextStyle(
- // fontSize: 16.sp, color: Colors.white),
- // validator: (value) {
- // if (value == null || value.isEmpty) {
- // return "Please enter email";
- // }
-
- // // Check if the entered value is a valid email address
- // bool isEmailValid = RegExp(
- // r'^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$')
- // .hasMatch(value);
-
- // if (!isEmailValid) {
- // return "Please enter valid email";
- // }
-
- // return null;
- // },
- // inputFormatters: [
- // RemoveEmojiInputFormatter(),
- // LengthLimitingTextInputFormatter(50)
- // ],
- // controller: _email,
- // cursorColor: Colors.white,
- // autovalidateMode:
- // AutovalidateMode.onUserInteraction,
- // decoration: InputDecoration(
- // fillColor: Color(0xFFFFFFFF).withOpacity(0.10),
- // filled: true,
- // prefixIcon: Image.asset(
- // 'assets/images/png/mail.png',
- // width: 22.w,
- // height: 17.h,
- // ),
- // // Icon(
- // // Icons.mail_outline,
- // // color: Colors.white,
- // // ),
- // hintText: 'Enter your email address',
- // hintStyle: TextStyle(
- // color: Colors.white,
- // fontSize: 14.sp,
- // fontWeight: FontWeight.w400,
- // fontFamily:
- // "Helvetica" // Default label color
- // ),
- // enabledBorder: OutlineInputBorder(
- // borderSide: const BorderSide(
- // color: Color(0xFF434A53),
- // ),
- // borderRadius: BorderRadius.all(
- // Radius.circular(30.r),
- // ),
- // ),
- // focusedBorder: OutlineInputBorder(
- // borderSide: BorderSide(
- // color: Color(
- // 0xFF434A53), // Border color when focused
- // ),
- // borderRadius: BorderRadius.all(
- // Radius.circular(30.r),
- // ),
- // ),
- // errorBorder: OutlineInputBorder(
- // borderRadius: BorderRadius.circular(30.r),
- // borderSide:
- // const BorderSide(color: Colors.red),
- // ),
- // focusedErrorBorder: OutlineInputBorder(
- // // borderRadius: BorderRadius.circular(8.r),
- // borderSide: BorderSide(
- // color: Colors.red,
- // ),
- // borderRadius: BorderRadius.all(
- // Radius.circular(30.r),
- // ),
- // ),
- // ),
- // ),
- CustomTextFormField(
- textEditingController: _email,
- hintText: "Enter your email address",
- leadingIcon:
- // const Icon(Icons.mail_outline),
- SizedBox(
- width: 22.w,
- height: 17.h,
- child: Image.asset(
- 'assets/images/png/mail.png',
- width: 22.w,
- height: 17.h,
- ),
- ),
- // validatorText: "Email Id",
- validator: (value) {
- if (value!.isEmpty) {
- return 'Enter your e-mail address';
- }
- if (!RegExp(
- r'^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$')
- .hasMatch(value)) {
- return 'Enter a valid e-mail address';
- }
- return null;
- },
- inputFormatters: [
- LengthLimitingTextInputFormatter(30),
- RemoveEmojiInputFormatter()
- ],
- ),
- sizedBoxHeight(10.h),
- text16400white('Password'),
- sizedBoxHeight(10.h),
- // Obx(() {
- // return TextFormField(
- // style: TextStyle(
- // fontSize: 16.sp, color: Colors.white),
- // cursorColor: Colors.white,
- // autovalidateMode:
- // AutovalidateMode.onUserInteraction,
- // obscureText: isObscured.value,
- // controller: _password,
- // decoration: InputDecoration(
- // filled: true,
- // fillColor:
- // Color(0xFFFFFFFF).withOpacity(0.10),
- // prefixIcon: Image.asset(
- // 'assets/images/png/lock.png',
- // width: 22.w,
- // height: 17.h,
- // ),
- // // const Icon(
- // // Icons.lock_outline,
- // // color: Colors.white,
- // // ),
- // suffixIcon: Padding(
- // padding: EdgeInsets.only(right: 5.w),
- // child: IconButton(
- // onPressed: () {
- // isObscured.value = !isObscured.value;
- // },
- // color: Color(0xFF959595),
- // icon: isObscured.value
- // // ? const Icon(Icons.visibility_off)
- // // : const Icon(Icons.visibility)),
- // ? SvgPicture.asset(
- // "assets/images/svg/loginpasswordclose.svg")
- // // const Icon(Icons.remove_red_eye)
- // : SvgPicture.asset(
- // 'assets/images/svg/loginpasswordopen.svg')
- // // const Icon(
- // // Icons.remove_red_eye_outlined)
- // ),
- // ),
- // hintText: 'Enter your password',
- // hintStyle: TextStyle(
- // color: Colors.white,
- // fontSize: 14.sp,
- // fontWeight: FontWeight.w400,
- // fontFamily:
- // "Helvetica" // Default label color
- // ),
- // enabledBorder: OutlineInputBorder(
- // borderSide: const BorderSide(
- // color: Color(0xFF434A53),
- // ),
- // borderRadius: BorderRadius.all(
- // Radius.circular(30.r),
- // ),
- // ),
- // focusedBorder: OutlineInputBorder(
- // borderSide: BorderSide(
- // color: Color(
- // 0xFF434A53), // Border color when focused
- // ),
- // borderRadius: BorderRadius.all(
- // Radius.circular(30.r),
- // ),
- // ),
- // errorBorder: OutlineInputBorder(
- // borderRadius: BorderRadius.circular(30.r),
- // borderSide:
- // const BorderSide(color: Colors.red),
- // ),
- // focusedErrorBorder: OutlineInputBorder(
- // // borderRadius: BorderRadius.circular(8.r),
- // borderSide: BorderSide(
- // color: Colors.red,
- // ),
- // borderRadius: BorderRadius.all(
- // Radius.circular(30.r),
- // ),
- // ),
- // ),
- // validator: (val) {
- // if (val == null || val.isEmpty) {
- // return 'Please enter your password';
- // }
- // return null;
- // },
- // inputFormatters: [
- // RemoveEmojiInputFormatter(),
- // LengthLimitingTextInputFormatter(50)
- // ],
- // );
- // }),
- CustomTextFormField(
- isInputPassword: true,
- textEditingController: _password,
- hintText: 'Enter your password',
- leadingIcon: Image.asset(
- 'assets/images/png/lock.png',
- width: 22.w,
- height: 17.h,
- ),
- // const Icon(Icons.lock_outline),
- // validationMessage: "Enter your password",
- validator: (val) {
- if (val == null || val.isEmpty) {
- return 'Please enter your password';
- }
- return null;
- },
- inputFormatters: [
- LengthLimitingTextInputFormatter(20),
- RemoveEmojiInputFormatter()
- ],
- ),
- sizedBoxHeight(10.h),
- Align(
- alignment: Alignment.centerRight,
- child: Padding(
- padding: EdgeInsets.only(right: 6.w),
- child: text14400white('Forgot password ?'),
- )),
- sizedBoxHeight(40.h),
- CustomButton(text: "Login", onPressed: () {
- Get.toNamed(RouteName.mainscreen);
- }),
- sizedBoxHeight(20.h),
- GestureDetector(
- onTap: () {
- Get.toNamed(RouteName.signupscreen);
- },
- child: Row(
- mainAxisAlignment: MainAxisAlignment.center,
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- text14400white('Don’t have account ? '),
- sizedBoxWidth(5.w),
- text14700white('Sign up')
- ],
- ),
- ),
- sizedBoxHeight(30.h),
- Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- Container(
- width: 160,
- decoration: ShapeDecoration(
- shape: RoundedRectangleBorder(
- side: BorderSide(
- width: 0.50,
- strokeAlign:
- BorderSide.strokeAlignCenter,
- color: Color(0xFF434A53),
- ),
- ),
- ),
- ),
- sizedBoxWidth(6.w),
- text14400white('Or'),
- sizedBoxWidth(6.w),
- Container(
- width: 160,
- decoration: ShapeDecoration(
- shape: RoundedRectangleBorder(
- side: BorderSide(
- width: 0.50,
- strokeAlign:
- BorderSide.strokeAlignCenter,
- color: Color(0xFF434A53),
- ),
- ),
- ),
- ),
- ],
- ),
- sizedBoxHeight(20.h),
- Center(
- child: SizedBox(
- width: 220.w,
- child: Row(
- children: [
- Container(
- width: 55,
- height: 55,
- decoration: ShapeDecoration(
- gradient: LinearGradient(
- begin: Alignment(0.71, -0.70),
- end: Alignment(-0.71, 0.7),
- colors: [
- Colors.white.withOpacity(
- 0.07999999821186066),
- Colors.white.withOpacity(
- 0.12999999523162842)
- ],
- ),
- shape: OvalBorder(
- side: BorderSide(
- width: 0.50,
- color: Color(0xFF434A53)),
- ),
- image: DecorationImage(
- image: AssetImage(
- 'assets/images/png/login2.png'))),
- ),
- Spacer(),
- Container(
- width: 55,
- height: 55,
- decoration: ShapeDecoration(
- gradient: LinearGradient(
- begin: Alignment(0.71, -0.70),
- end: Alignment(-0.71, 0.7),
- colors: [
- Colors.white.withOpacity(
- 0.07999999821186066),
- Colors.white.withOpacity(
- 0.12999999523162842)
- ],
- ),
- shape: OvalBorder(
- side: BorderSide(
- width: 0.50,
- color: Color(0xFF434A53)),
- ),
- image: DecorationImage(
- image: AssetImage(
- 'assets/images/png/login3.png'))),
- ),
- Spacer(),
- Container(
- width: 55,
- height: 55,
- decoration: ShapeDecoration(
- gradient: LinearGradient(
- begin: Alignment(0.71, -0.70),
- end: Alignment(-0.71, 0.7),
- colors: [
- Colors.white.withOpacity(
- 0.07999999821186066),
- Colors.white.withOpacity(
- 0.12999999523162842)
- ],
- ),
- shape: OvalBorder(
- side: BorderSide(
- width: 0.50,
- color: Color(0xFF434A53)),
- ),
- image: DecorationImage(
- image: AssetImage(
- 'assets/images/png/login4.png'))),
- ),
- ],
- ),
- ),
- )
+ text14400white('Don’t have account ? '),
+ sizedBoxWidth(5.w),
+ text14700white('Sign up')
],
),
+ ),
+ sizedBoxHeight(30.h),
+ Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ Container(
+ width: 160,
+ decoration: const ShapeDecoration(
+ shape: RoundedRectangleBorder(
+ side: BorderSide(
+ width: 0.50,
+ strokeAlign: BorderSide.strokeAlignCenter,
+ color: Color(0xFF434A53),
+ ),
+ ),
+ ),
+ ),
+ sizedBoxWidth(6.w),
+ text14400white('Or'),
+ sizedBoxWidth(6.w),
+ Container(
+ width: 160,
+ decoration: const ShapeDecoration(
+ shape: RoundedRectangleBorder(
+ side: BorderSide(
+ width: 0.50,
+ strokeAlign: BorderSide.strokeAlignCenter,
+ color: Color(0xFF434A53),
+ ),
+ ),
+ ),
+ ),
+ ],
+ ),
+ sizedBoxHeight(20.h),
+ Center(
+ child: SizedBox(
+ width: 220.w,
+ child: Row(
+ children: [
+ Container(
+ width: 55,
+ height: 55,
+ decoration: ShapeDecoration(
+ gradient: LinearGradient(
+ begin: const Alignment(0.71, -0.70),
+ end: const Alignment(-0.71, 0.7),
+ colors: [
+ Colors.white
+ .withOpacity(0.07999999821186066),
+ Colors.white
+ .withOpacity(0.12999999523162842)
+ ],
+ ),
+ shape: const OvalBorder(
+ side: BorderSide(
+ width: 0.50,
+ color: Color(0xFF434A53)),
+ ),
+ image: const DecorationImage(
+ image: AssetImage(
+ 'assets/images/png/login2.png'))),
+ ),
+ const Spacer(),
+ Container(
+ width: 55,
+ height: 55,
+ decoration: ShapeDecoration(
+ gradient: LinearGradient(
+ begin: const Alignment(0.71, -0.70),
+ end: const Alignment(-0.71, 0.7),
+ colors: [
+ Colors.white
+ .withOpacity(0.07999999821186066),
+ Colors.white
+ .withOpacity(0.12999999523162842)
+ ],
+ ),
+ shape: const OvalBorder(
+ side: BorderSide(
+ width: 0.50,
+ color: Color(0xFF434A53)),
+ ),
+ image: const DecorationImage(
+ image: AssetImage(
+ 'assets/images/png/login3.png'))),
+ ),
+ const Spacer(),
+ Container(
+ width: 55,
+ height: 55,
+ decoration: ShapeDecoration(
+ gradient: LinearGradient(
+ begin: const Alignment(0.71, -0.70),
+ end: const Alignment(-0.71, 0.7),
+ colors: [
+ Colors.white
+ .withOpacity(0.07999999821186066),
+ Colors.white
+ .withOpacity(0.12999999523162842)
+ ],
+ ),
+ shape: const OvalBorder(
+ side: BorderSide(
+ width: 0.50,
+ color: Color(0xFF434A53)),
+ ),
+ image: const DecorationImage(
+ image: AssetImage(
+ 'assets/images/png/login4.png'))),
+ ),
+ ],
+ ),
+ ),
)
],
- )),
+ ),
+ )
+ ],
),
- ],
- ));
+ ),
+ ],
+ ),
+ );
}
}
diff --git a/lib/Utils/Common/CustomTextformfield.dart b/lib/Utils/Common/CustomTextformfield.dart
index 2aa673b..e58dcf1 100644
--- a/lib/Utils/Common/CustomTextformfield.dart
+++ b/lib/Utils/Common/CustomTextformfield.dart
@@ -83,7 +83,7 @@ class _CustomTextFormFieldState extends State {
width: double.infinity,
height: 50,
borderRadius: 30,
- blur: 10,
+ blur: 6,
alignment: Alignment.bottomCenter,
border: 0.8,
linearGradient: LinearGradient(
@@ -93,7 +93,7 @@ class _CustomTextFormFieldState extends State {
const Color(0xFFffffff).withOpacity(widget.opacity1),
const Color(0xFFFFFFFF).withOpacity(widget.opacity2),
],
- stops: [
+ stops: const [
0.1,
1,
]),
@@ -120,7 +120,7 @@ class _CustomTextFormFieldState extends State {
decoration: InputDecoration(
hintText: widget.hintText,
prefixIconColor: widget.prefixIconColor,
- constraints: BoxConstraints(minHeight: 50),
+ constraints: const BoxConstraints(minHeight: 50),
hintStyle: TextStyle(
fontSize: 16.sp,
color: Colors.white,
@@ -129,7 +129,7 @@ class _CustomTextFormFieldState extends State {
prefixIcon: widget.leadingIcon == null
? null
: Padding(
- padding: EdgeInsets.symmetric(horizontal: 10),
+ padding: const EdgeInsets.symmetric(horizontal: 10),
child: widget.leadingIcon!,
),
suffixIcon: widget.isInputPassword
@@ -140,7 +140,7 @@ class _CustomTextFormFieldState extends State {
mainAxisAlignment: MainAxisAlignment.center,
children: [
Padding(
- padding: EdgeInsets.only(right: 20.0),
+ padding: const EdgeInsets.only(right: 20.0),
child: SvgPicture.asset(
"assets/images/svg/loginpasswordclose.svg",
),
@@ -151,7 +151,7 @@ class _CustomTextFormFieldState extends State {
mainAxisAlignment: MainAxisAlignment.center,
children: [
Padding(
- padding: EdgeInsets.only(right: 20.0),
+ padding: const EdgeInsets.only(right: 20.0),
child: SvgPicture.asset(
'assets/images/svg/loginpasswordopen.svg',
),
@@ -176,7 +176,7 @@ class _CustomTextFormFieldState extends State {
),
sizedBoxHeight(5.h),
widget.validationMessage == null
- ? SizedBox()
+ ? const SizedBox()
: Text(
widget.validationMessage ?? '',
style: TextStyle(color: Colors.red, fontSize: 12.sp),
@@ -256,7 +256,7 @@ class _CustomTextFormField2State extends State {
width: double.infinity,
height: 100.h,
borderRadius: 10,
- blur: 10,
+ blur: 6,
alignment: Alignment.bottomCenter,
border: 0.8,
linearGradient: LinearGradient(
@@ -266,7 +266,7 @@ class _CustomTextFormField2State extends State {
const Color(0xFFffffff).withOpacity(0.04),
const Color(0xFFFFFFFF).withOpacity(0.05),
],
- stops: [
+ stops: const [
0.1,
1,
]),
@@ -293,7 +293,7 @@ class _CustomTextFormField2State extends State {
decoration: InputDecoration(
hintText: widget.hintText,
prefixIconColor: widget.prefixIconColor,
- constraints: BoxConstraints(minHeight: 50),
+ constraints: const BoxConstraints(minHeight: 50),
hintStyle: TextStyle(
fontSize: 16.sp,
@@ -452,7 +452,7 @@ class _CustomtextFormFieldPasswordState
const Color(0xFFffffff).withOpacity(0.04),
const Color(0xFFFFFFFF).withOpacity(0.05),
],
- stops: [0.1, 1],
+ stops: const [0.1, 1],
),
borderGradient: const LinearGradient(
begin: Alignment.topLeft,
@@ -485,9 +485,10 @@ class _CustomtextFormFieldPasswordState
labelStyle: const TextStyle(color: Colors.white),
errorStyle: TextStyle(
fontSize: 13.sp,
- color: Color.fromARGB(255, 245, 130, 122),
+ color: const Color.fromARGB(255, 245, 130, 122),
),
- contentPadding: EdgeInsets.symmetric(vertical: 10, horizontal: 0),
+ contentPadding:
+ const EdgeInsets.symmetric(vertical: 10, horizontal: 0),
filled: true,
fillColor:
Colors.transparent, // Make sure fillColor is transparent
@@ -504,7 +505,7 @@ class _CustomtextFormFieldPasswordState
mainAxisAlignment: MainAxisAlignment.center,
children: [
Padding(
- padding: EdgeInsets.only(right: 20.0),
+ padding: const EdgeInsets.only(right: 20.0),
child: SvgPicture.asset(
"assets/images/svg/loginpasswordclose.svg",
),
@@ -515,7 +516,7 @@ class _CustomtextFormFieldPasswordState
mainAxisAlignment: MainAxisAlignment.center,
children: [
Padding(
- padding: EdgeInsets.only(right: 20.0),
+ padding: const EdgeInsets.only(right: 20.0),
child: SvgPicture.asset(
'assets/images/svg/loginpasswordopen.svg',
),
@@ -624,7 +625,7 @@ class _SearchTextFormFieldState extends State {
const Color(0xFFffffff).withOpacity(0.04),
const Color(0xFFFFFFFF).withOpacity(0.05),
],
- stops: [
+ stops: const [
0.1,
1,
]),
@@ -651,7 +652,7 @@ class _SearchTextFormFieldState extends State {
decoration: InputDecoration(
hintText: widget.hintText,
prefixIconColor: widget.prefixIconColor,
- constraints: BoxConstraints(minHeight: 50),
+ constraints: const BoxConstraints(minHeight: 50),
hintStyle: TextStyle(
fontSize: 16.sp,
color: Colors.white,
@@ -667,7 +668,7 @@ class _SearchTextFormFieldState extends State {
mainAxisAlignment: MainAxisAlignment.center,
children: [
Padding(
- padding: EdgeInsets.only(right: 20.0),
+ padding: const EdgeInsets.only(right: 20.0),
child: SvgPicture.asset(
"assets/images/svg/loginpasswordclose.svg",
),
@@ -678,7 +679,7 @@ class _SearchTextFormFieldState extends State {
mainAxisAlignment: MainAxisAlignment.center,
children: [
Padding(
- padding: EdgeInsets.only(right: 20.0),
+ padding: const EdgeInsets.only(right: 20.0),
child: SvgPicture.asset(
'assets/images/svg/loginpasswordopen.svg',
),
diff --git a/lib/Utils/Common/blureffect.dart b/lib/Utils/Common/blureffect.dart
index 65bee14..66178da 100644
--- a/lib/Utils/Common/blureffect.dart
+++ b/lib/Utils/Common/blureffect.dart
@@ -19,13 +19,10 @@ class CommonBlurLeftRed extends StatelessWidget {
shape: BoxShape.circle,
color: Color(0x4CD90B2E).withOpacity(0.5),
),
- child: BackdropFilter(
- filter: ImageFilter.blur(sigmaX: 30, sigmaY: 30),
- child: Container(
- height: 200,
- width: 200,
- color: Colors.transparent,
- ),
+ child: Container(
+ height: 200,
+ width: 200,
+ color: Colors.transparent,
),
),
);
@@ -49,13 +46,10 @@ class CommonBlurRightRed extends StatelessWidget {
shape: BoxShape.circle,
color: Color(0x4CD90B2E).withOpacity(0.5),
),
- child: BackdropFilter(
- filter: ImageFilter.blur(sigmaX: 30, sigmaY: 30),
- child: Container(
- height: 200,
- width: 200,
- color: Colors.transparent,
- ),
+ child: Container(
+ height: 200,
+ width: 200,
+ color: Colors.transparent,
),
),
);
@@ -79,13 +73,10 @@ class CommonBlurLeft extends StatelessWidget {
shape: BoxShape.circle,
color: Color(0xFF009DAB).withOpacity(0.50),
),
- child: BackdropFilter(
- filter: ImageFilter.blur(sigmaX: 30, sigmaY: 30),
- child: Container(
- height: 200,
- width: 200,
- color: Colors.transparent,
- ),
+ child: Container(
+ height: 200,
+ width: 200,
+ color: Colors.transparent,
),
),
);
@@ -109,13 +100,10 @@ class CommonBlurRight extends StatelessWidget {
shape: BoxShape.circle,
color: Color(0xFF009DAB).withOpacity(0.50),
),
- child: BackdropFilter(
- filter: ImageFilter.blur(sigmaX: 30, sigmaY: 30),
- child: Container(
- height: 200,
- width: 200,
- color: Colors.transparent,
- ),
+ child: Container(
+ height: 200,
+ width: 200,
+ color: Colors.transparent,
),
),
);
@@ -136,13 +124,10 @@ class CommonBlurLeftSecond extends StatelessWidget {
shape: BoxShape.circle,
color: Color(0x4CD90B2E).withOpacity(0.5),
),
- child: BackdropFilter(
- filter: ImageFilter.blur(sigmaX: 30, sigmaY: 30),
- child: Container(
- height: 200,
- width: 200,
- color: Colors.transparent,
- ),
+ child: Container(
+ height: 200,
+ width: 200,
+ color: Colors.transparent,
),
);
}
@@ -162,13 +147,10 @@ class CommonBlurRightSecond extends StatelessWidget {
shape: BoxShape.circle,
color: Color(0x4CD90B2E).withOpacity(0.5),
),
- child: BackdropFilter(
- filter: ImageFilter.blur(sigmaX: 30, sigmaY: 30),
- child: Container(
- height: 200,
- width: 200,
- color: Colors.transparent,
- ),
+ child: Container(
+ height: 200,
+ width: 200,
+ color: Colors.transparent,
),
);
}
@@ -188,13 +170,10 @@ class CommonBlurLeftBlue extends StatelessWidget {
shape: BoxShape.circle,
color: Color(0xFF009DAB).withOpacity(0.50),
),
- child: BackdropFilter(
- filter: ImageFilter.blur(sigmaX: 30, sigmaY: 30),
- child: Container(
- height: 200,
- width: 200,
- color: Colors.transparent,
- ),
+ child: Container(
+ height: 200,
+ width: 200,
+ color: Colors.transparent,
),
);
}
diff --git a/lib/main.dart b/lib/main.dart
index a5c9de1..41732c0 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -11,19 +11,15 @@ import 'package:permission_handler/permission_handler.dart';
import 'package:regroup/Utils/dialogs.dart';
import 'package:regroup/resources/routes/route_name.dart';
import 'package:regroup/resources/routes/routes.dart';
-import 'package:shared_preferences/shared_preferences.dart';
-
-// void main() {
-// runApp(const MyApp());
-// }
+import 'package:statsfl/statsfl.dart';
Future main() async {
WidgetsFlutterBinding.ensureInitialized();
- SharedPreferences prefs = await SharedPreferences.getInstance();
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
- ]).then((value) => runApp(const MyApp()));
+ ]).then((value) => runApp(StatsFl(
+ align: Alignment.center, width: 200, height: 100, child: const MyApp())));
}
class MyApp extends StatefulWidget {
@@ -40,16 +36,14 @@ class _MyAppState extends State {
builder: (BuildContext context, Widget? child) => GetMaterialApp(
title: 'Regroup',
theme: ThemeData(
- primarySwatch:
- // createPrimarySwatch(Color(0xFF737373)),
- Colors.grey,
+ primarySwatch: Colors.grey,
fontFamily: 'Cambria',
),
debugShowCheckedModeBanner: false,
- initialRoute: RouteName.mainscreen,
+ initialRoute: RouteName.splashScreen,
getPages: AppRoutes.appRoutes(),
),
- designSize: const Size(390, 848),
+ designSize: const Size(390, 844),
);
}
}
diff --git a/lib/onboarding/Signup/View/signupscreen.dart b/lib/onboarding/Signup/View/signupscreen.dart
index 7adfb1c..a04be55 100644
--- a/lib/onboarding/Signup/View/signupscreen.dart
+++ b/lib/onboarding/Signup/View/signupscreen.dart
@@ -12,6 +12,7 @@ import 'package:regroup/Utils/dialogs.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 'package:show_fps/show_fps.dart';
class SignupScreen extends StatefulWidget {
const SignupScreen({super.key});
@@ -41,387 +42,361 @@ class _SignupScreenState extends State {
@override
Widget build(BuildContext context) {
return Scaffold(
- backgroundColor: Color.fromARGB(255, 18, 32, 47),
+ resizeToAvoidBottomInset: false,
+ backgroundColor: const Color.fromARGB(255, 18, 32, 47),
body: Stack(
children: [
- Positioned(top: 210, left: -30, child: CommonBlurLeftSecond()),
- Positioned(top: 400, right: -30, child: CommonBlurRightSecond()),
- Positioned(top: 550, 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),
-
- // 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: ListView(physics: ScrollPhysics(), children: [
- Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Container(
- width: double.infinity,
- height: 221.h,
- decoration: BoxDecoration(
- // color: Colors.red,
- image: DecorationImage(
- image: AssetImage(
- "assets/images/png/blurwhole.png"),
- fit: BoxFit.fill)),
+ Container(
+ decoration: const BoxDecoration(
+ image: DecorationImage(
+ image:
+ AssetImage("assets/images/png/Choice screen.png"))),
+ ),
+ Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ SizedBox(
+ width: double.infinity,
+ height: 221.h,
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.end,
+ children: [
+ Padding(
+ padding: EdgeInsets.only(top: 150.h),
+ child:
+ Center(child: text22400white('Create account')),
+ ),
+ ],
+ )),
+ Expanded(
+ child: SingleChildScrollView(
+ child: Column(
+ children: [
+ Padding(
+ padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Column(
- crossAxisAlignment: CrossAxisAlignment.end,
+ crossAxisAlignment: CrossAxisAlignment.start,
children: [
- Padding(
- padding: EdgeInsets.only(top: 150.h),
- child: Center(
- child: text22400white('Create account')),
+ text16400white('Email address'),
+ sizedBoxHeight(10.h),
+ CustomTextFormField(
+ textEditingController: emailidcontroller,
+ hintText: "Enter your email address",
+ leadingIcon:
+ // const Icon(Icons.mail_outline),
+ SizedBox(
+ width: 22.w,
+ height: 17.h,
+ child: Image.asset(
+ 'assets/images/png/mail.png',
+ width: 22.w,
+ height: 17.h,
+ ),
+ ),
+ // validatorText: "Email Id",
+ validator: (value) {
+ if (value!.isEmpty) {
+ return 'Enter your e-mail address';
+ }
+ if (!RegExp(
+ r'^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$')
+ .hasMatch(value)) {
+ return 'Enter a valid e-mail address';
+ }
+ return null;
+ },
+ inputFormatters: [
+ LengthLimitingTextInputFormatter(20),
+ RemoveEmojiInputFormatter()
+ ],
),
- ],
- )),
- Padding(
- padding: EdgeInsets.symmetric(horizontal: 16.w),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- text16400white('Email address'),
- sizedBoxHeight(10.h),
- CustomTextFormField(
- textEditingController: emailidcontroller,
- hintText: "Enter your email address",
- leadingIcon:
- // const Icon(Icons.mail_outline),
- SizedBox(
- width: 22.w,
- height: 17.h,
- child: Image.asset(
- 'assets/images/png/mail.png',
+ sizedBoxHeight(10.h),
+ text16400white('Password'),
+ sizedBoxHeight(10.h),
+ CustomTextFormField(
+ isInputPassword: true,
+ textEditingController: _password,
+ hintText: 'Enter your password',
+ leadingIcon: Image.asset(
+ 'assets/images/png/lock.png',
width: 22.w,
height: 17.h,
),
- ),
- // validatorText: "Email Id",
- validator: (value) {
- if (value!.isEmpty) {
- return 'Enter your e-mail address';
- }
- if (!RegExp(
- r'^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$')
- .hasMatch(value)) {
- return 'Enter a valid e-mail address';
- }
- return null;
- },
- inputFormatters: [
- LengthLimitingTextInputFormatter(20),
- RemoveEmojiInputFormatter()
- ],
- ),
- sizedBoxHeight(10.h),
- text16400white('Password'),
- sizedBoxHeight(10.h),
- CustomTextFormField(
- isInputPassword: true,
- textEditingController: _password,
- hintText: 'Enter your password',
- leadingIcon: Image.asset(
- 'assets/images/png/lock.png',
- width: 22.w,
- height: 17.h,
- ),
- // const Icon(Icons.lock_outline),
- // validationMessage: "Enter your password",
- validator: (val) {
- if (val == null || val.isEmpty) {
- return 'Please enter your password';
- }
- return null;
- },
- inputFormatters: [
- LengthLimitingTextInputFormatter(20),
- RemoveEmojiInputFormatter()
- ],
- ),
- sizedBoxHeight(10.h),
- text16400white('Confirm password'),
- sizedBoxHeight(10.h),
- CustomTextFormField(
- isInputPassword: true,
- textEditingController: confirmpasscontroller,
- hintText: "Enter your password",
- leadingIcon: Image.asset(
- 'assets/images/png/lock.png',
- width: 22.w,
- height: 17.h,
- ),
- // const Icon(Icons.lock_outline),
- // validatorText: "Enter your password",
- validator: (val) {
- if (val == null || val.isEmpty) {
- return 'Please enter your password';
- }
- if (val != _password.text) {
- return 'Password does not match';
- }
- return null;
- },
- inputFormatters: [
- LengthLimitingTextInputFormatter(20),
- RemoveEmojiInputFormatter()
- ],
- ),
- sizedBoxHeight(10.h),
- Row(
- children: [
- text16400white('Account type'),
- sizedBoxWidth(5.w),
- Image.asset(
- 'assets/images/png/informationicon.png')
- ],
- ),
- sizedBoxHeight(10.h),
- CustomDropDownWidgetSignup(
- header: 'Select account type',
- title: '',
- listData: _dropdownProductItems,
- onItemSelected: _onItemSelected,
- leadingImage: Image.asset(
- 'assets/images/png/user.png',
- ),
- ),
- sizedBoxHeight(30.h),
- Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- SizedBox(
- width: 320.w,
- height: 42.h,
- child: Text.rich(
- TextSpan(
- children: [
- TextSpan(
- text:
- 'By signing up to ReGroup you agree to our ',
- style: TextStyle(
- color: Color(0xCCFCFCFC),
- fontSize: 14.sp,
- fontFamily: 'Helvetica',
- fontWeight: FontWeight.w400,
- ),
- ),
- TextSpan(
- text: 'Terms and Conditions',
- style: TextStyle(
- color: Color(0xCCFCFCFC),
- fontSize: 14.sp,
- fontFamily: 'Helvetica',
- fontWeight: FontWeight.w700,
- decoration:
- TextDecoration.underline,
- decorationColor: Color(0xffFCFCFC)
- .withOpacity(0.80),
- ),
- ),
- TextSpan(
- text: ' and ',
- style: TextStyle(
- color: Color(0xCCFCFCFC),
- fontSize: 14.sp,
- fontFamily: 'Helvetica',
- fontWeight: FontWeight.w400,
- ),
- ),
- TextSpan(
- text: 'Privacy Policy',
- style: TextStyle(
- color: Color(0xCCFCFCFC),
- fontSize: 14.sp,
- fontFamily: 'Helvetica',
- fontWeight: FontWeight.w700,
- decoration:
- TextDecoration.underline,
- decorationColor: Color(0xffFCFCFC)
- .withOpacity(0.80),
- ),
- ),
- ],
- ),
- textAlign: TextAlign.center,
- ),
- ),
- ],
- ),
- sizedBoxHeight(20.h),
- CustomButton(
- text: "Continue",
- onPressed: () {
- if (_selectedAccountType == 'Individual') {
- // Get.to(() => IndividualPage());
- print('individual selected');
- Get.toNamed(RouteName.verifyusercreen,
- arguments: _selectedAccountType);
- } else if (_selectedAccountType ==
- 'Business') {
- print('business selected');
- Get.toNamed(RouteName.verifyusercreen,
- arguments: _selectedAccountType);
-
- // Get.to(() => BusinessPage());
- } else {
- // Handle case where no selection is made
- utils.showToast(
- 'Please select an account type');
+ // const Icon(Icons.lock_outline),
+ // validationMessage: "Enter your password",
+ validator: (val) {
+ if (val == null || val.isEmpty) {
+ return 'Please enter your password';
}
- }),
- sizedBoxHeight(20.h),
- Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- Container(
- width: 160,
- decoration: ShapeDecoration(
- shape: RoundedRectangleBorder(
- side: BorderSide(
- width: 0.50,
- strokeAlign:
- BorderSide.strokeAlignCenter,
- color: Color(0xFF434A53),
- ),
- ),
- ),
+ return null;
+ },
+ inputFormatters: [
+ LengthLimitingTextInputFormatter(20),
+ RemoveEmojiInputFormatter()
+ ],
+ ),
+ sizedBoxHeight(10.h),
+ text16400white('Confirm password'),
+ sizedBoxHeight(10.h),
+ CustomTextFormField(
+ isInputPassword: true,
+ textEditingController: confirmpasscontroller,
+ hintText: "Enter your password",
+ leadingIcon: Image.asset(
+ 'assets/images/png/lock.png',
+ width: 22.w,
+ height: 17.h,
),
- sizedBoxWidth(6.w),
- text14400white('Or'),
- sizedBoxWidth(6.w),
- Container(
- width: 160,
- decoration: ShapeDecoration(
- shape: RoundedRectangleBorder(
- side: BorderSide(
- width: 0.50,
- strokeAlign:
- BorderSide.strokeAlignCenter,
- color: Color(0xFF434A53),
- ),
- ),
- ),
- ),
- ],
- ),
- sizedBoxHeight(20.h),
- Center(
- child: SizedBox(
- width: 220.w,
- child: Row(
- children: [
- Container(
- width: 55,
- height: 55,
- decoration: ShapeDecoration(
- gradient: LinearGradient(
- begin: Alignment(0.71, -0.70),
- end: Alignment(-0.71, 0.7),
- colors: [
- Colors.white.withOpacity(
- 0.07999999821186066),
- Colors.white.withOpacity(
- 0.12999999523162842)
- ],
- ),
- shape: OvalBorder(
- side: BorderSide(
- width: 0.50,
- color: Color(0xFF434A53)),
- ),
- image: DecorationImage(
- image: AssetImage(
- 'assets/images/png/login2.png'))),
- ),
- Spacer(),
- Container(
- width: 55,
- height: 55,
- decoration: ShapeDecoration(
- gradient: LinearGradient(
- begin: Alignment(0.71, -0.70),
- end: Alignment(-0.71, 0.7),
- colors: [
- Colors.white.withOpacity(
- 0.07999999821186066),
- Colors.white.withOpacity(
- 0.12999999523162842)
- ],
- ),
- shape: OvalBorder(
- side: BorderSide(
- width: 0.50,
- color: Color(0xFF434A53)),
- ),
- image: DecorationImage(
- image: AssetImage(
- 'assets/images/png/login3.png'))),
- ),
- Spacer(),
- Container(
- width: 55,
- height: 55,
- decoration: ShapeDecoration(
- gradient: LinearGradient(
- begin: Alignment(0.71, -0.70),
- end: Alignment(-0.71, 0.7),
- colors: [
- Colors.white.withOpacity(
- 0.07999999821186066),
- Colors.white.withOpacity(
- 0.12999999523162842)
- ],
- ),
- shape: OvalBorder(
- side: BorderSide(
- width: 0.50,
- color: Color(0xFF434A53)),
- ),
- image: DecorationImage(
- image: AssetImage(
- 'assets/images/png/login4.png'))),
- ),
- ],
+ // const Icon(Icons.lock_outline),
+ // validatorText: "Enter your password",
+ validator: (val) {
+ if (val == null || val.isEmpty) {
+ return 'Please enter your password';
+ }
+ if (val != _password.text) {
+ return 'Password does not match';
+ }
+ return null;
+ },
+ inputFormatters: [
+ LengthLimitingTextInputFormatter(20),
+ RemoveEmojiInputFormatter()
+ ],
+ ),
+ sizedBoxHeight(10.h),
+ Row(
+ children: [
+ text16400white('Account type'),
+ sizedBoxWidth(5.w),
+ Image.asset(
+ 'assets/images/png/informationicon.png')
+ ],
+ ),
+ sizedBoxHeight(10.h),
+ CustomDropDownWidgetSignup(
+ header: 'Select account type',
+ title: '',
+ listData: _dropdownProductItems,
+ onItemSelected: _onItemSelected,
+ leadingImage: Image.asset(
+ 'assets/images/png/user.png',
),
),
- ),
- sizedBoxHeight(20.h),
- ],
+ sizedBoxHeight(30.h),
+ Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ SizedBox(
+ width: 320.w,
+ height: 42.h,
+ child: Text.rich(
+ TextSpan(
+ children: [
+ TextSpan(
+ text:
+ 'By signing up to ReGroup you agree to our ',
+ style: TextStyle(
+ color: const Color(0xCCFCFCFC),
+ fontSize: 14.sp,
+ fontFamily: 'Helvetica',
+ fontWeight: FontWeight.w400,
+ ),
+ ),
+ TextSpan(
+ text: 'Terms and Conditions',
+ style: TextStyle(
+ color: const Color(0xCCFCFCFC),
+ fontSize: 14.sp,
+ fontFamily: 'Helvetica',
+ fontWeight: FontWeight.w700,
+ decoration:
+ TextDecoration.underline,
+ decorationColor:
+ const Color(0xffFCFCFC)
+ .withOpacity(0.80),
+ ),
+ ),
+ TextSpan(
+ text: ' and ',
+ style: TextStyle(
+ color: const Color(0xCCFCFCFC),
+ fontSize: 14.sp,
+ fontFamily: 'Helvetica',
+ fontWeight: FontWeight.w400,
+ ),
+ ),
+ TextSpan(
+ text: 'Privacy Policy',
+ style: TextStyle(
+ color: const Color(0xCCFCFCFC),
+ fontSize: 14.sp,
+ fontFamily: 'Helvetica',
+ fontWeight: FontWeight.w700,
+ decoration:
+ TextDecoration.underline,
+ decorationColor:
+ const Color(0xffFCFCFC)
+ .withOpacity(0.80),
+ ),
+ ),
+ ],
+ ),
+ textAlign: TextAlign.center,
+ ),
+ ),
+ ],
+ ),
+ sizedBoxHeight(20.h),
+ CustomButton(
+ text: "Continue",
+ onPressed: () {
+ if (_selectedAccountType == 'Individual') {
+ // Get.to(() => IndividualPage());
+ print('individual selected');
+ Get.toNamed(RouteName.verifyusercreen,
+ arguments: _selectedAccountType);
+ } else if (_selectedAccountType ==
+ 'Business') {
+ print('business selected');
+ Get.toNamed(RouteName.verifyusercreen,
+ arguments: _selectedAccountType);
+
+ // Get.to(() => BusinessPage());
+ } else {
+ // Handle case where no selection is made
+ utils.showToast(
+ 'Please select an account type');
+ }
+ }),
+ sizedBoxHeight(20.h),
+ Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ Container(
+ width: 160,
+ decoration: const ShapeDecoration(
+ shape: RoundedRectangleBorder(
+ side: BorderSide(
+ width: 0.50,
+ strokeAlign:
+ BorderSide.strokeAlignCenter,
+ color: Color(0xFF434A53),
+ ),
+ ),
+ ),
+ ),
+ sizedBoxWidth(6.w),
+ text14400white('Or'),
+ sizedBoxWidth(6.w),
+ Container(
+ width: 160,
+ decoration: const ShapeDecoration(
+ shape: RoundedRectangleBorder(
+ side: BorderSide(
+ width: 0.50,
+ strokeAlign:
+ BorderSide.strokeAlignCenter,
+ color: Color(0xFF434A53),
+ ),
+ ),
+ ),
+ ),
+ ],
+ ),
+ sizedBoxHeight(20.h),
+ Center(
+ child: SizedBox(
+ width: 220.w,
+ child: Row(
+ children: [
+ Container(
+ width: 55,
+ height: 55,
+ decoration: ShapeDecoration(
+ gradient: LinearGradient(
+ begin:
+ const Alignment(0.71, -0.70),
+ end: const Alignment(-0.71, 0.7),
+ colors: [
+ Colors.white.withOpacity(
+ 0.07999999821186066),
+ Colors.white.withOpacity(
+ 0.12999999523162842)
+ ],
+ ),
+ shape: const OvalBorder(
+ side: BorderSide(
+ width: 0.50,
+ color: Color(0xFF434A53)),
+ ),
+ image: const DecorationImage(
+ image: AssetImage(
+ 'assets/images/png/login2.png'))),
+ ),
+ const Spacer(),
+ Container(
+ width: 55,
+ height: 55,
+ decoration: ShapeDecoration(
+ gradient: LinearGradient(
+ begin:
+ const Alignment(0.71, -0.70),
+ end: const Alignment(-0.71, 0.7),
+ colors: [
+ Colors.white.withOpacity(
+ 0.07999999821186066),
+ Colors.white.withOpacity(
+ 0.12999999523162842)
+ ],
+ ),
+ shape: const OvalBorder(
+ side: BorderSide(
+ width: 0.50,
+ color: Color(0xFF434A53)),
+ ),
+ image: const DecorationImage(
+ image: AssetImage(
+ 'assets/images/png/login3.png'))),
+ ),
+ const Spacer(),
+ Container(
+ width: 55,
+ height: 55,
+ decoration: ShapeDecoration(
+ gradient: LinearGradient(
+ begin:
+ const Alignment(0.71, -0.70),
+ end: const Alignment(-0.71, 0.7),
+ colors: [
+ Colors.white.withOpacity(
+ 0.07999999821186066),
+ Colors.white.withOpacity(
+ 0.12999999523162842)
+ ],
+ ),
+ shape: const OvalBorder(
+ side: BorderSide(
+ width: 0.50,
+ color: Color(0xFF434A53)),
+ ),
+ image: const DecorationImage(
+ image: AssetImage(
+ 'assets/images/png/login4.png'))),
+ ),
+ ],
+ ),
+ ),
+ ),
+ sizedBoxHeight(20.h),
+ ],
+ ),
),
- )
- ],
+ ],
+ ),
),
- ])),
+ )
+ ],
+ ),
],
));
}
diff --git a/lib/onboarding/onboarding1.dart b/lib/onboarding/onboarding1.dart
index a58f604..7c9221f 100644
--- a/lib/onboarding/onboarding1.dart
+++ b/lib/onboarding/onboarding1.dart
@@ -20,15 +20,78 @@ class _Onboarding1State extends State {
@override
Widget build(BuildContext context) {
return Scaffold(
- body: Stack(
- children: [
- Container(
- width: MediaQuery.of(context).size.width,
- height: MediaQuery.of(context).size.height,
- decoration: BoxDecoration(
- gradient: LinearGradient(
- begin: Alignment.center,
- end: Alignment.bottomCenter,
+ body: Container(
+ width: MediaQuery.of(context).size.width,
+ height: MediaQuery.of(context).size.height,
+ decoration: BoxDecoration(
+ gradient: LinearGradient(
+ begin: Alignment.center,
+ end: Alignment.bottomCenter,
+ colors: [
+ Color(0xFF222935).withOpacity(0.12),
+ Color(0xFF222935).withOpacity(0.60),
+ Color(0XFF222B37),
+ Color(0xFF222935),
+ ],
+ ),
+ image: DecorationImage(
+ image: AssetImage("assets/images/png/onboarding1.png"),
+ fit: BoxFit.fill)),
+ child: Stack(children: [
+ Positioned(
+ top: 800,
+ left: 0,
+ child: Container(
+ height: 70.h,
+ width: MediaQuery.of(context).size.width,
+ decoration: BoxDecoration(
+ // shape: BoxShape.circle,
+ color:
+ // Colors.red
+ Color(0xFF009DAB).withOpacity(0.50),
+ ),
+ ),
+ ),
+ Column(
+ crossAxisAlignment: CrossAxisAlignment.center,
+ mainAxisAlignment: MainAxisAlignment.start,
+ children: [
+ Spacer(),
+ SvgPicture.asset(
+ "assets/images/svg/onboarding2.svg",
+ width: 104.w,
+ height: 104.h,
+ ),
+ const Spacer(
+ flex: 8,
+ ),
+ SizedBox(
+ width: 301.w,
+ height: 64.h,
+ child: text22400white(
+ "Find motivation and support from like-minded people"),
+ ),
+ sizedBoxHeight(30.h),
+ GlassmorphicContainer(
+ width: MediaQuery.of(context).size.width,
+ height: 180.h,
+ borderRadius: 2,
+ blur: 30,
+ alignment: Alignment.bottomLeft,
+ border: 2,
+ linearGradient: LinearGradient(
+ begin: Alignment.topLeft,
+ end: Alignment.centerRight,
+ colors: [
+ Color(0xFF222935).withOpacity(0.12),
+ Color(0xFF222935).withOpacity(0.60),
+ Color(0XFF222B37).withOpacity(0.12),
+ Color(0xFF222935).withOpacity(0.60),
+ ],
+ ),
+ borderGradient: LinearGradient(
+ begin: Alignment.topLeft,
+ end: Alignment.bottomRight,
colors: [
Color(0xFF222935).withOpacity(0.12),
Color(0xFF222935).withOpacity(0.60),
@@ -36,110 +99,29 @@ class _Onboarding1State extends State {
Color(0xFF222935),
],
),
- image: DecorationImage(
- image: AssetImage("assets/images/png/onboarding1.png"),
- fit: BoxFit.fill)),
- child: Stack(children: [
- Positioned(
- top: 800,
- left: 0,
- child: Container(
- height: 70.h,
- width: MediaQuery.of(context).size.width,
- decoration: BoxDecoration(
- // shape: BoxShape.circle,
- color:
- // Colors.red
- Color(0xFF009DAB).withOpacity(0.50),
+ child: Padding(
+ padding: EdgeInsets.symmetric(horizontal: 16.w),
+ child: Column(
+ children: [
+ CustomButton(
+ text: "Sign up",
+ onPressed: () {
+ Get.toNamed(RouteName.signupscreen);
+ }),
+ sizedBoxHeight(30.h),
+ CustomButton2(
+ text: "Login",
+ onPressed: () {
+ Get.toNamed(RouteName.loginScreen);
+ }),
+ // sizedBoxHeight(10.h),
+ ],
),
),
),
- Column(
- crossAxisAlignment: CrossAxisAlignment.center,
- mainAxisAlignment: MainAxisAlignment.start,
- children: [
- Spacer(),
- SvgPicture.asset(
- "assets/images/svg/onboarding2.svg",
- width: 104.w,
- height: 104.h,
- ),
- const Spacer(
- flex: 8,
- ),
- SizedBox(
- width: 301.w,
- height: 64.h,
- child: text22400white(
- "Find motivation and support from like-minded people"),
- ),
- sizedBoxHeight(30.h),
- GlassmorphicContainer(
- width: MediaQuery.of(context).size.width,
- height: 180.h,
- borderRadius: 2,
- blur: 30,
- alignment: Alignment.bottomLeft,
- border: 2,
- linearGradient: LinearGradient(
- begin: Alignment.topLeft,
- end: Alignment.centerRight,
- colors: [
- Color(0xFF222935).withOpacity(0.12),
- Color(0xFF222935).withOpacity(0.60),
- Color(0XFF222B37).withOpacity(0.12),
- Color(0xFF222935).withOpacity(0.60),
-
- // Color(0xFF009DAB40),
- // Color(0xFF35798C6F),
- // Color(0xFFD90B2E54),
- // Color(0xFFD90B2E85),
- // Color(0xFFD90B2E96),
-
- // Colors.green.withOpacity(0.9),
- // Colors.amber.withOpacity(0.1)
- ],
- ),
- borderGradient: LinearGradient(
- begin: Alignment.topLeft,
- end: Alignment.bottomRight,
- colors: [
- // Color(0xFFffffff).withOpacity(0.5),
- // Color((0xFFFFFFFF)).withOpacity(0.5),
-
- Color(0xFF222935).withOpacity(0.12),
- Color(0xFF222935).withOpacity(0.60),
- Color(0XFF222B37),
- Color(0xFF222935),
-
- // Colors.green.withOpacity(0.1),
- // Color((0xFFFFFFFF)).withOpacity(0.5),
- ],
- ),
- child: Padding(
- padding: EdgeInsets.symmetric(horizontal: 16.w),
- child: Column(
- children: [
- CustomButton(
- text: "Sign up",
- onPressed: () {
- Get.toNamed(RouteName.signupscreen);
- }),
- sizedBoxHeight(30.h),
- CustomButton2(
- text: "Login",
- onPressed: () {
- Get.toNamed(RouteName.loginScreen);
- }),
- // sizedBoxHeight(10.h),
- ],
- ),
- )),
- ],
- ),
- ]),
+ ],
),
- ],
+ ]),
),
);
}
diff --git a/pubspec.lock b/pubspec.lock
index f7c33ad..4e96466 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -352,6 +352,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.0.0"
+ glassmorphism_ui:
+ dependency: "direct main"
+ description:
+ name: glassmorphism_ui
+ sha256: "4a28b45fedb74c2b30e25495980394e3cf5b3634c74ec1ebedaef4d4c295f46f"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.3.0"
google_maps_flutter:
dependency: "direct main"
description:
@@ -792,6 +800,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.0.0"
+ show_fps:
+ dependency: "direct main"
+ description:
+ name: show_fps
+ sha256: "398124dd74456ad92fbb791cd6dd1018b5ced5ac3b9d0b401ab8c0e035ac9920"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.6"
sky_engine:
dependency: transitive
description: flutter
@@ -821,6 +837,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.11.1"
+ statsfl:
+ dependency: "direct main"
+ description:
+ name: statsfl
+ sha256: "12901533eee23cc04f01858f1e6851beec27d927a9afa694bb3d68403a5e0d13"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.3.0"
stream_channel:
dependency: transitive
description:
diff --git a/pubspec.yaml b/pubspec.yaml
index 60293b6..a6fe0b6 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -64,6 +64,10 @@ dependencies:
google_maps_flutter: ^2.2.8
geolocator: ^11.1.0
syncfusion_flutter_calendar: ^21.2.10
+ glassmorphism_ui: ^0.3.0
+ show_fps: ^1.0.6
+ statsfl: ^2.3.0
+
dev_dependencies: