Login design and functionality added

This commit is contained in:
Surendiran 2025-09-03 17:20:03 +05:30
parent 1f7f806e0a
commit 5f7072cab8
53 changed files with 3317 additions and 980 deletions

File diff suppressed because one or more lines are too long

View File

@ -7,14 +7,28 @@
// ignore_for_file: type=lint
import 'package:connectivity_plus/src/connectivity_plus_web.dart';
import 'package:firebase_app_check_web/firebase_app_check_web.dart';
import 'package:firebase_auth_web/firebase_auth_web.dart';
import 'package:firebase_core_web/firebase_core_web.dart';
import 'package:firebase_messaging_web/firebase_messaging_web.dart';
import 'package:flutter_secure_storage_web/flutter_secure_storage_web.dart';
import 'package:google_sign_in_web/google_sign_in_web.dart';
import 'package:package_info_plus/src/package_info_plus_web.dart';
import 'package:shared_preferences_web/shared_preferences_web.dart';
import 'package:url_launcher_web/url_launcher_web.dart';
import 'package:flutter_web_plugins/flutter_web_plugins.dart';
void registerPlugins([final Registrar? pluginRegistrar]) {
final Registrar registrar = pluginRegistrar ?? webPluginRegistrar;
ConnectivityPlusWebPlugin.registerWith(registrar);
FirebaseAppCheckWeb.registerWith(registrar);
FirebaseAuthWeb.registerWith(registrar);
FirebaseCoreWeb.registerWith(registrar);
FirebaseMessagingWeb.registerWith(registrar);
FlutterSecureStorageWeb.registerWith(registrar);
GoogleSignInPlugin.registerWith(registrar);
PackageInfoPlusWebPlugin.registerWith(registrar);
SharedPreferencesPlugin.registerWith(registrar);
UrlLauncherPlugin.registerWith(registrar);
registrar.registerMessageHandler();
}

View File

@ -7,12 +7,24 @@
"packageUri": "lib/",
"languageVersion": "3.5"
},
{
"name": "_flutterfire_internals",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/_flutterfire_internals-1.3.61",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "analyzer",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/analyzer-7.7.1",
"packageUri": "lib/",
"languageVersion": "3.5"
},
{
"name": "animated_bottom_navigation_bar",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/animated_bottom_navigation_bar-1.4.0",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "args",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/args-2.7.0",
@ -151,6 +163,12 @@
"packageUri": "lib/",
"languageVersion": "2.17"
},
{
"name": "easy_loading_button",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/easy_loading_button-0.4.0",
"packageUri": "lib/",
"languageVersion": "2.17"
},
{
"name": "equatable",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/equatable-2.0.7",
@ -175,6 +193,78 @@
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "firebase_app_check",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/firebase_app_check-0.4.0+1",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "firebase_app_check_platform_interface",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/firebase_app_check_platform_interface-0.2.0+1",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "firebase_app_check_web",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/firebase_app_check_web-0.2.0+16",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "firebase_auth",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/firebase_auth-6.0.2",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "firebase_auth_platform_interface",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/firebase_auth_platform_interface-8.1.1",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "firebase_auth_web",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/firebase_auth_web-6.0.2",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "firebase_core",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/firebase_core-4.1.0",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "firebase_core_platform_interface",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/firebase_core_platform_interface-6.0.0",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "firebase_core_web",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/firebase_core_web-3.1.0",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "firebase_messaging",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/firebase_messaging-16.0.1",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "firebase_messaging_platform_interface",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/firebase_messaging_platform_interface-4.7.1",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "firebase_messaging_web",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/firebase_messaging_web-4.0.1",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "fixnum",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/fixnum-1.1.1",
@ -185,7 +275,13 @@
"name": "flutter",
"rootUri": "file:///Users/venbateam/Documents/flutter/packages/flutter",
"packageUri": "lib/",
"languageVersion": "3.7"
"languageVersion": "3.8"
},
{
"name": "flutter_dotenv",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_dotenv-6.0.0",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "flutter_hooks",
@ -195,9 +291,15 @@
},
{
"name": "flutter_lints",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_lints-5.0.0",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_lints-6.0.0",
"packageUri": "lib/",
"languageVersion": "3.5"
"languageVersion": "3.8"
},
{
"name": "flutter_plugin_android_lifecycle",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.30",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "flutter_riverpod",
@ -245,13 +347,13 @@
"name": "flutter_test",
"rootUri": "file:///Users/venbateam/Documents/flutter/packages/flutter_test",
"packageUri": "lib/",
"languageVersion": "3.7"
"languageVersion": "3.8"
},
{
"name": "flutter_web_plugins",
"rootUri": "file:///Users/venbateam/Documents/flutter/packages/flutter_web_plugins",
"packageUri": "lib/",
"languageVersion": "3.7"
"languageVersion": "3.8"
},
{
"name": "frontend_server_client",
@ -283,6 +385,42 @@
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "google_identity_services_web",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/google_identity_services_web-0.3.3+1",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "google_sign_in",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/google_sign_in-7.1.1",
"packageUri": "lib/",
"languageVersion": "3.6"
},
{
"name": "google_sign_in_android",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/google_sign_in_android-7.0.5",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "google_sign_in_ios",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/google_sign_in_ios-6.1.0",
"packageUri": "lib/",
"languageVersion": "3.6"
},
{
"name": "google_sign_in_platform_interface",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/google_sign_in_platform_interface-3.0.0",
"packageUri": "lib/",
"languageVersion": "3.6"
},
{
"name": "google_sign_in_web",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/google_sign_in_web-1.0.0",
"packageUri": "lib/",
"languageVersion": "3.6"
},
{
"name": "graphs",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/graphs-2.3.2",
@ -307,6 +445,12 @@
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "iconsax_flutter",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/iconsax_flutter-1.0.1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "intl",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/intl-0.20.2",
@ -337,30 +481,66 @@
"packageUri": "lib/",
"languageVersion": "3.8"
},
{
"name": "jwt_decode",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/jwt_decode-0.3.1",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "leak_tracker",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/leak_tracker-10.0.9",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/leak_tracker-11.0.1",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "leak_tracker_flutter_testing",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.9",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.10",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "leak_tracker_testing",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.1",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.2",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "lints",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/lints-5.1.1",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/lints-6.0.0",
"packageUri": "lib/",
"languageVersion": "3.8"
},
{
"name": "local_auth",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/local_auth-2.3.0",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "local_auth_android",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/local_auth_android-1.0.52",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "local_auth_darwin",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/local_auth_darwin-1.6.0",
"packageUri": "lib/",
"languageVersion": "3.6"
},
{
"name": "local_auth_platform_interface",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/local_auth_platform_interface-1.0.10",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "local_auth_windows",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/local_auth_windows-1.0.11",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "logging",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/logging-1.3.0",
@ -403,6 +583,18 @@
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "package_info_plus",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/package_info_plus-8.3.1",
"packageUri": "lib/",
"languageVersion": "3.3"
},
{
"name": "package_info_plus_platform_interface",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/package_info_plus_platform_interface-3.2.1",
"packageUri": "lib/",
"languageVersion": "2.18"
},
{
"name": "path",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/path-1.9.1",
@ -445,12 +637,24 @@
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "pausable_timer",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/pausable_timer-3.1.0+3",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "petitparser",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/petitparser-6.1.0",
"packageUri": "lib/",
"languageVersion": "3.5"
},
{
"name": "pinput",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/pinput-5.0.1",
"packageUri": "lib/",
"languageVersion": "2.15"
},
{
"name": "platform",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/platform-3.1.6",
@ -551,7 +755,7 @@
"name": "sky_engine",
"rootUri": "file:///Users/venbateam/Documents/flutter/bin/cache/pkg/sky_engine",
"packageUri": "lib/",
"languageVersion": "3.7"
"languageVersion": "3.8"
},
{
"name": "source_gen",
@ -571,6 +775,12 @@
"packageUri": "lib/",
"languageVersion": "3.1"
},
{
"name": "sprintf",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/sprintf-7.0.0",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "stack_trace",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/stack_trace-1.12.1",
@ -609,7 +819,7 @@
},
{
"name": "test_api",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/test_api-0.7.4",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/test_api-0.7.6",
"packageUri": "lib/",
"languageVersion": "3.5"
},
@ -619,6 +829,12 @@
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "toastification",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/toastification-3.0.3",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "typed_data",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/typed_data-1.4.0",
@ -626,10 +842,70 @@
"languageVersion": "3.5"
},
{
"name": "vector_math",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/vector_math-2.1.4",
"name": "universal_platform",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/universal_platform-1.1.0",
"packageUri": "lib/",
"languageVersion": "2.14"
"languageVersion": "2.12"
},
{
"name": "url_launcher",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/url_launcher-6.3.2",
"packageUri": "lib/",
"languageVersion": "3.6"
},
{
"name": "url_launcher_android",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.18",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "url_launcher_ios",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.4",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "url_launcher_linux",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1",
"packageUri": "lib/",
"languageVersion": "3.3"
},
{
"name": "url_launcher_macos",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/url_launcher_macos-3.2.3",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "url_launcher_platform_interface",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/url_launcher_platform_interface-2.3.2",
"packageUri": "lib/",
"languageVersion": "3.1"
},
{
"name": "url_launcher_web",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/url_launcher_web-2.4.1",
"packageUri": "lib/",
"languageVersion": "3.6"
},
{
"name": "url_launcher_windows",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "uuid",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/uuid-4.5.1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "vector_math",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/vector_math-2.2.0",
"packageUri": "lib/",
"languageVersion": "3.1"
},
{
"name": "vm_service",
@ -693,8 +969,8 @@
}
],
"generator": "pub",
"generatorVersion": "3.8.1",
"generatorVersion": "3.9.0",
"flutterRoot": "file:///Users/venbateam/Documents/flutter",
"flutterVersion": "3.32.8",
"flutterVersion": "3.35.2",
"pubCache": "file:///Users/venbateam/.pub-cache"
}

View File

@ -1,461 +0,0 @@
_fe_analyzer_shared
3.5
file:///Users/venbateam/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-85.0.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-85.0.0/lib/
analyzer
3.5
file:///Users/venbateam/.pub-cache/hosted/pub.dev/analyzer-7.7.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/analyzer-7.7.1/lib/
args
3.3
file:///Users/venbateam/.pub-cache/hosted/pub.dev/args-2.7.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/args-2.7.0/lib/
async
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/async-2.13.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/async-2.13.0/lib/
boolean_selector
3.1
file:///Users/venbateam/.pub-cache/hosted/pub.dev/boolean_selector-2.1.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/boolean_selector-2.1.2/lib/
build
3.7
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build-3.0.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build-3.0.0/lib/
build_config
3.6
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_config-1.1.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_config-1.1.2/lib/
build_daemon
3.6
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_daemon-4.0.4/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_daemon-4.0.4/lib/
build_resolvers
3.7
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_resolvers-3.0.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_resolvers-3.0.0/lib/
build_runner
3.7
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_runner-2.6.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_runner-2.6.0/lib/
build_runner_core
3.7
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_runner_core-9.2.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_runner_core-9.2.0/lib/
built_collection
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/built_collection-5.1.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/built_collection-5.1.1/lib/
built_value
3.0
file:///Users/venbateam/.pub-cache/hosted/pub.dev/built_value-8.11.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/built_value-8.11.1/lib/
characters
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/characters-1.4.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/characters-1.4.0/lib/
checked_yaml
3.8
file:///Users/venbateam/.pub-cache/hosted/pub.dev/checked_yaml-2.0.4/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/checked_yaml-2.0.4/lib/
clock
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/clock-1.1.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/clock-1.1.2/lib/
code_builder
3.5
file:///Users/venbateam/.pub-cache/hosted/pub.dev/code_builder-4.10.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/code_builder-4.10.1/lib/
collection
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/collection-1.19.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/collection-1.19.1/lib/
connectivity_plus
3.2
file:///Users/venbateam/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/lib/
connectivity_plus_platform_interface
2.18
file:///Users/venbateam/.pub-cache/hosted/pub.dev/connectivity_plus_platform_interface-2.0.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/connectivity_plus_platform_interface-2.0.1/lib/
convert
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/convert-3.1.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/convert-3.1.2/lib/
crypto
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/crypto-3.0.6/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/crypto-3.0.6/lib/
cupertino_icons
3.1
file:///Users/venbateam/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8/lib/
dart_style
3.7
file:///Users/venbateam/.pub-cache/hosted/pub.dev/dart_style-3.1.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/dart_style-3.1.1/lib/
dbus
2.17
file:///Users/venbateam/.pub-cache/hosted/pub.dev/dbus-0.7.11/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/dbus-0.7.11/lib/
equatable
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/equatable-2.0.7/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/equatable-2.0.7/lib/
fake_async
3.3
file:///Users/venbateam/.pub-cache/hosted/pub.dev/fake_async-1.3.3/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/fake_async-1.3.3/lib/
ffi
3.7
file:///Users/venbateam/.pub-cache/hosted/pub.dev/ffi-2.1.4/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/ffi-2.1.4/lib/
file
3.0
file:///Users/venbateam/.pub-cache/hosted/pub.dev/file-7.0.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/file-7.0.1/lib/
fixnum
3.1
file:///Users/venbateam/.pub-cache/hosted/pub.dev/fixnum-1.1.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/fixnum-1.1.1/lib/
flutter_hooks
2.17
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_hooks-0.21.3+1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_hooks-0.21.3+1/lib/
flutter_lints
3.5
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_lints-5.0.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_lints-5.0.0/lib/
flutter_riverpod
2.17
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_riverpod-2.6.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_riverpod-2.6.1/lib/
flutter_secure_storage
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/lib/
flutter_secure_storage_linux
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.3/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.3/lib/
flutter_secure_storage_macos
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3/lib/
flutter_secure_storage_platform_interface
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_platform_interface-1.1.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_platform_interface-1.1.2/lib/
flutter_secure_storage_web
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1/lib/
flutter_secure_storage_windows
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2/lib/
frontend_server_client
3.0
file:///Users/venbateam/.pub-cache/hosted/pub.dev/frontend_server_client-4.0.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/frontend_server_client-4.0.0/lib/
get_it
3.0
file:///Users/venbateam/.pub-cache/hosted/pub.dev/get_it-8.2.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/get_it-8.2.0/lib/
glob
3.3
file:///Users/venbateam/.pub-cache/hosted/pub.dev/glob-2.1.3/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/glob-2.1.3/lib/
go_router
3.6
file:///Users/venbateam/.pub-cache/hosted/pub.dev/go_router-16.1.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/go_router-16.1.0/lib/
google_fonts
3.7
file:///Users/venbateam/.pub-cache/hosted/pub.dev/google_fonts-6.3.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/google_fonts-6.3.1/lib/
graphs
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/graphs-2.3.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/graphs-2.3.2/lib/
http
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/http-1.5.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/http-1.5.0/lib/
http_multi_server
3.2
file:///Users/venbateam/.pub-cache/hosted/pub.dev/http_multi_server-3.2.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/http_multi_server-3.2.2/lib/
http_parser
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/http_parser-4.1.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/http_parser-4.1.2/lib/
intl
3.3
file:///Users/venbateam/.pub-cache/hosted/pub.dev/intl-0.20.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/intl-0.20.2/lib/
io
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/io-1.0.5/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/io-1.0.5/lib/
js
2.19
file:///Users/venbateam/.pub-cache/hosted/pub.dev/js-0.6.7/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/js-0.6.7/lib/
json_annotation
3.0
file:///Users/venbateam/.pub-cache/hosted/pub.dev/json_annotation-4.9.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/json_annotation-4.9.0/lib/
json_serializable
3.8
file:///Users/venbateam/.pub-cache/hosted/pub.dev/json_serializable-6.10.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/json_serializable-6.10.0/lib/
leak_tracker
3.2
file:///Users/venbateam/.pub-cache/hosted/pub.dev/leak_tracker-10.0.9/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/leak_tracker-10.0.9/lib/
leak_tracker_flutter_testing
3.2
file:///Users/venbateam/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.9/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.9/lib/
leak_tracker_testing
3.2
file:///Users/venbateam/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.1/lib/
lints
3.6
file:///Users/venbateam/.pub-cache/hosted/pub.dev/lints-5.1.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/lints-5.1.1/lib/
logging
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/logging-1.3.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/logging-1.3.0/lib/
matcher
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/matcher-0.12.17/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/matcher-0.12.17/lib/
material_color_utilities
2.17
file:///Users/venbateam/.pub-cache/hosted/pub.dev/material_color_utilities-0.11.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/material_color_utilities-0.11.1/lib/
meta
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/meta-1.16.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/meta-1.16.0/lib/
mime
3.2
file:///Users/venbateam/.pub-cache/hosted/pub.dev/mime-2.0.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/mime-2.0.0/lib/
nm
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/nm-0.5.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/nm-0.5.0/lib/
package_config
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/package_config-2.2.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/package_config-2.2.0/lib/
path
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path-1.9.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path-1.9.1/lib/
path_provider
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider-2.1.5/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider-2.1.5/lib/
path_provider_android
3.6
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_android-2.2.17/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_android-2.2.17/lib/
path_provider_foundation
3.3
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/lib/
path_provider_linux
2.19
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/lib/
path_provider_platform_interface
3.0
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2/lib/
path_provider_windows
3.2
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/lib/
petitparser
3.5
file:///Users/venbateam/.pub-cache/hosted/pub.dev/petitparser-6.1.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/petitparser-6.1.0/lib/
platform
3.2
file:///Users/venbateam/.pub-cache/hosted/pub.dev/platform-3.1.6/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/platform-3.1.6/lib/
plugin_platform_interface
3.0
file:///Users/venbateam/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.8/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.8/lib/
pool
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/pool-1.5.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/pool-1.5.1/lib/
pub_semver
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/pub_semver-2.2.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/pub_semver-2.2.0/lib/
pubspec_parse
3.6
file:///Users/venbateam/.pub-cache/hosted/pub.dev/pubspec_parse-1.5.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/pubspec_parse-1.5.0/lib/
responsive_framework
3.0
file:///Users/venbateam/.pub-cache/hosted/pub.dev/responsive_framework-1.5.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/responsive_framework-1.5.1/lib/
riverpod
2.17
file:///Users/venbateam/.pub-cache/hosted/pub.dev/riverpod-2.6.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/riverpod-2.6.1/lib/
shared_preferences
3.5
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences-2.5.3/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences-2.5.3/lib/
shared_preferences_android
3.6
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_android-2.4.11/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_android-2.4.11/lib/
shared_preferences_foundation
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/lib/
shared_preferences_linux
3.3
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1/lib/
shared_preferences_platform_interface
3.2
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_platform_interface-2.4.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_platform_interface-2.4.1/lib/
shared_preferences_web
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.3/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.3/lib/
shared_preferences_windows
3.3
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/lib/
shelf
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shelf-1.4.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shelf-1.4.2/lib/
shelf_web_socket
3.5
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shelf_web_socket-3.0.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shelf_web_socket-3.0.0/lib/
source_gen
3.7
file:///Users/venbateam/.pub-cache/hosted/pub.dev/source_gen-3.1.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/source_gen-3.1.0/lib/
source_helper
3.6
file:///Users/venbateam/.pub-cache/hosted/pub.dev/source_helper-1.3.7/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/source_helper-1.3.7/lib/
source_span
3.1
file:///Users/venbateam/.pub-cache/hosted/pub.dev/source_span-1.10.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/source_span-1.10.1/lib/
stack_trace
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/stack_trace-1.12.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/stack_trace-1.12.1/lib/
state_notifier
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/state_notifier-1.0.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/state_notifier-1.0.0/lib/
stream_channel
3.3
file:///Users/venbateam/.pub-cache/hosted/pub.dev/stream_channel-2.1.4/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/stream_channel-2.1.4/lib/
stream_transform
3.1
file:///Users/venbateam/.pub-cache/hosted/pub.dev/stream_transform-2.1.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/stream_transform-2.1.1/lib/
string_scanner
3.1
file:///Users/venbateam/.pub-cache/hosted/pub.dev/string_scanner-1.4.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/string_scanner-1.4.1/lib/
term_glyph
3.1
file:///Users/venbateam/.pub-cache/hosted/pub.dev/term_glyph-1.2.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/term_glyph-1.2.2/lib/
test_api
3.5
file:///Users/venbateam/.pub-cache/hosted/pub.dev/test_api-0.7.4/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/test_api-0.7.4/lib/
timing
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/timing-1.0.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/timing-1.0.2/lib/
typed_data
3.5
file:///Users/venbateam/.pub-cache/hosted/pub.dev/typed_data-1.4.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/typed_data-1.4.0/lib/
vector_math
2.14
file:///Users/venbateam/.pub-cache/hosted/pub.dev/vector_math-2.1.4/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/vector_math-2.1.4/lib/
vm_service
3.3
file:///Users/venbateam/.pub-cache/hosted/pub.dev/vm_service-15.0.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/vm_service-15.0.0/lib/
watcher
3.1
file:///Users/venbateam/.pub-cache/hosted/pub.dev/watcher-1.1.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/watcher-1.1.2/lib/
web
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/web-1.1.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/web-1.1.1/lib/
web_socket
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/web_socket-1.0.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/web_socket-1.0.1/lib/
web_socket_channel
3.3
file:///Users/venbateam/.pub-cache/hosted/pub.dev/web_socket_channel-3.0.3/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/web_socket_channel-3.0.3/lib/
win32
3.8
file:///Users/venbateam/.pub-cache/hosted/pub.dev/win32-5.14.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/win32-5.14.0/lib/
xdg_directories
3.3
file:///Users/venbateam/.pub-cache/hosted/pub.dev/xdg_directories-1.1.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/xdg_directories-1.1.0/lib/
xml
3.2
file:///Users/venbateam/.pub-cache/hosted/pub.dev/xml-6.5.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/xml-6.5.0/lib/
yaml
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/yaml-3.1.3/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/yaml-3.1.3/lib/
sky_engine
3.7
file:///Users/venbateam/Documents/flutter/bin/cache/pkg/sky_engine/
file:///Users/venbateam/Documents/flutter/bin/cache/pkg/sky_engine/lib/
flutter
3.7
file:///Users/venbateam/Documents/flutter/packages/flutter/
file:///Users/venbateam/Documents/flutter/packages/flutter/lib/
flutter_test
3.7
file:///Users/venbateam/Documents/flutter/packages/flutter_test/
file:///Users/venbateam/Documents/flutter/packages/flutter_test/lib/
flutter_web_plugins
3.7
file:///Users/venbateam/Documents/flutter/packages/flutter_web_plugins/
file:///Users/venbateam/Documents/flutter/packages/flutter_web_plugins/lib/
nhance_partner
3.8
file:///Users/venbateam/Documents/nhance_partner/
file:///Users/venbateam/Documents/nhance_partner/lib/
2

View File

@ -7,25 +7,39 @@
"name": "nhance_partner",
"version": "1.0.0+1",
"dependencies": [
"animated_bottom_navigation_bar",
"connectivity_plus",
"cupertino_icons",
"easy_loading_button",
"equatable",
"firebase_app_check",
"firebase_auth",
"firebase_core",
"firebase_messaging",
"flutter",
"flutter_dotenv",
"flutter_hooks",
"flutter_lints",
"flutter_riverpod",
"flutter_secure_storage",
"get_it",
"go_router",
"google_fonts",
"google_sign_in",
"http",
"intl",
"json_annotation",
"jwt_decode",
"local_auth",
"package_info_plus",
"pinput",
"responsive_framework",
"shared_preferences"
"shared_preferences",
"toastification",
"url_launcher"
],
"devDependencies": [
"build_runner",
"flutter_lints",
"flutter_test",
"json_serializable"
]
@ -80,39 +94,173 @@
"web_socket_channel"
]
},
{
"name": "flutter_test",
"version": "0.0.0",
"dependencies": [
"clock",
"collection",
"fake_async",
"flutter",
"leak_tracker_flutter_testing",
"matcher",
"meta",
"path",
"stack_trace",
"stream_channel",
"test_api",
"vector_math"
]
},
{
"name": "easy_loading_button",
"version": "0.4.0",
"dependencies": [
"flutter"
]
},
{
"name": "flutter_lints",
"version": "5.0.0",
"version": "6.0.0",
"dependencies": [
"lints"
]
},
{
"name": "flutter_test",
"version": "0.0.0",
"name": "package_info_plus",
"version": "8.3.1",
"dependencies": [
"async",
"boolean_selector",
"characters",
"clock",
"collection",
"fake_async",
"ffi",
"flutter",
"leak_tracker",
"leak_tracker_flutter_testing",
"leak_tracker_testing",
"matcher",
"material_color_utilities",
"flutter_web_plugins",
"http",
"meta",
"package_info_plus_platform_interface",
"path",
"source_span",
"stack_trace",
"stream_channel",
"string_scanner",
"term_glyph",
"test_api",
"vector_math",
"vm_service"
"web",
"win32"
]
},
{
"name": "firebase_app_check",
"version": "0.4.0+1",
"dependencies": [
"firebase_app_check_platform_interface",
"firebase_app_check_web",
"firebase_core",
"firebase_core_platform_interface",
"flutter"
]
},
{
"name": "firebase_auth",
"version": "6.0.2",
"dependencies": [
"firebase_auth_platform_interface",
"firebase_auth_web",
"firebase_core",
"firebase_core_platform_interface",
"flutter",
"meta"
]
},
{
"name": "firebase_core",
"version": "4.1.0",
"dependencies": [
"firebase_core_platform_interface",
"firebase_core_web",
"flutter",
"meta"
]
},
{
"name": "google_sign_in",
"version": "7.1.1",
"dependencies": [
"flutter",
"google_sign_in_android",
"google_sign_in_ios",
"google_sign_in_platform_interface",
"google_sign_in_web"
]
},
{
"name": "local_auth",
"version": "2.3.0",
"dependencies": [
"flutter",
"local_auth_android",
"local_auth_darwin",
"local_auth_platform_interface",
"local_auth_windows"
]
},
{
"name": "firebase_messaging",
"version": "16.0.1",
"dependencies": [
"firebase_core",
"firebase_core_platform_interface",
"firebase_messaging_platform_interface",
"firebase_messaging_web",
"flutter",
"meta"
]
},
{
"name": "url_launcher",
"version": "6.3.2",
"dependencies": [
"flutter",
"url_launcher_android",
"url_launcher_ios",
"url_launcher_linux",
"url_launcher_macos",
"url_launcher_platform_interface",
"url_launcher_web",
"url_launcher_windows"
]
},
{
"name": "toastification",
"version": "3.0.3",
"dependencies": [
"collection",
"equatable",
"flutter",
"http",
"iconsax_flutter",
"pausable_timer",
"uuid"
]
},
{
"name": "jwt_decode",
"version": "0.3.1",
"dependencies": []
},
{
"name": "flutter_dotenv",
"version": "6.0.0",
"dependencies": [
"flutter"
]
},
{
"name": "animated_bottom_navigation_bar",
"version": "1.4.0",
"dependencies": [
"flutter"
]
},
{
"name": "pinput",
"version": "5.0.1",
"dependencies": [
"flutter",
"universal_platform"
]
},
{
@ -561,28 +709,6 @@
"version": "2.7.0",
"dependencies": []
},
{
"name": "lints",
"version": "5.1.1",
"dependencies": []
},
{
"name": "vm_service",
"version": "15.0.0",
"dependencies": []
},
{
"name": "term_glyph",
"version": "1.2.2",
"dependencies": []
},
{
"name": "string_scanner",
"version": "1.4.1",
"dependencies": [
"source_span"
]
},
{
"name": "stream_channel",
"version": "2.1.4",
@ -590,63 +716,14 @@
"async"
]
},
{
"name": "source_span",
"version": "1.10.1",
"dependencies": [
"collection",
"path",
"term_glyph"
]
},
{
"name": "material_color_utilities",
"version": "0.11.1",
"dependencies": [
"collection"
]
},
{
"name": "leak_tracker_testing",
"version": "3.0.1",
"dependencies": [
"leak_tracker",
"matcher",
"meta"
]
},
{
"name": "leak_tracker",
"version": "10.0.9",
"dependencies": [
"clock",
"collection",
"meta",
"path",
"vm_service"
]
},
{
"name": "collection",
"version": "1.19.1",
"dependencies": []
},
{
"name": "characters",
"version": "1.4.0",
"dependencies": []
},
{
"name": "boolean_selector",
"version": "2.1.2",
"dependencies": [
"source_span",
"string_scanner"
]
},
{
"name": "leak_tracker_flutter_testing",
"version": "3.0.9",
"version": "3.0.10",
"dependencies": [
"flutter",
"leak_tracker",
@ -657,7 +734,7 @@
},
{
"name": "vector_math",
"version": "2.1.4",
"version": "2.2.0",
"dependencies": []
},
{
@ -686,7 +763,7 @@
},
{
"name": "test_api",
"version": "0.7.4",
"version": "0.7.6",
"dependencies": [
"async",
"boolean_selector",
@ -699,6 +776,300 @@
"term_glyph"
]
},
{
"name": "lints",
"version": "6.0.0",
"dependencies": []
},
{
"name": "win32",
"version": "5.14.0",
"dependencies": [
"ffi"
]
},
{
"name": "web",
"version": "1.1.1",
"dependencies": []
},
{
"name": "package_info_plus_platform_interface",
"version": "3.2.1",
"dependencies": [
"flutter",
"meta",
"plugin_platform_interface"
]
},
{
"name": "flutter_web_plugins",
"version": "0.0.0",
"dependencies": [
"flutter"
]
},
{
"name": "ffi",
"version": "2.1.4",
"dependencies": []
},
{
"name": "firebase_core_platform_interface",
"version": "6.0.0",
"dependencies": [
"collection",
"flutter",
"flutter_test",
"meta",
"plugin_platform_interface"
]
},
{
"name": "firebase_app_check_web",
"version": "0.2.0+16",
"dependencies": [
"_flutterfire_internals",
"firebase_app_check_platform_interface",
"firebase_core",
"firebase_core_web",
"flutter",
"flutter_web_plugins",
"web"
]
},
{
"name": "firebase_app_check_platform_interface",
"version": "0.2.0+1",
"dependencies": [
"_flutterfire_internals",
"firebase_core",
"flutter",
"meta",
"plugin_platform_interface"
]
},
{
"name": "firebase_auth_web",
"version": "6.0.2",
"dependencies": [
"firebase_auth_platform_interface",
"firebase_core",
"firebase_core_web",
"flutter",
"flutter_web_plugins",
"http_parser",
"meta",
"web"
]
},
{
"name": "firebase_auth_platform_interface",
"version": "8.1.1",
"dependencies": [
"_flutterfire_internals",
"collection",
"firebase_core",
"flutter",
"http",
"meta",
"plugin_platform_interface"
]
},
{
"name": "firebase_core_web",
"version": "3.1.0",
"dependencies": [
"firebase_core_platform_interface",
"flutter",
"flutter_web_plugins",
"meta",
"web"
]
},
{
"name": "google_sign_in_web",
"version": "1.0.0",
"dependencies": [
"flutter",
"flutter_web_plugins",
"google_identity_services_web",
"google_sign_in_platform_interface",
"http",
"web"
]
},
{
"name": "google_sign_in_platform_interface",
"version": "3.0.0",
"dependencies": [
"flutter",
"plugin_platform_interface"
]
},
{
"name": "google_sign_in_ios",
"version": "6.1.0",
"dependencies": [
"flutter",
"google_sign_in_platform_interface"
]
},
{
"name": "google_sign_in_android",
"version": "7.0.5",
"dependencies": [
"flutter",
"google_sign_in_platform_interface"
]
},
{
"name": "local_auth_windows",
"version": "1.0.11",
"dependencies": [
"flutter",
"local_auth_platform_interface"
]
},
{
"name": "local_auth_platform_interface",
"version": "1.0.10",
"dependencies": [
"flutter",
"plugin_platform_interface"
]
},
{
"name": "local_auth_darwin",
"version": "1.6.0",
"dependencies": [
"flutter",
"intl",
"local_auth_platform_interface"
]
},
{
"name": "local_auth_android",
"version": "1.0.52",
"dependencies": [
"flutter",
"flutter_plugin_android_lifecycle",
"intl",
"local_auth_platform_interface"
]
},
{
"name": "firebase_messaging_web",
"version": "4.0.1",
"dependencies": [
"_flutterfire_internals",
"firebase_core",
"firebase_core_web",
"firebase_messaging_platform_interface",
"flutter",
"flutter_web_plugins",
"meta",
"web"
]
},
{
"name": "firebase_messaging_platform_interface",
"version": "4.7.1",
"dependencies": [
"_flutterfire_internals",
"firebase_core",
"flutter",
"meta",
"plugin_platform_interface"
]
},
{
"name": "url_launcher_windows",
"version": "3.1.4",
"dependencies": [
"flutter",
"url_launcher_platform_interface"
]
},
{
"name": "url_launcher_web",
"version": "2.4.1",
"dependencies": [
"flutter",
"flutter_web_plugins",
"url_launcher_platform_interface",
"web"
]
},
{
"name": "url_launcher_platform_interface",
"version": "2.3.2",
"dependencies": [
"flutter",
"plugin_platform_interface"
]
},
{
"name": "url_launcher_macos",
"version": "3.2.3",
"dependencies": [
"flutter",
"url_launcher_platform_interface"
]
},
{
"name": "url_launcher_linux",
"version": "3.2.1",
"dependencies": [
"flutter",
"url_launcher_platform_interface"
]
},
{
"name": "url_launcher_ios",
"version": "6.3.4",
"dependencies": [
"flutter",
"url_launcher_platform_interface"
]
},
{
"name": "url_launcher_android",
"version": "6.3.18",
"dependencies": [
"flutter",
"url_launcher_platform_interface"
]
},
{
"name": "iconsax_flutter",
"version": "1.0.1",
"dependencies": [
"flutter"
]
},
{
"name": "pausable_timer",
"version": "3.1.0+3",
"dependencies": [
"clock"
]
},
{
"name": "uuid",
"version": "4.5.1",
"dependencies": [
"crypto",
"fixnum",
"meta",
"sprintf"
]
},
{
"name": "universal_platform",
"version": "1.1.0",
"dependencies": []
},
{
"name": "path_provider",
"version": "2.1.5",
@ -764,11 +1135,6 @@
"dbus"
]
},
{
"name": "web",
"version": "1.1.1",
"dependencies": []
},
{
"name": "connectivity_plus_platform_interface",
"version": "2.0.1",
@ -778,18 +1144,6 @@
"plugin_platform_interface"
]
},
{
"name": "flutter_web_plugins",
"version": "0.0.0",
"dependencies": [
"characters",
"collection",
"flutter",
"material_color_utilities",
"meta",
"vector_math"
]
},
{
"name": "shared_preferences_windows",
"version": "2.4.1",
@ -880,6 +1234,18 @@
"version": "0.0.0",
"dependencies": []
},
{
"name": "material_color_utilities",
"version": "0.11.1",
"dependencies": [
"collection"
]
},
{
"name": "characters",
"version": "1.4.0",
"dependencies": []
},
{
"name": "yaml",
"version": "3.1.3",
@ -889,6 +1255,15 @@
"string_scanner"
]
},
{
"name": "source_span",
"version": "1.10.1",
"dependencies": [
"collection",
"path",
"term_glyph"
]
},
{
"name": "checked_yaml",
"version": "2.0.4",
@ -941,6 +1316,13 @@
"web"
]
},
{
"name": "string_scanner",
"version": "1.4.1",
"dependencies": [
"source_span"
]
},
{
"name": "file",
"version": "7.0.1",
@ -981,6 +1363,82 @@
"pub_semver"
]
},
{
"name": "leak_tracker_testing",
"version": "3.0.2",
"dependencies": [
"leak_tracker",
"matcher",
"meta"
]
},
{
"name": "leak_tracker",
"version": "11.0.1",
"dependencies": [
"clock",
"collection",
"meta",
"path",
"vm_service"
]
},
{
"name": "term_glyph",
"version": "1.2.2",
"dependencies": []
},
{
"name": "boolean_selector",
"version": "2.1.2",
"dependencies": [
"source_span",
"string_scanner"
]
},
{
"name": "plugin_platform_interface",
"version": "2.1.8",
"dependencies": [
"meta"
]
},
{
"name": "_flutterfire_internals",
"version": "1.3.61",
"dependencies": [
"collection",
"firebase_core",
"firebase_core_platform_interface",
"flutter",
"meta"
]
},
{
"name": "google_identity_services_web",
"version": "0.3.3+1",
"dependencies": [
"meta",
"web"
]
},
{
"name": "flutter_plugin_android_lifecycle",
"version": "2.0.30",
"dependencies": [
"flutter"
]
},
{
"name": "fixnum",
"version": "1.1.1",
"dependencies": []
},
{
"name": "sprintf",
"version": "7.0.0",
"dependencies": []
},
{
"name": "path_provider_windows",
"version": "2.3.0",
@ -1027,18 +1485,6 @@
"path_provider_platform_interface"
]
},
{
"name": "win32",
"version": "5.14.0",
"dependencies": [
"ffi"
]
},
{
"name": "ffi",
"version": "2.1.4",
"dependencies": []
},
{
"name": "js",
"version": "0.6.7",
@ -1046,13 +1492,6 @@
"meta"
]
},
{
"name": "plugin_platform_interface",
"version": "2.1.8",
"dependencies": [
"meta"
]
},
{
"name": "dbus",
"version": "0.7.11",
@ -1064,8 +1503,8 @@
]
},
{
"name": "fixnum",
"version": "1.1.1",
"name": "vm_service",
"version": "15.0.0",
"dependencies": []
},
{

View File

@ -1 +1 @@
3.32.8
3.35.2

File diff suppressed because one or more lines are too long

10
.run/main.dart.run.xml Normal file
View File

@ -0,0 +1,10 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="main.dart" type="FlutterRunConfigurationType" factoryName="Flutter">
<option name="additionalArgs" value="--web-browser-flag &quot;--disable-web-security&quot;" />
<option name="envs">
<entry key="google-chrome --disable-web-security --user-data-dir" value="~/chromeTemp " />
</option>
<option name="filePath" value="$PROJECT_DIR$/lib/main.dart" />
<method v="2" />
</configuration>
</component>

View File

@ -9,6 +9,10 @@
# packages, and plugins designed to encourage good coding practices.
include: package:flutter_lints/flutter.yaml
analyzer:
errors:
undefined_function: error
linter:
# The lint rules applied to this project can be customized in the
# section below to disable rules from the `package:flutter_lints/flutter.yaml`

View File

@ -6,7 +6,7 @@ plugins {
}
android {
namespace = "com.nhancepartner.nhance_partner"
namespace = "nh.ind.nhance.partner"
compileSdk = flutter.compileSdkVersion
ndkVersion = flutter.ndkVersion
@ -21,7 +21,7 @@ android {
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId = "com.nhancepartner.nhance_partner"
applicationId = "nh.ind.nhance.partner"
// You can update the following values to match your application needs.
// For more information, see: https://flutter.dev/to/review-gradle-config.
minSdk = flutter.minSdkVersion

View File

@ -0,0 +1,48 @@
{
"project_info": {
"project_number": "1084115316849",
"project_id": "nhance-ee8d1",
"storage_bucket": "nhance-ee8d1.firebasestorage.app"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:1084115316849:android:68b14c4ff37f4bbc6c6bd0",
"android_client_info": {
"package_name": "nh.ind.nhance.benefits"
}
},
"oauth_client": [],
"api_key": [
{
"current_key": "AIzaSyC4yHbCX4mQu0jO81pJrDwxKLQlTQWofrc"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": []
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:1084115316849:android:138fb3f92f2473836c6bd0",
"android_client_info": {
"package_name": "nh.ind.nhance.partner"
}
},
"oauth_client": [],
"api_key": [
{
"current_key": "AIzaSyC4yHbCX4mQu0jO81pJrDwxKLQlTQWofrc"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": []
}
}
}
],
"configuration_version": "1"
}

View File

@ -1,4 +1,4 @@
package com.nhancepartner.nhance_partner
package nh.ind.nhance.partner
import io.flutter.embedding.android.FlutterActivity

View File

@ -0,0 +1 @@
ecafa7e7cb02988e96174c3e4fffac2b

View File

@ -1 +0,0 @@
{"inputs":[],"outputs":[]}

View File

@ -1 +0,0 @@
{"inputs":[],"outputs":[]}

View File

@ -1 +0,0 @@
{"inputs":[],"outputs":[]}

View File

@ -1 +0,0 @@
{"inputs":[],"outputs":[]}

View File

@ -1 +0,0 @@
{"inputs":[],"outputs":[]}

View File

@ -0,0 +1 @@
{"version":2,"files":[]}

View File

@ -0,0 +1 @@
[]

View File

@ -1 +1 @@
2packages/cupertino_icons/assets/CupertinoIcons.ttf  asset2packages/cupertino_icons/assets/CupertinoIcons.ttf
assets/login/login-bg.png  assetassets/login/login-bg.pngassets/login/login-content.png  assetassets/login/login-content.png$assets/login/nhance-partner-logo.png  asset$assets/login/nhance-partner-logo.png2packages/cupertino_icons/assets/CupertinoIcons.ttf  asset2packages/cupertino_icons/assets/CupertinoIcons.ttf1packages/iconsax_flutter/fonts/FlutterIconsax.ttf  asset1packages/iconsax_flutter/fonts/FlutterIconsax.ttf

View File

@ -1 +1 @@
"DQEHMnBhY2thZ2VzL2N1cGVydGlub19pY29ucy9hc3NldHMvQ3VwZXJ0aW5vSWNvbnMudHRmDAENAQcFYXNzZXQHMnBhY2thZ2VzL2N1cGVydGlub19pY29ucy9hc3NldHMvQ3VwZXJ0aW5vSWNvbnMudHRm"
"DQUHGWFzc2V0cy9sb2dpbi9sb2dpbi1iZy5wbmcMAQ0BBwVhc3NldAcZYXNzZXRzL2xvZ2luL2xvZ2luLWJnLnBuZwceYXNzZXRzL2xvZ2luL2xvZ2luLWNvbnRlbnQucG5nDAENAQcFYXNzZXQHHmFzc2V0cy9sb2dpbi9sb2dpbi1jb250ZW50LnBuZwckYXNzZXRzL2xvZ2luL25oYW5jZS1wYXJ0bmVyLWxvZ28ucG5nDAENAQcFYXNzZXQHJGFzc2V0cy9sb2dpbi9uaGFuY2UtcGFydG5lci1sb2dvLnBuZwcycGFja2FnZXMvY3VwZXJ0aW5vX2ljb25zL2Fzc2V0cy9DdXBlcnRpbm9JY29ucy50dGYMAQ0BBwVhc3NldAcycGFja2FnZXMvY3VwZXJ0aW5vX2ljb25zL2Fzc2V0cy9DdXBlcnRpbm9JY29ucy50dGYHMXBhY2thZ2VzL2ljb25zYXhfZmx1dHRlci9mb250cy9GbHV0dGVySWNvbnNheC50dGYMAQ0BBwVhc3NldAcxcGFja2FnZXMvaWNvbnNheF9mbHV0dGVyL2ZvbnRzL0ZsdXR0ZXJJY29uc2F4LnR0Zg=="

View File

@ -1 +1 @@
{"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"]}
{"assets/login/login-bg.png":["assets/login/login-bg.png"],"assets/login/login-content.png":["assets/login/login-content.png"],"assets/login/nhance-partner-logo.png":["assets/login/nhance-partner-logo.png"],"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"],"packages/iconsax_flutter/fonts/FlutterIconsax.ttf":["packages/iconsax_flutter/fonts/FlutterIconsax.ttf"]}

View File

@ -1 +1 @@
[{"family":"MaterialIcons","fonts":[{"asset":"fonts/MaterialIcons-Regular.otf"}]},{"family":"packages/cupertino_icons/CupertinoIcons","fonts":[{"asset":"packages/cupertino_icons/assets/CupertinoIcons.ttf"}]}]
[{"family":"MaterialIcons","fonts":[{"asset":"fonts/MaterialIcons-Regular.otf"}]},{"family":"packages/iconsax_flutter/FlutterIconsax","fonts":[{"asset":"packages/iconsax_flutter/fonts/FlutterIconsax.ttf"}]},{"family":"packages/cupertino_icons/CupertinoIcons","fonts":[{"asset":"packages/cupertino_icons/assets/CupertinoIcons.ttf"}]}]

File diff suppressed because it is too large Load Diff

3
devtools_options.yaml Normal file
View File

@ -0,0 +1,3 @@
description: This file stores settings for Dart & Flutter DevTools.
documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states
extensions:

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>API_KEY</key>
<string>AIzaSyC1X9S4nCpEIAZ1xacUeKRclYrFi2CxKK0</string>
<key>GCM_SENDER_ID</key>
<string>1084115316849</string>
<key>PLIST_VERSION</key>
<string>1</string>
<key>BUNDLE_ID</key>
<string>nh.ind.nhance.partner</string>
<key>PROJECT_ID</key>
<string>nhance-ee8d1</string>
<key>STORAGE_BUCKET</key>
<string>nhance-ee8d1.firebasestorage.app</string>
<key>IS_ADS_ENABLED</key>
<false></false>
<key>IS_ANALYTICS_ENABLED</key>
<false></false>
<key>IS_APPINVITE_ENABLED</key>
<true></true>
<key>IS_GCM_ENABLED</key>
<true></true>
<key>IS_SIGNIN_ENABLED</key>
<true></true>
<key>GOOGLE_APP_ID</key>
<string>1:1084115316849:ios:0ec705fafdea89226c6bd0</string>
</dict>
</plist>

View File

@ -1,5 +1,7 @@
class Env {
static const String envName = String.fromEnvironment('ENV', defaultValue: 'dev');
static const String apiUrl = String.fromEnvironment('https://venbait.in/nhance/partner/dev/');
static const String baseUrl = String.fromEnvironment('BASE_URL');
static const String apiUrl = String.fromEnvironment('API_URL', defaultValue: 'https://venbait.in/nhance/partner/dev/api/');
static const String baseUrl = String.fromEnvironment('BASE_URL', defaultValue: '');
static const String App_Signature = String.fromEnvironment('App_Signature', defaultValue: 'nhance-partner-2025-signature-35468846JRhH551HK');
}

View File

@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:nhance_partner/core/routing/routes.dart';
import 'package:nhance_partner/presentation/screens/claims/claimsList.dart';
import 'package:nhance_partner/presentation/screens/dashboard/dashboard.dart';
import '../../data/services/auth_service.dart';
import '../../presentation/screens/home/home_screen.dart';
import '../../presentation/screens/login/login_screen.dart';
@ -20,9 +21,12 @@ final GoRouter appRouter = GoRouter(
),
GoRoute(
path: AppRoutes.home,
// builder: (context, state) => const ClaimsList(),
builder: (context, state) => const HomeScreen(),
),
GoRoute(
path: AppRoutes.dashboard,
builder: (context, state) => const DashboardScreen(),
),
],
redirect: (context, state) async {
final loggedIn = await AuthService.isLoggedIn();

View File

@ -1,6 +1,7 @@
class AppRoutes {
static const String splash = '/';
static const String home = '/home';
static const String dashboard = '/dashboard';
static const String login = '/login';
}

View File

@ -1,12 +1,11 @@
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:nhance_app_pwa/customAppBar/toastHelper.dart';
import 'package:nhance_app_pwa/models/environment.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'dart:convert';
import '../../data/utils/toastNotification.dart';
class ApiService {
final BuildContext context;
late final BuildContext context;
Future<void> _clearLocalStorageAndRedirect() async {
final prefs = await SharedPreferences.getInstance();

View File

@ -0,0 +1,5 @@
import 'dart:io';
bool isMobilePlatform() {
return Platform.isAndroid || Platform.isIOS;
}

View File

@ -1,8 +1,52 @@
import 'package:firebase_app_check/firebase_app_check.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'core/routing/app_router.dart';
void main() {
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
// final SharedPreferences prefs = await SharedPreferences.getInstance();
// prefs.clear();
if (kIsWeb) {
await Firebase.initializeApp(
options: const FirebaseOptions(
apiKey: "AIzaSyC4yHbCX4mQu0jO81pJrDwxKLQlTQWofrc",
authDomain: "nhance-ee8d1.firebaseapp.com",
projectId: "nhance-ee8d1",
storageBucket: "nhance-ee8d1.firebasestorage.app",
messagingSenderId: "1084115316849",
appId: "1:1084115316849:web:8fc3b1c886349ae86c6bd0"));
} else {
await Firebase.initializeApp();
await FirebaseAppCheck.instance.activate(
// webProvider: ReCaptchaV3Provider('recaptcha-v3-site-key'),
androidProvider: AndroidProvider.playIntegrity,
appleProvider: AppleProvider.appAttest,
);
// FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
// FirebaseMessaging messaging = FirebaseMessaging.instance;
// // NotificationSettings settings = await messaging.requestPermission();
// NotificationSettings settings =
// await FirebaseMessaging.instance.requestPermission(
// alert: true,
// badge: true,
// sound: true,
// );
// print('User granted permission: ${settings.authorizationStatus}');
// FirebaseMessaging.onMessage.listen((RemoteMessage message) {
// print('Foreground Message: ${message.notification?.title}');
// });
// FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
// print('User tapped on notification');
// });
}
runApp(const ProviderScope(child: MyApp()));
}

View File

@ -0,0 +1,19 @@
import 'package:flutter/material.dart';
import '../../layouts/main_layout.dart';
class DashboardScreen extends StatefulWidget {
const DashboardScreen({super.key});
@override
State<DashboardScreen> createState() => _DashboardScreenState();
}
class _DashboardScreenState extends State<DashboardScreen> {
@override
Widget build(BuildContext context) {
return MainLayout(
title: "Home",
body: const Center(child: Text("Dashboard Page Content")),
);
}
}

View File

@ -1,12 +1,20 @@
import 'dart:convert';
import 'dart:io';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:go_router/go_router.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:http/http.dart' as http;
import 'package:nhance_partner/core/config/env.dart';
import 'package:nhance_partner/core/services/platform_helper.dart';
import 'package:nhance_partner/data/utils/validators.dart';
import 'package:pinput/pinput.dart';
import '../../../core/config/env.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../../../core/routing/routes.dart';
import '../../../data/services/auth_service.dart';
import '../../../data/utils/toastNotification.dart';
import '../../layouts/responsive_layout.dart';
import '../../themes/indicators/text_field_theme.dart';
@ -22,11 +30,17 @@ class _LoginScreenState extends State<LoginScreen> {
final TextEditingController _emailController = TextEditingController();
final TextEditingController _PhoneNumberController = TextEditingController();
final TextEditingController _otpController = TextEditingController();
final TextEditingController _countryController = TextEditingController();
final FirebaseAuth _auth = FirebaseAuth.instance;
late String _verificationId;
int? _resendToken;
bool _isLoading = false;
bool _obscurePassword = true;
int stausVal = 1;
int switcherStatus = 1;
int selectedIndex = 1;
bool enteredEmailOrMobile = false;
dynamic clickedButtonName;
dynamic token;
// Future<void> _handleLogin() async {
@ -83,71 +97,74 @@ class _LoginScreenState extends State<LoginScreen> {
@override
void initState() {
super.initState();
_countryController.text = "+91";
}
Future<void> verifyMobileAndEmailNumber() async {
Future<void> sendMobileOrEmailVerify(loginUser) async {
try {
if (_formKey.currentState!.validate()) {
// setState(() {
// _isLoading = true;
// });
// Determine the API and the payload based on the visible field
String apiEndpoint = isEmailFieldVisible
? Env.apiUrl + 'verifyEmployeeEmailId'
: Env.apiUrl + 'verifyEmployeeNumber';
print('klvbnksdbkjb');
print(Env.apiUrl);
String apiEndpoint;
if (loginUser == 'agent') {
apiEndpoint = switcherStatus == 1
? Env.apiUrl + 'auth/verifyAgentWithMobileNumber'
: Env.apiUrl + 'auth/verifyAgentWithEmailId';
} else {
apiEndpoint = switcherStatus == 1
? Env.apiUrl + 'auth/verifyStaffWithMobileNumber'
: Env.apiUrl + 'auth/verifyStaffWithEmailId';
}
Map<String, dynamic> payload = isEmailFieldVisible
? {'email': emailController.text}
: {'mobile_number': mobileController.text};
// Determine the API and the payload based on the visible field
Map<String, dynamic> payload = switcherStatus == 1
? {'mobile': _PhoneNumberController.text}
: {'email': _emailController.text};
final response = await http.post(
Uri.parse(apiEndpoint),
body: json.encode(payload),
headers: {
HttpHeaders.contentTypeHeader: 'application/json',
'App-Signature': Env.App_Signature,
},
);
if (response.statusCode == 200) {
Map<String, dynamic> data = json.decode(response.body);
bool userVerification = data['data']['user_verification'];
String message = data['data']['message'];
if (userVerification) {
final SharedPreferences prefs =
await SharedPreferences.getInstance();
// var enteredMobileNumber = mobileController.text;
// prefs.setString('empMobileNo', enteredMobileNumber);
if (isEmailFieldVisible) {
print('isEmailFieldVisible $isEmailFieldVisible');
// prefs.setString('empEmail', emailController.text);
print('${emailController.text}');
ToastHelper.showSuccessToast(
context, 'Verification code sent to ${emailController.text}');
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => MyEmailVerify(
email: emailController.text, // Pass the phone number
),
),
);
bool verificationAgentOrStaff;
if (loginUser == 'agent') {
verificationAgentOrStaff = data['data']['agent_verification'];
} else {
_verifyPhoneNumber();
verificationAgentOrStaff = data['data']['Staff_verification'];
}
// ToastHelper.showSuccessToast(context, message);
String message = data['data']['message'];
if (verificationAgentOrStaff) {
if(switcherStatus == 1){
_verifyPhoneNumber();
} else {
setState(() {
_isLoading = false;
enteredEmailOrMobile = true;
});
print('email');
ToastHelper.showSuccessToast(context, 'OTP sent successfully');
}
} else {
// setState(() {
// _isLoading = false;
// });
ToastHelper.showErrorToast(context, message);
print('Invalid mobile number');
}
} else {
setState(() {
_isLoading = false;
});
// setState(() {
// _isLoading = false;
// });
ToastHelper.showErrorToast(context, 'Something went wrong');
throw Exception('Failed to verify mobile number');
}
@ -161,6 +178,250 @@ class _LoginScreenState extends State<LoginScreen> {
}
}
Future<void> verifyMobileOrMailOTP(otpVerifyStatus) async {
try {
// Select API endpoint
final String apiEndpoint = (clickedButtonName == 'agent')
? '${Env.apiUrl}auth/getVerifiedAgentData'
: '${Env.apiUrl}auth/getVerifiedStaffData';
// Build payload depending on switcher status
final Map<String, dynamic> payload = (switcherStatus == 1)
? {'otp_verification': otpVerifyStatus,'mobile': _PhoneNumberController.text.trim()}
: {'otp': otpVerifyStatus,'email': _emailController.text.trim()};
// Send request
final response = await http.post(
Uri.parse(apiEndpoint),
body: json.encode(payload),
headers: {
HttpHeaders.contentTypeHeader: 'application/json',
'App-Signature': Env.App_Signature,
},
);
// Check response
if (response.statusCode == 200) {
final Map<String, dynamic> data = json.decode(response.body);
final String status = data['status']?.toString() ?? 'error';
token = data['data']; // can be string or object
print('Response status: ${response.statusCode}');
print('Response body: $data');
if (status == 'success') {
ToastHelper.showSuccessToast(context, 'OTP verified successfully');
await AuthService.saveToken(token);
final dynamic tokenData = AuthService.getToken();
print('token - $tokenData');
context.go(AppRoutes.dashboard);
} else {
ToastHelper.showWarningToast(context, data['message'] ?? 'Invalid OTP');
}
} else {
ToastHelper.showErrorToast(
context, 'Server error: ${response.statusCode}');
}
} catch (e, stacktrace) {
print('Error verifying OTP: $e');
print(stacktrace);
ToastHelper.showErrorToast(context, 'Something went wrong. Please try again.');
}
}
void verifyFirebaseMobileOTP() async {
try {
// setState(() {
// _isLoading = true;
// });
// Later, in verify screen:
SharedPreferences prefs = await SharedPreferences.getInstance();
dynamic verificationId = prefs.getString('verificationId');
final credential = PhoneAuthProvider.credential(
verificationId: verificationId, // Make sure this is up-to-date
smsCode: _otpController.text,
);
print('credential $credential');
final userCredential =
await FirebaseAuth.instance.signInWithCredential(credential);
// await FirebaseAuth.instance.signInWithCredential(credential);
print('otp firebase check');
if (userCredential.user != null) {
print('otp firebase check done');
bool otpVerifyStatus = true;
verifyMobileOrMailOTP(otpVerifyStatus);
} else {
ToastHelper.showErrorToast(context, 'Invalid OTP. Please try again.');
}
// await FirebaseAuth.instance.signInWithCredential(credential).then((userCredential) async {
// if (userCredential.user != null) {
// bool otpVerifyStatus = true;
// generateToken(otpVerifyStatus);
// } else {
// setState(() {
// _isLoading = false;
// });
// ToastHelper.showErrorToast(context, 'Invalid OTP. Please try again');
// }
// });
} on FirebaseAuthException catch (e) {
if (e.code == 'code-expired') {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text('OTP expired. Please request a new one.'),
duration: Duration(seconds: 2),
),
);
ToastHelper.showErrorToast(
context, 'OTP expired. Please request a new one.');
} else if (e.code == 'invalid-verification-code') {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text('Invalid OTP entered. Please try again.'),
duration: Duration(seconds: 2),
),
);
ToastHelper.showErrorToast(
context, 'Invalid OTP entered. Please try again.');
} else if (e.code == 'session-expired') {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text('Session expired. Try restarting the verification.'),
duration: Duration(seconds: 2),
),
);
ToastHelper.showErrorToast(
context, 'Session expired. Try restarting the verification.');
} else {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text('Error: ${e.message}'),
duration: Duration(seconds: 2),
),
);
ToastHelper.showErrorToast(context, 'Error: ${e.message}');
}
} catch (e) {
// setState(() {
// _isLoading = false;
// });
print('Error: $e');
ToastHelper.showErrorToast(
context, 'Failed to verify OTP. Please try again.');
}
}
Future<void> _verifyPhoneNumber() async {
var enteredMobileNumber = _PhoneNumberController.text;
var countryCode = _countryController.text;
print('${countryCode + enteredMobileNumber}');
await _auth.verifyPhoneNumber(
phoneNumber: '${countryCode + enteredMobileNumber}',
timeout: const Duration(seconds: 60),
verificationCompleted: (PhoneAuthCredential credential) async {
await _auth.signInWithCredential(credential);
// ToastHelper.showSuccessToast(context, 'Verified Successfully!');
// setState(() {
// _isLoading = false;
// });
},
verificationFailed: (FirebaseAuthException e) {
print('Verification Failed: ${e.code} - ${e.message}');
String errorMessage;
if (e.code == 'invalid-app-credential') {
errorMessage = 'Invalid Credential. Please try again.';
} else if (e.code == 'invalid-phone-number') {
errorMessage = 'The provided phone number is not valid.';
} else if (e.code == 'too-many-requests') {
errorMessage = 'Too many requests. Try again later.';
} else {
errorMessage = 'Verification Failed: ${e.message}';
}
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(errorMessage),
duration: Duration(seconds: 2),
),
);
ToastHelper.showSuccessToast(context, errorMessage);
setState(() {
_isLoading = false;
});
},
codeSent: (String verificationId, int? resendToken) async {
setState(() {
_verificationId = verificationId;
_resendToken = resendToken;
});
// When getting the verificationId
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('verificationId', _verificationId);
setState(() {
enteredEmailOrMobile = true;
});
ToastHelper.showSuccessToast(
context, 'Verification code sent to ${enteredMobileNumber}');
// setState(() {
// _isLoading = false;
// });
},
codeAutoRetrievalTimeout: (String verificationId) async{
setState(() {
_verificationId = verificationId;
});
final prefs = await SharedPreferences.getInstance();
await prefs.setString('verificationId', verificationId);
ToastHelper.showSuccessToast(context, 'Code auto-retrieval timed out.');
setState(() {
_isLoading = false;
});
},
);
}
void _resendCode(String mobileNumber, int? resendToken) async {
await _auth.verifyPhoneNumber(
phoneNumber: '${_countryController.text + mobileNumber}',
timeout: const Duration(seconds: 60),
forceResendingToken: resendToken,
verificationCompleted: (PhoneAuthCredential credential) async {
await _auth.signInWithCredential(credential);
},
verificationFailed: (FirebaseAuthException e) {
if (e.code == 'invalid-phone-number') {
print('The provided phone number is not valid.');
}
},
codeSent: (String verificationId, int? resendToken) async{
final prefs = await SharedPreferences.getInstance();
await prefs.setString('verificationId', verificationId);
setState(() {
_verificationId = verificationId;
_resendToken = resendToken;
});
ToastHelper.showSuccessToast(
context, 'Verification code resent to ${mobileNumber}');
},
codeAutoRetrievalTimeout: (String verificationId) async{
final prefs = await SharedPreferences.getInstance();
await prefs.setString('verificationId', verificationId);
setState(() {
_verificationId = verificationId;
});
},
);
}
// Future<void> _verifyPhoneNumber() async {
// var enteredMobileNumber = mobileController.text;
// var countryCode = countryController.text;
@ -286,15 +547,14 @@ class _LoginScreenState extends State<LoginScreen> {
// );
// }
Future<void> sendMobileOrEmailVerify() async {
if (!_formKey.currentState!.validate()) return;
setState(() {
enteredEmailOrMobile = true;
});
}
// Future<void> sendMobileOrEmailVerify() async {
// if (!_formKey.currentState!.validate()) return;
// setState(() {
// enteredEmailOrMobile = true;
// });
// }
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
body: LayoutBuilder(
@ -330,7 +590,8 @@ class _LoginScreenState extends State<LoginScreen> {
const SizedBox(height: 20),
Image.asset(
"assets/login/login-content.png",
height: 500,
height: MediaQuery.of(context).size.height * 0.5, // 40% of screen height
fit: BoxFit.contain,
),
const SizedBox(height: 10),
const Text(
@ -356,7 +617,9 @@ class _LoginScreenState extends State<LoginScreen> {
decoration: const BoxDecoration(
color: Colors.white,
image: DecorationImage(
image: AssetImage("assets/login/login-bg.png"), // <-- your image path
image: AssetImage(
"assets/login/login-bg.png",
), // <-- your image path
fit: BoxFit.cover, // cover entire container
),
borderRadius: BorderRadius.only(
@ -364,7 +627,8 @@ class _LoginScreenState extends State<LoginScreen> {
bottomLeft: Radius.circular(40),
),
),
child: Center( // <-- center vertically + horizontally
child: Center(
// <-- center vertically + horizontally
child: SizedBox(
width: 600, // keep fixed width like first design
child: _LoginForm(context),
@ -395,10 +659,7 @@ class _LoginScreenState extends State<LoginScreen> {
),
),
const SizedBox(height: 20),
Image.asset(
"assets/login/login-content.png",
height: 180 ,
),
Image.asset("assets/login/login-content.png", height: 180),
const SizedBox(height: 10),
Container(
padding: EdgeInsets.symmetric(vertical: 20, horizontal: 50),
@ -415,7 +676,9 @@ class _LoginScreenState extends State<LoginScreen> {
const SizedBox(height: 20),
Container(
width: double.infinity,
height: MediaQuery.of(context).size.height, // full screen height
height: MediaQuery.of(
context,
).size.height, // full screen height
padding: const EdgeInsets.all(20),
decoration: const BoxDecoration(
gradient: LinearGradient(
@ -429,7 +692,7 @@ class _LoginScreenState extends State<LoginScreen> {
),
),
child: _LoginForm(context),
)
),
],
),
);
@ -462,7 +725,7 @@ class _LoginScreenState extends State<LoginScreen> {
style: TextStyle(
fontSize: ResponsiveLayout.isMobile(context) ? 14 : 18,
color: Colors.white,
fontWeight: FontWeight.w600
fontWeight: FontWeight.w600,
),
),
const SizedBox(height: 20),
@ -498,25 +761,29 @@ class _LoginScreenState extends State<LoginScreen> {
height: 70,
child: Column(
children: [
if (stausVal == 0)
if (switcherStatus == 0)
ThemedFormField(
hintText: 'Email',
backgroundColor: Colors.white,
validator: (value) => Validators.email(value, "Email"),
validator: (value) =>
Validators.email(value, "Email"),
// imgPath: "MiscIconAssetPath.person",
controller: _emailController,
),
if (stausVal == 1)
if (switcherStatus == 1)
ThemedFormField(
hintText: 'Mobile Number',
backgroundColor: Colors.white,
validator: (value) => Validators.phone(value, "Phone"),
validator: (value) =>
Validators.phone(value, "Phone"),
// imgPath: "MiscIconAssetPath.person",
controller: _PhoneNumberController,
// txtwidth: MediaQuery.of(context).size.width * 0.5,
keyboardType: TextInputType.number,
maxLength: 10,
inputFormatters: [FilteringTextInputFormatter.digitsOnly],
inputFormatters: [
FilteringTextInputFormatter.digitsOnly,
],
// readOnly: true,
),
// const SizedBox(height: 16),
@ -535,101 +802,10 @@ class _LoginScreenState extends State<LoginScreen> {
// // readOnly: true,
// ),
],
)
),
const SizedBox(height: 20),
if(enteredEmailOrMobile)
Container(
child: Text('OTP',
style: TextStyle(
fontSize: ResponsiveLayout.isMobile(context) ? 14 : 18,
fontWeight: FontWeight.w600,
color: Colors.white
),
),
),
if(enteredEmailOrMobile)
Container(
child: Pinput(
length: 6,
defaultPinTheme:
defaultPinTheme,
separatorBuilder:
(index) =>
const SizedBox(
width: 8),
showCursor: true,
controller: _otpController,
// validator: _validatePin,
errorPinTheme:
defaultPinTheme
.copyBorderWith(
border: Border.all(
color: Colors
.redAccent),
),
hapticFeedbackType:
HapticFeedbackType
.lightImpact,
onCompleted: (pin) {
debugPrint(
'onCompleted: $pin');
},
onChanged: (value) {
debugPrint(
'onChanged: $value');
},
cursor: Column(
mainAxisAlignment:
MainAxisAlignment
.end,
children: [
Container(
margin:
const EdgeInsets
.only(
bottom: 9),
width: 22,
height: 1,
color:
focusedBorderColor,
),
],
),
focusedPinTheme:
defaultPinTheme
.copyWith(
decoration:
defaultPinTheme
.decoration!
.copyWith(
borderRadius:
BorderRadius
.circular(8),
border: Border.all(
color:
focusedBorderColor),
),
),
submittedPinTheme:
defaultPinTheme
.copyWith(
decoration:
defaultPinTheme
.decoration!
.copyWith(
color: fillColor,
borderRadius:
BorderRadius
.circular(19),
border: Border.all(
color:
focusedBorderColor),
),
),
),
),
const SizedBox(height: 20),
if (!enteredEmailOrMobile)
SizedBox(
width: 400,
child: SizedBox(
@ -644,20 +820,250 @@ class _LoginScreenState extends State<LoginScreen> {
),
),
onPressed: () {
sendMobileOrEmailVerify();
sendMobileOrEmailVerify('agent');
setState(() {
clickedButtonName = 'agent';
});
},
child: Text(
enteredEmailOrMobile ? 'Continue' : 'Request OTP',
'Login as Agent',
style: TextStyle(
fontSize: ResponsiveLayout.isMobile(context) ? 18 : 20,
fontSize: ResponsiveLayout.isMobile(context)
? 18
: 20,
fontWeight: FontWeight.w600,
color: Colors.white
color: Colors.white,
),
),
),
),
),
if (!ResponsiveLayout.isMobile(context) &&
!enteredEmailOrMobile) ...[
SizedBox(height: 10),
Container(
child: Text(
'OR',
style: TextStyle(
fontSize: ResponsiveLayout.isMobile(context) ? 14 : 18,
fontWeight: FontWeight.w600,
color: Colors.white,
),
),
),
SizedBox(height: 10),
SizedBox(
width: 400,
child: SizedBox(
width: double.infinity,
height: 50,
child: ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: Color(0xFF436462),
padding: const EdgeInsets.symmetric(vertical: 16),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8),
),
),
onPressed: () {
sendMobileOrEmailVerify('staff');
setState(() {
clickedButtonName = 'staff';
});
},
child: Text(
'Login as Staff',
style: TextStyle(
fontSize: ResponsiveLayout.isMobile(context)
? 18
: 20,
fontWeight: FontWeight.w600,
color: Colors.white,
),
),
),
),
),
],
// if (enteredEmailOrMobile) ...[
// Container(
// child: Text(
// 'OTP',
// style: TextStyle(
// fontSize: ResponsiveLayout.isMobile(context) ? 14 : 18,
// fontWeight: FontWeight.w600,
// color: Colors.white,
// ),
// ),
// ),
// Container(
// child: Pinput(
// length: 6,
// defaultPinTheme: defaultPinTheme,
// separatorBuilder: (index) => const SizedBox(width: 8),
// showCursor: true,
// controller: _otpController,
// // validator: _validatePin,
// errorPinTheme: defaultPinTheme.copyBorderWith(
// border: Border.all(color: Colors.redAccent),
// ),
// hapticFeedbackType: HapticFeedbackType.lightImpact,
// onCompleted: (pin) {
// debugPrint('onCompleted: $pin');
// },
// onChanged: (value) {
// debugPrint('onChanged: $value');
// },
// cursor: Column(
// mainAxisAlignment: MainAxisAlignment.end,
// children: [
// Container(
// margin: const EdgeInsets.only(bottom: 9),
// width: 22,
// height: 1,
// color: focusedBorderColor,
// ),
// ],
// ),
// focusedPinTheme: defaultPinTheme.copyWith(
// decoration: defaultPinTheme.decoration!.copyWith(
// borderRadius: BorderRadius.circular(8),
// border: Border.all(color: focusedBorderColor),
// ),
// ),
// submittedPinTheme: defaultPinTheme.copyWith(
// decoration: defaultPinTheme.decoration!.copyWith(
// color: fillColor,
// borderRadius: BorderRadius.circular(19),
// border: Border.all(color: focusedBorderColor),
// ),
// ),
// ),
// ),
// const SizedBox(height: 20),
// SizedBox(
// width: 400,
// child: SizedBox(
// width: double.infinity,
// height: 50,
// child: ElevatedButton(
// style: ElevatedButton.styleFrom(
// backgroundColor: Color(0xFF436462),
// padding: const EdgeInsets.symmetric(vertical: 16),
// shape: RoundedRectangleBorder(
// borderRadius: BorderRadius.circular(8),
// ),
// ),
// onPressed: () {
// // sendMobileOrEmailVerify('staff');
// },
// child: Text(
// 'Continue',
// style: TextStyle(
// fontSize: ResponsiveLayout.isMobile(context)
// ? 18
// : 20,
// fontWeight: FontWeight.w600,
// color: Colors.white,
// ),
// ),
// ),
// ),
// ),
// ],
AnimatedSwitcher(
duration: const Duration(milliseconds: 1000), // animation speed
switchInCurve: Curves.easeInOutCirc,
switchOutCurve: Curves.easeOutCirc,
child: enteredEmailOrMobile
? Column(
key: const ValueKey('otp_block'),
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
child: Text(
'OTP',
style: TextStyle(
fontSize: ResponsiveLayout.isMobile(context) ? 14 : 18,
fontWeight: FontWeight.w600,
color: Colors.white,
),
),
),
const SizedBox(height: 10),
Container(
child: Pinput(
length: 6,
defaultPinTheme: defaultPinTheme,
separatorBuilder: (index) => const SizedBox(width: 8),
showCursor: true,
controller: _otpController,
errorPinTheme: defaultPinTheme.copyBorderWith(
border: Border.all(color: Colors.redAccent),
),
hapticFeedbackType: HapticFeedbackType.lightImpact,
onCompleted: (pin) => debugPrint('onCompleted: $pin'),
onChanged: (value) => debugPrint('onChanged: $value'),
cursor: Column(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Container(
margin: const EdgeInsets.only(bottom: 9),
width: 22,
height: 1,
color: focusedBorderColor,
),
],
),
focusedPinTheme: defaultPinTheme.copyWith(
decoration: defaultPinTheme.decoration!.copyWith(
borderRadius: BorderRadius.circular(8),
border: Border.all(color: focusedBorderColor),
),
),
submittedPinTheme: defaultPinTheme.copyWith(
decoration: defaultPinTheme.decoration!.copyWith(
color: fillColor,
borderRadius: BorderRadius.circular(19),
border: Border.all(color: focusedBorderColor),
),
),
),
),
const SizedBox(height: 20),
SizedBox(
width: 400,
child: ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xFF436462),
padding: const EdgeInsets.symmetric(vertical: 16),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8),
),
),
onPressed: () {
if(switcherStatus == 1){
verifyFirebaseMobileOTP();
} else{
verifyMobileOrMailOTP(_otpController.text);
}
},
child: Text(
'Continue',
style: TextStyle(
fontSize: ResponsiveLayout.isMobile(context) ? 18 : 20,
fontWeight: FontWeight.w600,
color: Colors.white,
),
),
),
),
],
)
: const SizedBox.shrink(), // Empty widget when false
),
SizedBox(height: 20),
],
),
),
@ -673,15 +1079,23 @@ class _LoginScreenState extends State<LoginScreen> {
setState(() {
selectedIndex = index + 1;
if (selectedIndex == 2) {
stausVal = 0;
switcherStatus = 0;
_PhoneNumberController.text = '';
enteredEmailOrMobile = false;
} else {
stausVal = 1;
switcherStatus = 1;
_emailController.text = '';
enteredEmailOrMobile = false;
}
});
},
child: Container(
padding: EdgeInsets.only(
top: 6.5, bottom: 6.0, left: 40.0, right: 40.0),
top: 6.5,
bottom: 6.0,
left: 40.0,
right: 40.0,
),
decoration: BoxDecoration(
color: isSelected ? const Color(0xFF436462) : Colors.transparent,
boxShadow: isSelected
@ -698,17 +1112,19 @@ class _LoginScreenState extends State<LoginScreen> {
: [],
borderRadius: BorderRadius.circular(16),
),
child: Text(title,
child: Text(
title,
style: GoogleFonts.poppins(
fontSize: 12,
color: isSelected ? Colors.white : Colors.black,
fontWeight: FontWeight.w500,
))),
),
),
),
);
}
}
//
// @override
// Widget build(BuildContext context) {
@ -815,4 +1231,3 @@ class _LoginScreenState extends State<LoginScreen> {
// ),
// );
// }

View File

@ -7,7 +7,7 @@ project(runner LANGUAGES CXX)
set(BINARY_NAME "nhance_partner")
# The unique GTK application identifier for this application. See:
# https://wiki.gnome.org/HowDoI/ChooseApplicationID
set(APPLICATION_ID "com.nhancepartner.nhance_partner")
set(APPLICATION_ID "nh.ind.nhance.partner")
# Explicitly opt in to modern CMake behaviors to avoid warnings with recent
# versions of CMake.

View File

@ -7,9 +7,13 @@
#include "generated_plugin_registrant.h"
#include <flutter_secure_storage_linux/flutter_secure_storage_linux_plugin.h>
#include <url_launcher_linux/url_launcher_plugin.h>
void fl_register_plugins(FlPluginRegistry* registry) {
g_autoptr(FlPluginRegistrar) flutter_secure_storage_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStorageLinuxPlugin");
flutter_secure_storage_linux_plugin_register_with_registrar(flutter_secure_storage_linux_registrar);
g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
}

View File

@ -4,6 +4,7 @@
list(APPEND FLUTTER_PLUGIN_LIST
flutter_secure_storage_linux
url_launcher_linux
)
list(APPEND FLUTTER_FFI_PLUGIN_LIST

View File

@ -6,13 +6,29 @@ import FlutterMacOS
import Foundation
import connectivity_plus
import firebase_app_check
import firebase_auth
import firebase_core
import firebase_messaging
import flutter_secure_storage_macos
import google_sign_in_ios
import local_auth_darwin
import package_info_plus
import path_provider_foundation
import shared_preferences_foundation
import url_launcher_macos
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
ConnectivityPlusPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlusPlugin"))
FLTFirebaseAppCheckPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseAppCheckPlugin"))
FLTFirebaseAuthPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseAuthPlugin"))
FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin"))
FLTFirebaseMessagingPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseMessagingPlugin"))
FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin"))
FLTGoogleSignInPlugin.register(with: registry.registrar(forPlugin: "FLTGoogleSignInPlugin"))
LocalAuthPlugin.register(with: registry.registrar(forPlugin: "LocalAuthPlugin"))
FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin"))
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
}

42
macos/Podfile.lock Normal file
View File

@ -0,0 +1,42 @@
PODS:
- connectivity_plus (0.0.1):
- FlutterMacOS
- flutter_secure_storage_macos (6.1.3):
- FlutterMacOS
- FlutterMacOS (1.0.0)
- path_provider_foundation (0.0.1):
- Flutter
- FlutterMacOS
- shared_preferences_foundation (0.0.1):
- Flutter
- FlutterMacOS
DEPENDENCIES:
- connectivity_plus (from `Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos`)
- flutter_secure_storage_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos`)
- FlutterMacOS (from `Flutter/ephemeral`)
- path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`)
- shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`)
EXTERNAL SOURCES:
connectivity_plus:
:path: Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos
flutter_secure_storage_macos:
:path: Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos
FlutterMacOS:
:path: Flutter/ephemeral
path_provider_foundation:
:path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin
shared_preferences_foundation:
:path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin
SPEC CHECKSUMS:
connectivity_plus: 4adf20a405e25b42b9c9f87feff8f4b6fde18a4e
flutter_secure_storage_macos: 7f45e30f838cf2659862a4e4e3ee1c347c2b3b54
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
PODFILE CHECKSUM: 7eb978b976557c8c1cd717d8185ec483fd090a82
COCOAPODS: 1.16.2

View File

@ -27,6 +27,8 @@
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
9308597303DF1B04244295F4 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9BE59D053B397DC8D353D458 /* Pods_Runner.framework */; };
D2DC06407107C377CA74E52D /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB4B3B1FFD174F657C624EE9 /* Pods_RunnerTests.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@ -60,11 +62,12 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
1F5EC80086D41DB13DE8AA2C /* 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 = "<group>"; };
331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; };
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; };
33CC10ED2044A3C60003C045 /* nhance_partner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "nhance_partner.app"; sourceTree = BUILT_PRODUCTS_DIR; };
33CC10ED2044A3C60003C045 /* nhance_partner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = nhance_partner.app; sourceTree = BUILT_PRODUCTS_DIR; };
33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = "<group>"; };
33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
@ -76,8 +79,15 @@
33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = "<group>"; };
33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; };
33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; };
61355EE29958A1537393708D /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = "<group>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; };
7C47C84F488EEAEB899FA68F /* 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 = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; };
9BE59D053B397DC8D353D458 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
AB4B3B1FFD174F657C624EE9 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
B891A1E3FAAF9065F875EB0E /* 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 = "<group>"; };
E749496A8906BDDF63673C7A /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = "<group>"; };
F94040A7892DC29E3BAEC703 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -85,6 +95,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D2DC06407107C377CA74E52D /* Pods_RunnerTests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -92,6 +103,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
9308597303DF1B04244295F4 /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -125,6 +137,7 @@
331C80D6294CF71000263BE5 /* RunnerTests */,
33CC10EE2044A3C60003C045 /* Products */,
D73912EC22F37F3D000D13A0 /* Frameworks */,
EC0B6226FE691A3631E7AB19 /* Pods */,
);
sourceTree = "<group>";
};
@ -175,10 +188,26 @@
D73912EC22F37F3D000D13A0 /* Frameworks */ = {
isa = PBXGroup;
children = (
9BE59D053B397DC8D353D458 /* Pods_Runner.framework */,
AB4B3B1FFD174F657C624EE9 /* Pods_RunnerTests.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
EC0B6226FE691A3631E7AB19 /* Pods */ = {
isa = PBXGroup;
children = (
B891A1E3FAAF9065F875EB0E /* Pods-Runner.debug.xcconfig */,
1F5EC80086D41DB13DE8AA2C /* Pods-Runner.release.xcconfig */,
7C47C84F488EEAEB899FA68F /* Pods-Runner.profile.xcconfig */,
F94040A7892DC29E3BAEC703 /* Pods-RunnerTests.debug.xcconfig */,
E749496A8906BDDF63673C7A /* Pods-RunnerTests.release.xcconfig */,
61355EE29958A1537393708D /* Pods-RunnerTests.profile.xcconfig */,
);
name = Pods;
path = Pods;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@ -186,6 +215,7 @@
isa = PBXNativeTarget;
buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
buildPhases = (
E94A1CE8DCEF40365836C7DF /* [CP] Check Pods Manifest.lock */,
331C80D1294CF70F00263BE5 /* Sources */,
331C80D2294CF70F00263BE5 /* Frameworks */,
331C80D3294CF70F00263BE5 /* Resources */,
@ -204,11 +234,13 @@
isa = PBXNativeTarget;
buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
EBF21CEB34108A137B65A532 /* [CP] Check Pods Manifest.lock */,
33CC10E92044A3C60003C045 /* Sources */,
33CC10EA2044A3C60003C045 /* Frameworks */,
33CC10EB2044A3C60003C045 /* Resources */,
33CC110E2044A8840003C045 /* Bundle Framework */,
3399D490228B24CF009A79C7 /* ShellScript */,
67721E8F298A2F647E244CBA /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
@ -329,6 +361,67 @@
shellPath = /bin/sh;
shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire";
};
67721E8F298A2F647E244CBA /* [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;
};
E94A1CE8DCEF40365836C7DF /* [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-RunnerTests-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;
};
EBF21CEB34108A137B65A532 /* [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;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@ -380,6 +473,7 @@
/* Begin XCBuildConfiguration section */
331C80DB294CF71000263BE5 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = F94040A7892DC29E3BAEC703 /* Pods-RunnerTests.debug.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 1;
@ -394,6 +488,7 @@
};
331C80DC294CF71000263BE5 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = E749496A8906BDDF63673C7A /* Pods-RunnerTests.release.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 1;
@ -408,6 +503,7 @@
};
331C80DD294CF71000263BE5 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 61355EE29958A1537393708D /* Pods-RunnerTests.profile.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 1;

View File

@ -4,4 +4,7 @@
<FileRef
location = "group:Runner.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>

View File

@ -217,6 +217,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.7.11"
easy_loading_button:
dependency: "direct main"
description:
name: easy_loading_button
sha256: "6a8c339233e8cab22c0d4ab12a0194e622a98126e35e4bb797505055a8d29bd6"
url: "https://pub.dev"
source: hosted
version: "0.4.0"
equatable:
dependency: "direct main"
description:
@ -375,13 +383,13 @@ packages:
source: hosted
version: "0.21.3+1"
flutter_lints:
dependency: "direct dev"
dependency: "direct main"
description:
name: flutter_lints
sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1"
sha256: "3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1"
url: "https://pub.dev"
source: hosted
version: "5.0.0"
version: "6.0.0"
flutter_plugin_android_lifecycle:
dependency: transitive
description:
@ -636,34 +644,34 @@ packages:
dependency: transitive
description:
name: leak_tracker
sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0"
sha256: "8dcda04c3fc16c14f48a7bb586d4be1f0d1572731b6d81d51772ef47c02081e0"
url: "https://pub.dev"
source: hosted
version: "10.0.9"
version: "11.0.1"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
url: "https://pub.dev"
source: hosted
version: "3.0.9"
version: "3.0.10"
leak_tracker_testing:
dependency: transitive
description:
name: leak_tracker_testing
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
url: "https://pub.dev"
source: hosted
version: "3.0.1"
version: "3.0.2"
lints:
dependency: transitive
description:
name: lints
sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7
sha256: a5e2b223cb7c9c8efdc663ef484fdd95bb243bff242ef5b13e26883547fce9a0
url: "https://pub.dev"
source: hosted
version: "5.1.1"
version: "6.0.0"
local_auth:
dependency: "direct main"
description:
@ -1073,10 +1081,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00"
url: "https://pub.dev"
source: hosted
version: "0.7.4"
version: "0.7.6"
timing:
dependency: transitive
description:
@ -1185,10 +1193,10 @@ packages:
dependency: transitive
description:
name: vector_math
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
url: "https://pub.dev"
source: hosted
version: "2.1.4"
version: "2.2.0"
vm_service:
dependency: transitive
description:

View File

@ -60,6 +60,8 @@ dependencies:
firebase_auth: ^6.0.2
firebase_app_check: ^0.4.0+1
package_info_plus: ^8.3.1
flutter_lints: ^6.0.0
easy_loading_button: ^0.4.0
dev_dependencies:
flutter_test:
@ -70,7 +72,6 @@ dev_dependencies:
# activated in the `analysis_options.yaml` file located at the root of your
# package. See that file for information about deactivating specific lint
# rules and activating additional ones.
flutter_lints: ^5.0.0
build_runner: ^2.6.0
json_serializable: ^6.7.1

View File

@ -34,5 +34,23 @@
</head>
<body>
<script src="flutter_bootstrap.js" async></script>
<script src="https://www.gstatic.com/firebasejs/10.7.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/10.7.0/firebase-auth.js"></script>
<script type="module">
// Import the functions you need from the SDKs you need
import { initializeApp } from "https://www.gstatic.com/firebasejs/10.12.4/firebase-app.js";
const firebaseConfig = {
apiKey: "AIzaSyC4yHbCX4mQu0jO81pJrDwxKLQlTQWofrc",
authDomain: "nhance-ee8d1.firebaseapp.com",
projectId: "nhance-ee8d1",
storageBucket: "nhance-ee8d1.firebasestorage.app",
messagingSenderId: "1084115316849",
appId: "1:1084115316849:web:09590c7abc870e436c6bd0"
};
// Initialize Firebase
const app = initializeApp(firebaseConfig);
</script>
</body>
</html>

View File

@ -7,11 +7,23 @@
#include "generated_plugin_registrant.h"
#include <connectivity_plus/connectivity_plus_windows_plugin.h>
#include <firebase_auth/firebase_auth_plugin_c_api.h>
#include <firebase_core/firebase_core_plugin_c_api.h>
#include <flutter_secure_storage_windows/flutter_secure_storage_windows_plugin.h>
#include <local_auth_windows/local_auth_plugin.h>
#include <url_launcher_windows/url_launcher_windows.h>
void RegisterPlugins(flutter::PluginRegistry* registry) {
ConnectivityPlusWindowsPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("ConnectivityPlusWindowsPlugin"));
FirebaseAuthPluginCApiRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FirebaseAuthPluginCApi"));
FirebaseCorePluginCApiRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FirebaseCorePluginCApi"));
FlutterSecureStorageWindowsPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin"));
LocalAuthPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("LocalAuthPlugin"));
UrlLauncherWindowsRegisterWithRegistrar(
registry->GetRegistrarForPlugin("UrlLauncherWindows"));
}

View File

@ -4,7 +4,11 @@
list(APPEND FLUTTER_PLUGIN_LIST
connectivity_plus
firebase_auth
firebase_core
flutter_secure_storage_windows
local_auth_windows
url_launcher_windows
)
list(APPEND FLUTTER_FFI_PLUGIN_LIST