diff --git a/.DS_Store b/.DS_Store index 80b924a..043969e 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/.dart_tool/package_config.json b/.dart_tool/package_config.json index 74633cc..c92f2d1 100644 --- a/.dart_tool/package_config.json +++ b/.dart_tool/package_config.json @@ -1118,7 +1118,7 @@ "languageVersion": "3.4" } ], - "generated": "2025-05-04T18:54:05.217340Z", + "generated": "2025-05-04T20:38:53.504097Z", "generator": "pub", "generatorVersion": "3.5.3", "flutterRoot": "file:///Users/apple/Documents/development/flutter", diff --git a/.flutter-plugins-dependencies b/.flutter-plugins-dependencies index e98e08e..a96c104 100644 --- a/.flutter-plugins-dependencies +++ b/.flutter-plugins-dependencies @@ -1 +1 @@ -{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"connectivity_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","native_build":true,"dependencies":[]},{"name":"firebase_core","path":"/Users/apple/.pub-cache/hosted/pub.dev/firebase_core-3.13.0/","native_build":true,"dependencies":[]},{"name":"firebase_messaging","path":"/Users/apple/.pub-cache/hosted/pub.dev/firebase_messaging-15.2.5/","native_build":true,"dependencies":["firebase_core"]},{"name":"flutter_inappwebview_ios","path":"/Users/apple/.pub-cache/hosted/pub.dev/flutter_inappwebview_ios-1.0.13/","native_build":true,"dependencies":[]},{"name":"flutter_local_notifications","path":"/Users/apple/.pub-cache/hosted/pub.dev/flutter_local_notifications-18.0.1/","native_build":true,"dependencies":[]},{"name":"fluttertoast","path":"/Users/apple/.pub-cache/hosted/pub.dev/fluttertoast-8.2.11/","native_build":true,"dependencies":[]},{"name":"geocoding_ios","path":"/Users/apple/.pub-cache/hosted/pub.dev/geocoding_ios-3.0.1/","native_build":true,"dependencies":[]},{"name":"geolocator_apple","path":"/Users/apple/.pub-cache/hosted/pub.dev/geolocator_apple-2.3.8+1/","native_build":true,"dependencies":[]},{"name":"google_maps_flutter_ios","path":"/Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.13.2/","native_build":true,"dependencies":[]},{"name":"image_picker_ios","path":"/Users/apple/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/","native_build":true,"dependencies":[]},{"name":"package_info_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/apple/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"permission_handler_apple","path":"/Users/apple/.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/apple/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_ios","path":"/Users/apple/.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.2/","native_build":true,"dependencies":[]}],"android":[{"name":"connectivity_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","native_build":true,"dependencies":[]},{"name":"firebase_core","path":"/Users/apple/.pub-cache/hosted/pub.dev/firebase_core-3.13.0/","native_build":true,"dependencies":[]},{"name":"firebase_messaging","path":"/Users/apple/.pub-cache/hosted/pub.dev/firebase_messaging-15.2.5/","native_build":true,"dependencies":["firebase_core"]},{"name":"flutter_inappwebview_android","path":"/Users/apple/.pub-cache/hosted/pub.dev/flutter_inappwebview_android-1.0.13/","native_build":true,"dependencies":[]},{"name":"flutter_local_notifications","path":"/Users/apple/.pub-cache/hosted/pub.dev/flutter_local_notifications-18.0.1/","native_build":true,"dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"/Users/apple/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.22/","native_build":true,"dependencies":[]},{"name":"fluttertoast","path":"/Users/apple/.pub-cache/hosted/pub.dev/fluttertoast-8.2.11/","native_build":true,"dependencies":[]},{"name":"geocoding_android","path":"/Users/apple/.pub-cache/hosted/pub.dev/geocoding_android-3.3.1/","native_build":true,"dependencies":[]},{"name":"geolocator_android","path":"/Users/apple/.pub-cache/hosted/pub.dev/geolocator_android-4.6.1/","native_build":true,"dependencies":[]},{"name":"google_api_headers","path":"/Users/apple/.pub-cache/hosted/pub.dev/google_api_headers-1.6.0/","native_build":true,"dependencies":["package_info_plus"]},{"name":"google_maps_flutter_android","path":"/Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_android-2.14.7/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_android","path":"/Users/apple/.pub-cache/hosted/pub.dev/image_picker_android-0.8.12+12/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"package_info_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","native_build":true,"dependencies":[]},{"name":"path_provider_android","path":"/Users/apple/.pub-cache/hosted/pub.dev/path_provider_android-2.2.10/","native_build":true,"dependencies":[]},{"name":"permission_handler_android","path":"/Users/apple/.pub-cache/hosted/pub.dev/permission_handler_android-12.0.13/","native_build":true,"dependencies":[]},{"name":"shared_preferences_android","path":"/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_android-2.3.2/","native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/apple/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1/","native_build":true,"dependencies":[]},{"name":"url_launcher_android","path":"/Users/apple/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.9/","native_build":true,"dependencies":[]}],"macos":[{"name":"connectivity_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","native_build":true,"dependencies":[]},{"name":"file_selector_macos","path":"/Users/apple/.pub-cache/hosted/pub.dev/file_selector_macos-0.9.4+2/","native_build":true,"dependencies":[]},{"name":"firebase_core","path":"/Users/apple/.pub-cache/hosted/pub.dev/firebase_core-3.13.0/","native_build":true,"dependencies":[]},{"name":"firebase_messaging","path":"/Users/apple/.pub-cache/hosted/pub.dev/firebase_messaging-15.2.5/","native_build":true,"dependencies":["firebase_core"]},{"name":"flutter_inappwebview_macos","path":"/Users/apple/.pub-cache/hosted/pub.dev/flutter_inappwebview_macos-1.0.11/","native_build":true,"dependencies":[]},{"name":"flutter_local_notifications","path":"/Users/apple/.pub-cache/hosted/pub.dev/flutter_local_notifications-18.0.1/","native_build":true,"dependencies":[]},{"name":"geolocator_apple","path":"/Users/apple/.pub-cache/hosted/pub.dev/geolocator_apple-2.3.8+1/","native_build":true,"dependencies":[]},{"name":"image_picker_macos","path":"/Users/apple/.pub-cache/hosted/pub.dev/image_picker_macos-0.2.1+2/","native_build":false,"dependencies":["file_selector_macos"]},{"name":"package_info_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/apple/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/apple/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_macos","path":"/Users/apple/.pub-cache/hosted/pub.dev/url_launcher_macos-3.2.2/","native_build":true,"dependencies":[]}],"linux":[{"name":"connectivity_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","native_build":false,"dependencies":[]},{"name":"file_selector_linux","path":"/Users/apple/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.3+2/","native_build":true,"dependencies":[]},{"name":"flutter_local_notifications_linux","path":"/Users/apple/.pub-cache/hosted/pub.dev/flutter_local_notifications_linux-5.0.0/","native_build":false,"dependencies":[]},{"name":"image_picker_linux","path":"/Users/apple/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1+1/","native_build":false,"dependencies":["file_selector_linux"]},{"name":"package_info_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","native_build":false,"dependencies":[]},{"name":"path_provider_linux","path":"/Users/apple/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[]},{"name":"shared_preferences_linux","path":"/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1/","native_build":false,"dependencies":["path_provider_linux"]},{"name":"url_launcher_linux","path":"/Users/apple/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1/","native_build":true,"dependencies":[]}],"windows":[{"name":"connectivity_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","native_build":true,"dependencies":[]},{"name":"file_selector_windows","path":"/Users/apple/.pub-cache/hosted/pub.dev/file_selector_windows-0.9.3+3/","native_build":true,"dependencies":[]},{"name":"firebase_core","path":"/Users/apple/.pub-cache/hosted/pub.dev/firebase_core-3.13.0/","native_build":true,"dependencies":[]},{"name":"geolocator_windows","path":"/Users/apple/.pub-cache/hosted/pub.dev/geolocator_windows-0.2.3/","native_build":true,"dependencies":[]},{"name":"image_picker_windows","path":"/Users/apple/.pub-cache/hosted/pub.dev/image_picker_windows-0.2.1+1/","native_build":false,"dependencies":["file_selector_windows"]},{"name":"package_info_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","native_build":false,"dependencies":[]},{"name":"path_provider_windows","path":"/Users/apple/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[]},{"name":"permission_handler_windows","path":"/Users/apple/.pub-cache/hosted/pub.dev/permission_handler_windows-0.2.1/","native_build":true,"dependencies":[]},{"name":"shared_preferences_windows","path":"/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/","native_build":false,"dependencies":["path_provider_windows"]},{"name":"url_launcher_windows","path":"/Users/apple/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4/","native_build":true,"dependencies":[]}],"web":[{"name":"connectivity_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","dependencies":[]},{"name":"firebase_core_web","path":"/Users/apple/.pub-cache/hosted/pub.dev/firebase_core_web-2.22.0/","dependencies":[]},{"name":"firebase_messaging_web","path":"/Users/apple/.pub-cache/hosted/pub.dev/firebase_messaging_web-3.10.5/","dependencies":["firebase_core_web"]},{"name":"flutter_inappwebview_web","path":"/Users/apple/.pub-cache/hosted/pub.dev/flutter_inappwebview_web-1.0.8/","dependencies":[]},{"name":"fluttertoast","path":"/Users/apple/.pub-cache/hosted/pub.dev/fluttertoast-8.2.11/","dependencies":[]},{"name":"geolocator_web","path":"/Users/apple/.pub-cache/hosted/pub.dev/geolocator_web-4.1.1/","dependencies":[]},{"name":"google_maps_flutter_web","path":"/Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_web-0.5.10/","dependencies":[]},{"name":"image_picker_for_web","path":"/Users/apple/.pub-cache/hosted/pub.dev/image_picker_for_web-3.0.6/","dependencies":[]},{"name":"package_info_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","dependencies":[]},{"name":"permission_handler_html","path":"/Users/apple/.pub-cache/hosted/pub.dev/permission_handler_html-0.1.3+5/","dependencies":[]},{"name":"shared_preferences_web","path":"/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.2/","dependencies":[]},{"name":"url_launcher_web","path":"/Users/apple/.pub-cache/hosted/pub.dev/url_launcher_web-2.3.3/","dependencies":[]}]},"dependencyGraph":[{"name":"connectivity_plus","dependencies":[]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"firebase_core","dependencies":["firebase_core_web"]},{"name":"firebase_core_web","dependencies":[]},{"name":"firebase_messaging","dependencies":["firebase_core","firebase_messaging_web"]},{"name":"firebase_messaging_web","dependencies":["firebase_core","firebase_core_web"]},{"name":"flutter_inappwebview","dependencies":["flutter_inappwebview_android","flutter_inappwebview_ios","flutter_inappwebview_macos","flutter_inappwebview_web"]},{"name":"flutter_inappwebview_android","dependencies":[]},{"name":"flutter_inappwebview_ios","dependencies":[]},{"name":"flutter_inappwebview_macos","dependencies":[]},{"name":"flutter_inappwebview_web","dependencies":[]},{"name":"flutter_local_notifications","dependencies":["flutter_local_notifications_linux"]},{"name":"flutter_local_notifications_linux","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"fluttertoast","dependencies":[]},{"name":"geocoding","dependencies":["geocoding_android","geocoding_ios"]},{"name":"geocoding_android","dependencies":[]},{"name":"geocoding_ios","dependencies":[]},{"name":"geolocator","dependencies":["geolocator_android","geolocator_apple","geolocator_web","geolocator_windows"]},{"name":"geolocator_android","dependencies":[]},{"name":"geolocator_apple","dependencies":[]},{"name":"geolocator_web","dependencies":[]},{"name":"geolocator_windows","dependencies":[]},{"name":"google_api_headers","dependencies":["package_info_plus"]},{"name":"google_maps_flutter","dependencies":["google_maps_flutter_android","google_maps_flutter_ios","google_maps_flutter_web"]},{"name":"google_maps_flutter_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"google_maps_flutter_ios","dependencies":[]},{"name":"google_maps_flutter_web","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]},{"name":"package_info_plus","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"permission_handler","dependencies":["permission_handler_android","permission_handler_apple","permission_handler_html","permission_handler_windows"]},{"name":"permission_handler_android","dependencies":[]},{"name":"permission_handler_apple","dependencies":[]},{"name":"permission_handler_html","dependencies":[]},{"name":"permission_handler_windows","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]},{"name":"sqflite","dependencies":[]},{"name":"url_launcher","dependencies":["url_launcher_android","url_launcher_ios","url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_android","dependencies":[]},{"name":"url_launcher_ios","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]}],"date_created":"2025-05-05 00:24:05.355091","version":"3.24.3","swift_package_manager_enabled":false} \ No newline at end of file +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"connectivity_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","native_build":true,"dependencies":[]},{"name":"firebase_core","path":"/Users/apple/.pub-cache/hosted/pub.dev/firebase_core-3.13.0/","native_build":true,"dependencies":[]},{"name":"firebase_messaging","path":"/Users/apple/.pub-cache/hosted/pub.dev/firebase_messaging-15.2.5/","native_build":true,"dependencies":["firebase_core"]},{"name":"flutter_inappwebview_ios","path":"/Users/apple/.pub-cache/hosted/pub.dev/flutter_inappwebview_ios-1.0.13/","native_build":true,"dependencies":[]},{"name":"flutter_local_notifications","path":"/Users/apple/.pub-cache/hosted/pub.dev/flutter_local_notifications-18.0.1/","native_build":true,"dependencies":[]},{"name":"fluttertoast","path":"/Users/apple/.pub-cache/hosted/pub.dev/fluttertoast-8.2.11/","native_build":true,"dependencies":[]},{"name":"geocoding_ios","path":"/Users/apple/.pub-cache/hosted/pub.dev/geocoding_ios-3.0.1/","native_build":true,"dependencies":[]},{"name":"geolocator_apple","path":"/Users/apple/.pub-cache/hosted/pub.dev/geolocator_apple-2.3.8+1/","native_build":true,"dependencies":[]},{"name":"google_maps_flutter_ios","path":"/Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.13.2/","native_build":true,"dependencies":[]},{"name":"image_picker_ios","path":"/Users/apple/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/","native_build":true,"dependencies":[]},{"name":"package_info_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/apple/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"permission_handler_apple","path":"/Users/apple/.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/apple/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_ios","path":"/Users/apple/.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.2/","native_build":true,"dependencies":[]}],"android":[{"name":"connectivity_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","native_build":true,"dependencies":[]},{"name":"firebase_core","path":"/Users/apple/.pub-cache/hosted/pub.dev/firebase_core-3.13.0/","native_build":true,"dependencies":[]},{"name":"firebase_messaging","path":"/Users/apple/.pub-cache/hosted/pub.dev/firebase_messaging-15.2.5/","native_build":true,"dependencies":["firebase_core"]},{"name":"flutter_inappwebview_android","path":"/Users/apple/.pub-cache/hosted/pub.dev/flutter_inappwebview_android-1.0.13/","native_build":true,"dependencies":[]},{"name":"flutter_local_notifications","path":"/Users/apple/.pub-cache/hosted/pub.dev/flutter_local_notifications-18.0.1/","native_build":true,"dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"/Users/apple/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.22/","native_build":true,"dependencies":[]},{"name":"fluttertoast","path":"/Users/apple/.pub-cache/hosted/pub.dev/fluttertoast-8.2.11/","native_build":true,"dependencies":[]},{"name":"geocoding_android","path":"/Users/apple/.pub-cache/hosted/pub.dev/geocoding_android-3.3.1/","native_build":true,"dependencies":[]},{"name":"geolocator_android","path":"/Users/apple/.pub-cache/hosted/pub.dev/geolocator_android-4.6.1/","native_build":true,"dependencies":[]},{"name":"google_api_headers","path":"/Users/apple/.pub-cache/hosted/pub.dev/google_api_headers-1.6.0/","native_build":true,"dependencies":["package_info_plus"]},{"name":"google_maps_flutter_android","path":"/Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_android-2.14.7/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_android","path":"/Users/apple/.pub-cache/hosted/pub.dev/image_picker_android-0.8.12+12/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"package_info_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","native_build":true,"dependencies":[]},{"name":"path_provider_android","path":"/Users/apple/.pub-cache/hosted/pub.dev/path_provider_android-2.2.10/","native_build":true,"dependencies":[]},{"name":"permission_handler_android","path":"/Users/apple/.pub-cache/hosted/pub.dev/permission_handler_android-12.0.13/","native_build":true,"dependencies":[]},{"name":"shared_preferences_android","path":"/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_android-2.3.2/","native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/apple/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1/","native_build":true,"dependencies":[]},{"name":"url_launcher_android","path":"/Users/apple/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.9/","native_build":true,"dependencies":[]}],"macos":[{"name":"connectivity_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","native_build":true,"dependencies":[]},{"name":"file_selector_macos","path":"/Users/apple/.pub-cache/hosted/pub.dev/file_selector_macos-0.9.4+2/","native_build":true,"dependencies":[]},{"name":"firebase_core","path":"/Users/apple/.pub-cache/hosted/pub.dev/firebase_core-3.13.0/","native_build":true,"dependencies":[]},{"name":"firebase_messaging","path":"/Users/apple/.pub-cache/hosted/pub.dev/firebase_messaging-15.2.5/","native_build":true,"dependencies":["firebase_core"]},{"name":"flutter_inappwebview_macos","path":"/Users/apple/.pub-cache/hosted/pub.dev/flutter_inappwebview_macos-1.0.11/","native_build":true,"dependencies":[]},{"name":"flutter_local_notifications","path":"/Users/apple/.pub-cache/hosted/pub.dev/flutter_local_notifications-18.0.1/","native_build":true,"dependencies":[]},{"name":"geolocator_apple","path":"/Users/apple/.pub-cache/hosted/pub.dev/geolocator_apple-2.3.8+1/","native_build":true,"dependencies":[]},{"name":"image_picker_macos","path":"/Users/apple/.pub-cache/hosted/pub.dev/image_picker_macos-0.2.1+2/","native_build":false,"dependencies":["file_selector_macos"]},{"name":"package_info_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/apple/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/apple/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_macos","path":"/Users/apple/.pub-cache/hosted/pub.dev/url_launcher_macos-3.2.2/","native_build":true,"dependencies":[]}],"linux":[{"name":"connectivity_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","native_build":false,"dependencies":[]},{"name":"file_selector_linux","path":"/Users/apple/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.3+2/","native_build":true,"dependencies":[]},{"name":"flutter_local_notifications_linux","path":"/Users/apple/.pub-cache/hosted/pub.dev/flutter_local_notifications_linux-5.0.0/","native_build":false,"dependencies":[]},{"name":"image_picker_linux","path":"/Users/apple/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1+1/","native_build":false,"dependencies":["file_selector_linux"]},{"name":"package_info_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","native_build":false,"dependencies":[]},{"name":"path_provider_linux","path":"/Users/apple/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[]},{"name":"shared_preferences_linux","path":"/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1/","native_build":false,"dependencies":["path_provider_linux"]},{"name":"url_launcher_linux","path":"/Users/apple/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1/","native_build":true,"dependencies":[]}],"windows":[{"name":"connectivity_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","native_build":true,"dependencies":[]},{"name":"file_selector_windows","path":"/Users/apple/.pub-cache/hosted/pub.dev/file_selector_windows-0.9.3+3/","native_build":true,"dependencies":[]},{"name":"firebase_core","path":"/Users/apple/.pub-cache/hosted/pub.dev/firebase_core-3.13.0/","native_build":true,"dependencies":[]},{"name":"geolocator_windows","path":"/Users/apple/.pub-cache/hosted/pub.dev/geolocator_windows-0.2.3/","native_build":true,"dependencies":[]},{"name":"image_picker_windows","path":"/Users/apple/.pub-cache/hosted/pub.dev/image_picker_windows-0.2.1+1/","native_build":false,"dependencies":["file_selector_windows"]},{"name":"package_info_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","native_build":false,"dependencies":[]},{"name":"path_provider_windows","path":"/Users/apple/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[]},{"name":"permission_handler_windows","path":"/Users/apple/.pub-cache/hosted/pub.dev/permission_handler_windows-0.2.1/","native_build":true,"dependencies":[]},{"name":"shared_preferences_windows","path":"/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/","native_build":false,"dependencies":["path_provider_windows"]},{"name":"url_launcher_windows","path":"/Users/apple/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4/","native_build":true,"dependencies":[]}],"web":[{"name":"connectivity_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","dependencies":[]},{"name":"firebase_core_web","path":"/Users/apple/.pub-cache/hosted/pub.dev/firebase_core_web-2.22.0/","dependencies":[]},{"name":"firebase_messaging_web","path":"/Users/apple/.pub-cache/hosted/pub.dev/firebase_messaging_web-3.10.5/","dependencies":["firebase_core_web"]},{"name":"flutter_inappwebview_web","path":"/Users/apple/.pub-cache/hosted/pub.dev/flutter_inappwebview_web-1.0.8/","dependencies":[]},{"name":"fluttertoast","path":"/Users/apple/.pub-cache/hosted/pub.dev/fluttertoast-8.2.11/","dependencies":[]},{"name":"geolocator_web","path":"/Users/apple/.pub-cache/hosted/pub.dev/geolocator_web-4.1.1/","dependencies":[]},{"name":"google_maps_flutter_web","path":"/Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_web-0.5.10/","dependencies":[]},{"name":"image_picker_for_web","path":"/Users/apple/.pub-cache/hosted/pub.dev/image_picker_for_web-3.0.6/","dependencies":[]},{"name":"package_info_plus","path":"/Users/apple/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","dependencies":[]},{"name":"permission_handler_html","path":"/Users/apple/.pub-cache/hosted/pub.dev/permission_handler_html-0.1.3+5/","dependencies":[]},{"name":"shared_preferences_web","path":"/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.2/","dependencies":[]},{"name":"url_launcher_web","path":"/Users/apple/.pub-cache/hosted/pub.dev/url_launcher_web-2.3.3/","dependencies":[]}]},"dependencyGraph":[{"name":"connectivity_plus","dependencies":[]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"firebase_core","dependencies":["firebase_core_web"]},{"name":"firebase_core_web","dependencies":[]},{"name":"firebase_messaging","dependencies":["firebase_core","firebase_messaging_web"]},{"name":"firebase_messaging_web","dependencies":["firebase_core","firebase_core_web"]},{"name":"flutter_inappwebview","dependencies":["flutter_inappwebview_android","flutter_inappwebview_ios","flutter_inappwebview_macos","flutter_inappwebview_web"]},{"name":"flutter_inappwebview_android","dependencies":[]},{"name":"flutter_inappwebview_ios","dependencies":[]},{"name":"flutter_inappwebview_macos","dependencies":[]},{"name":"flutter_inappwebview_web","dependencies":[]},{"name":"flutter_local_notifications","dependencies":["flutter_local_notifications_linux"]},{"name":"flutter_local_notifications_linux","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"fluttertoast","dependencies":[]},{"name":"geocoding","dependencies":["geocoding_android","geocoding_ios"]},{"name":"geocoding_android","dependencies":[]},{"name":"geocoding_ios","dependencies":[]},{"name":"geolocator","dependencies":["geolocator_android","geolocator_apple","geolocator_web","geolocator_windows"]},{"name":"geolocator_android","dependencies":[]},{"name":"geolocator_apple","dependencies":[]},{"name":"geolocator_web","dependencies":[]},{"name":"geolocator_windows","dependencies":[]},{"name":"google_api_headers","dependencies":["package_info_plus"]},{"name":"google_maps_flutter","dependencies":["google_maps_flutter_android","google_maps_flutter_ios","google_maps_flutter_web"]},{"name":"google_maps_flutter_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"google_maps_flutter_ios","dependencies":[]},{"name":"google_maps_flutter_web","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]},{"name":"package_info_plus","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"permission_handler","dependencies":["permission_handler_android","permission_handler_apple","permission_handler_html","permission_handler_windows"]},{"name":"permission_handler_android","dependencies":[]},{"name":"permission_handler_apple","dependencies":[]},{"name":"permission_handler_html","dependencies":[]},{"name":"permission_handler_windows","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]},{"name":"sqflite","dependencies":[]},{"name":"url_launcher","dependencies":["url_launcher_android","url_launcher_ios","url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_android","dependencies":[]},{"name":"url_launcher_ios","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]}],"date_created":"2025-05-05 02:08:53.696220","version":"3.24.3","swift_package_manager_enabled":false} \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index c04152b..da8f8e9 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -23,7 +23,8 @@ import 'package:provider/provider.dart'; @pragma('vm:entry-point') -Future _firebaseMessagingBackgroundHandler(RemoteMessage message) async { +Future _firebaseMessagingBackgroundHandler(RemoteMessage message) async +{ await Firebase.initializeApp(); print("💬 Background Message Received: ${message.notification?.title}"); if (message.notification != null) { diff --git a/lib/src/logic/provider/home_provider.dart b/lib/src/logic/provider/home_provider.dart index 5df9ecc..7193aca 100644 --- a/lib/src/logic/provider/home_provider.dart +++ b/lib/src/logic/provider/home_provider.dart @@ -22,7 +22,6 @@ import 'package:grocery_app/utils/extensions/extensions.dart'; import 'package:http/http.dart' as http; - class ProductProvider extends ChangeNotifier { final _homeRepo = getIt(); @@ -109,8 +108,7 @@ class ProductProvider extends ChangeNotifier { ); } - - Future updateDeviceToken(BuildContext context) async { + Future updateDeviceToken(BuildContext context) async { var fcm = await FirebaseMessaging.instance.getToken(); var data = {"deviceToken": fcm, "deviceTpe": "android"}; @@ -119,7 +117,6 @@ class ProductProvider extends ChangeNotifier { var result = await _homeRepo.updateDeviceToken(data, context); return result.fold( (error) { - return true; }, (response) { @@ -142,13 +139,23 @@ class ProductProvider extends ChangeNotifier { if (maxprice.isNotEmpty) { data = { + "page": 1, + "limit": 12, "minPrice": "${minPrice}", "maxPrice": maxprice, "search": search, - "sortBy": orderby + "sortBy": orderby, + "sortOrder": "asc" }; } else { - data = {"minPrice": "${minPrice}", "search": search, "sortBy": orderby}; + data = { + "page": 1, + "limit": 12, + "minPrice": "${minPrice}", + "search": search, + "sortBy": orderby, + "sortOrder": "asc" + }; } var result = await _homeRepo.getAllProduct(data, context, id); @@ -160,6 +167,8 @@ class ProductProvider extends ChangeNotifier { (response) { homeproducts = response.data!; + print("kdsjfjklghjdkf ${homeproducts.length}"); + isHomeLoadingg = false; notifyListeners(); }, diff --git a/lib/src/ui/bestdeal/bestdeal_screen.dart b/lib/src/ui/bestdeal/bestdeal_screen.dart index 8d25278..7e26b2c 100644 --- a/lib/src/ui/bestdeal/bestdeal_screen.dart +++ b/lib/src/ui/bestdeal/bestdeal_screen.dart @@ -373,7 +373,7 @@ class _BestDealScreenState extends State { Text( bestdealproduct.name ?? "", textAlign: TextAlign.left, - maxLines: 2, + maxLines: 1, overflow: TextOverflow.ellipsis, style: context.customMedium( APPCOLOR.balck1A1A1A, 16), diff --git a/lib/src/ui/cart/cartview_screen.dart b/lib/src/ui/cart/cartview_screen.dart index 98e3f6d..e6819af 100644 --- a/lib/src/ui/cart/cartview_screen.dart +++ b/lib/src/ui/cart/cartview_screen.dart @@ -30,7 +30,8 @@ class _MycartState extends State { @override void initState() { Future.microtask(() { - final addToCartProvider = Provider.of(context, listen: false); + final addToCartProvider = + Provider.of(context, listen: false); addToCartProvider.getItemCards(context); addToCartProvider.offerCoupon(context); addToCartProvider.getCurrentLocation(context); @@ -91,10 +92,10 @@ class _MycartState extends State { return const Center(child: Text('')); } else { return SizedBox( - height: MediaQuery.of(context).size.height * 0.28, + height: MediaQuery.of(context).size.height * 0.3, child: ListView.builder( - scrollDirection: Axis.horizontal, itemCount: provider.bestdeal.length, + scrollDirection: Axis.horizontal, itemBuilder: (context, index) { var bestdealproduct = provider.bestdeal[index]; double cardWidth = MediaQuery.of(context).size.width * 0.4; @@ -111,176 +112,151 @@ class _MycartState extends State { ); }, child: Padding( - padding: const EdgeInsets.only(right: 5, bottom: 5, top: 5), + padding: const EdgeInsets.all(8.0), child: Container( width: cardWidth, decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(15), - boxShadow: [ - BoxShadow( - color: Colors.grey.withOpacity(0.1), - blurRadius: 1, - offset: const Offset(5, 5), - ), - ], ), - child: Padding( - padding: const EdgeInsets.all(5), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Center( - child: Container( - height: MediaQuery.of(context).size.height * 0.12, - width: cardWidth * 0.9, - decoration: BoxDecoration( - color: APPCOLOR.bgGrey, - borderRadius: BorderRadius.circular(15), - ), - child: Stack( - alignment: Alignment.center, - children: [ - AppNetworkImage( - imageUrl: bestdealproduct - .productImages?.first?.url ?? - "", - backGroundColor: Colors.transparent, - radius: 10), - Positioned( - right: 1, - bottom: 0, - child: Container( - padding: EdgeInsets.symmetric( - horizontal: 10, vertical: 10), - decoration: BoxDecoration( - color: Colors.red, - borderRadius: BorderRadius.circular(5), - ), - child: Center( - child: Text( - "${calculateDiscountPercentage(double.parse(bestdealproduct!.basePrice), double.parse(bestdealproduct!.discountPrice))}% OFF", - style: TextStyle( - color: Colors.white, - fontSize: 15)), - ), - ), - ) - ], - ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Center( + child: Container( + height: MediaQuery.of(context).size.height * 0.17, + decoration: BoxDecoration( + color: APPCOLOR.bgGrey, + borderRadius: BorderRadius.circular(15), ), - ), - SizedBox( - height: MediaQuery.of(context).size.height * 0.01, - ), - Text( - bestdealproduct.name ?? "", - textAlign: TextAlign.left, - maxLines: 2, - overflow: TextOverflow.ellipsis, - style: - context.customMedium(APPCOLOR.balck1A1A1A, 14), - ), - SizedBox( - height: MediaQuery.of(context).size.height * 0.005, - ), - Text( - bestdealproduct.unit ?? "", - textAlign: TextAlign.left, - maxLines: 1, - overflow: TextOverflow.ellipsis, - style: context.customMedium( - Colors.grey.withOpacity(0.8), - 12, - ), - ), - SizedBox( - height: MediaQuery.of(context).size.height * 0.005, - ), - const Spacer(), - Row( - children: [ - Column( - children: [ - Text( - "₹${bestdealproduct.discountPrice ?? ""} ", - textAlign: TextAlign.left, - maxLines: 1, - overflow: TextOverflow.ellipsis, - style: context.customSemiBold( - Colors.black, 15), - ), - Text( - "₹${bestdealproduct.basePrice ?? ""}", - maxLines: 1, - overflow: TextOverflow.ellipsis, - style: context - .customMedium( - Colors.grey.withOpacity(0.8), - 15, - ) - .copyWith( - decoration: - TextDecoration.lineThrough, - ), - ), - ], - ), - const Spacer(), - Align( - alignment: Alignment.centerRight, - child: GestureDetector( - onTap: () async { - if (await SharedPrefUtils.getToken() != - null) { - await provider.addToCart( - context, bestdealproduct.id!, 1); - - context - .read() - .getItemCards(context); - } else { - context.push(MyRoutes.SIGNUP); - } - }, + child: Stack( + children: [ + AppNetworkImage( + imageUrl: bestdealproduct + .productImages?.first?.url ?? + "", + radius: 10, + backGroundColor: Colors.transparent, + ), + Positioned( + right: 0, + bottom: 0, child: Container( - height: MediaQuery.of(context).size.height * - 0.028, - // width: - // MediaQuery.of(context).size.width * 0.1, + width: 40, + height: 40, decoration: BoxDecoration( - color: APPCOLOR.lightGreen, - borderRadius: BorderRadius.circular(5), + color: Colors.red, + borderRadius: BorderRadius.circular(100), ), child: Center( - child: provider.isLoading[ - bestdealproduct.id] ?? - false - ? Padding( - padding: - const EdgeInsets.all(8.0), - child: Container( - height: 10, - width: 10, - child: - CircularProgressIndicator( - color: Colors.white, - strokeWidth: 2), - ), - ) - : Text( - ' Add ', - style: context.customRegular( - Colors.white, 12), - ), + child: Text( + "${calculateDiscountPercentage(double.parse(bestdealproduct.basePrice), double.parse(bestdealproduct.discountPrice))}% \nOFF", + textAlign: TextAlign.center, + style: const TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, + fontSize: 10)), ), ), + ) + ], + ), + ), + ), + SizedBox( + height: MediaQuery.of(context).size.height * 0.01), + Text( + bestdealproduct.name ?? "", + textAlign: TextAlign.left, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: context.customMedium(APPCOLOR.balck1A1A1A, 14), + ), + SizedBox( + height: MediaQuery.of(context).size.height * 0.005), + Text( + bestdealproduct.unit ?? "", + textAlign: TextAlign.left, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: context.customMedium( + Colors.grey.withOpacity(0.8), 12), + ), + const Spacer(), + Row( + children: [ + Column( + children: [ + Text( + "₹${bestdealproduct.discountPrice ?? ""} ", + textAlign: TextAlign.left, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: + context.customSemiBold(Colors.black, 15), + ), + Text( + "₹${bestdealproduct.basePrice ?? ""}", + textAlign: TextAlign.left, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: context + .customMedium( + Colors.grey.withOpacity(0.8), 15) + .copyWith( + decoration: + TextDecoration.lineThrough), + ), + ], + ), + const Spacer(), + Align( + alignment: Alignment.centerRight, + child: GestureDetector( + onTap: () async { + if (await SharedPrefUtils.getToken() != + null) { + await provider.addToCart( + context, bestdealproduct.id!, 1); + } else { + context.push(MyRoutes.SIGNUP); + } + }, + child: Container( + height: MediaQuery.of(context).size.height * + 0.035, + width: + MediaQuery.of(context).size.width * 0.1, + decoration: BoxDecoration( + color: APPCOLOR.lightGreen, + borderRadius: BorderRadius.circular(5), + ), + child: Center( + child: provider.isLoading[ + bestdealproduct.id] ?? + false + ? const Padding( + padding: const EdgeInsets.all(8.0), + child: SizedBox( + height: 10, + width: 10, + child: CircularProgressIndicator( + color: Colors.white, + strokeWidth: 2), + ), + ) + : Text( + 'Add', + style: context.customRegular( + Colors.white, 12), + ), + ), ), ), - ], - ), - ], - ), + ), + ], + ), + ], ), ), ), @@ -288,6 +264,7 @@ class _MycartState extends State { }, ), ); + ; } }); } diff --git a/lib/src/ui/data_notfound.dart b/lib/src/ui/data_notfound.dart index 1a77e19..68af61e 100644 --- a/lib/src/ui/data_notfound.dart +++ b/lib/src/ui/data_notfound.dart @@ -31,7 +31,7 @@ class DataNotFound extends StatelessWidget { const SizedBox(height: 5), Text( message, - style: const TextStyle(fontSize: 10, fontWeight: FontWeight.w500), + style: const TextStyle(fontSize: 15, fontWeight: FontWeight.w500), textAlign: TextAlign.center, ), ], diff --git a/lib/src/ui/favourite/favourite_screen.dart b/lib/src/ui/favourite/favourite_screen.dart index 97ee50d..aa84968 100644 --- a/lib/src/ui/favourite/favourite_screen.dart +++ b/lib/src/ui/favourite/favourite_screen.dart @@ -146,12 +146,47 @@ class _FavouriteScreenState extends State return Expanded( child: _buildSkeletonLoader()); // Show Skeleton while loading } else if (provider.wishListItem.isEmpty) { - return Expanded( - child: DataNotFound( - imagePath: 'assets/images/wishlist.jpg', - message: "Data Not Found", - width: 250.w, - height: 200.h, + return Center( + child: Column( + children: [ + SizedBox( + height: 150.h, + ), + DataNotFound( + imagePath: 'assets/images/wishlist.jpg', + message: "Your Order is empty", + ), + InkWell( + onTap: () { + context.push(MyRoutes.FRUITVEGGIEDETAIL); + }, + child: Container( + margin: const EdgeInsets.only(top: 30, bottom: 10), + height: 40, + width: MediaQuery.sizeOf(context).width / 2.8, + decoration: BoxDecoration( + color: APPCOLOR.lightGreen, + borderRadius: BorderRadius.circular(10)), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Icon( + Icons.search, + color: Colors.white, + ), + const SizedBox( + width: 10, + ), + Text( + "Shoping", + style: context.customMedium(Colors.white, 16), + ), + ], + ), + ), + ), + ], )); } else { return Expanded( diff --git a/lib/src/ui/home/home_screen.dart b/lib/src/ui/home/home_screen.dart index 0df68d2..588aaff 100644 --- a/lib/src/ui/home/home_screen.dart +++ b/lib/src/ui/home/home_screen.dart @@ -104,9 +104,19 @@ class _HomeScreenState extends State { ], ), onTap: () { - _searchController.text = suggestion.name; - searchProvider.getHomeProduct( - context, "", suggestion.name, '', '', ''); + // _searchController.text = suggestion.name; + // searchProvider.getHomeProduct( + // context, "", suggestion.name, '', '', ''); + + context.push( + MyRoutes.PRODUCTDETAILS, + extra: { + "id": suggestion.id, + "quantity": 1, + "price": suggestion.discountPrice, + }, + ); + _clearOverlay(); }, ); @@ -143,8 +153,7 @@ class _HomeScreenState extends State { children: [ Expanded( child: Consumer( - builder: (context, provider, child) - { + builder: (context, provider, child) { return CompositedTransformTarget( link: _layerLink, child: Container( @@ -452,10 +461,12 @@ class _HomeScreenState extends State { SizedBox( height: MediaQuery.of(context).size.height * 0.01), + + Text( bestdealproduct.name ?? "", textAlign: TextAlign.left, - maxLines: 2, + maxLines: 1, overflow: TextOverflow.ellipsis, style: context.customMedium( APPCOLOR.balck1A1A1A, 14), diff --git a/lib/src/ui/myOrder/my_order.dart b/lib/src/ui/myOrder/my_order.dart index ceb1bc8..e0b3f43 100644 --- a/lib/src/ui/myOrder/my_order.dart +++ b/lib/src/ui/myOrder/my_order.dart @@ -1,14 +1,18 @@ import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_svg/svg.dart'; import 'package:go_router/go_router.dart'; import 'package:grocery_app/src/common_widget/network_image.dart'; import 'package:grocery_app/src/core/routes/routes.dart'; +import 'package:grocery_app/src/logic/provider/home_provider.dart'; import 'package:grocery_app/src/logic/provider/order_provider.dart'; import 'package:grocery_app/src/ui/data_notfound.dart'; import 'package:grocery_app/utils/constants/assets_constant.dart'; import 'package:grocery_app/utils/constants/color_constant.dart'; import 'package:grocery_app/utils/extensions/extensions.dart'; +import 'package:grocery_app/utils/extensions/uicontext.dart'; import 'package:intl/intl.dart'; +import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; import 'package:provider/provider.dart'; import 'package:url_launcher/url_launcher.dart'; @@ -81,10 +85,47 @@ class _MyOrderScreenState extends State { } if (orderProvider.orderList.isEmpty) { - return const Center( - child: DataNotFound( - imagePath: 'assets/images/wishlist.jpg', - message: "No Order!", + return Center( + child: Column( + children: [ + SizedBox( + height: 150.h, + ), + DataNotFound( + imagePath: 'assets/images/wishlist.jpg', + message: "Your Order is empty", + ), + InkWell( + onTap: () { + context.push(MyRoutes.FRUITVEGGIEDETAIL); + }, + child: Container( + margin: const EdgeInsets.only(top: 30, bottom: 10), + height: 40, + width: MediaQuery.sizeOf(context).width / 2.8, + decoration: BoxDecoration( + color: APPCOLOR.lightGreen, + borderRadius: BorderRadius.circular(10)), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Icon( + Icons.search, + color: Colors.white, + ), + const SizedBox( + width: 10, + ), + Text( + "Shoping", + style: context.customMedium(Colors.white, 16), + ), + ], + ), + ), + ), + ], )); } @@ -142,7 +183,6 @@ class _MyOrderScreenState extends State { Text(order.orderNumber, style: TextStyle( fontWeight: FontWeight.bold)), - Text( order.totalItems.toString() + " items", @@ -151,8 +191,6 @@ class _MyOrderScreenState extends State { ], ), Spacer(), - - ], ), SizedBox(height: 10), diff --git a/lib/src/ui/productdetails/product_details.dart b/lib/src/ui/productdetails/product_details.dart index 17dcd95..0861e64 100644 --- a/lib/src/ui/productdetails/product_details.dart +++ b/lib/src/ui/productdetails/product_details.dart @@ -148,7 +148,6 @@ class _ProductDetailsState extends State { var productImage = provider.productDetails.data!.productImages![index]; return AppNetworkImage( - imageUrl: productImage.url, backGroundColor: Colors.transparent, radius: 10, @@ -952,7 +951,6 @@ class _ProductDetailsState extends State { borderRadius: BorderRadius.circular(15), ), child: AppNetworkImage( - imageUrl: "", backGroundColor: Colors.transparent, ), @@ -980,226 +978,171 @@ class _ProductDetailsState extends State { return Center(child: Text('No products available')); } else { return SizedBox( - height: MediaQuery.of(context).size.height * 0.28, + height: MediaQuery.of(context).size.height * 0.3, child: ListView.builder( itemCount: provider.bestdeal.length, scrollDirection: Axis.horizontal, itemBuilder: (context, index) { var bestdealproduct = provider.bestdeal[index]; - double cardWidth = - MediaQuery.of(context).size.width * 0.4; // Dynamic width + double cardWidth = MediaQuery.of(context).size.width * 0.4; return InkWell( onTap: () { - provider.getProduuctDetails( - context, bestdealproduct.id, 0, "0"); + context.push( + MyRoutes.PRODUCTDETAILS, + extra: { + "id": bestdealproduct.id, + "quantity": 1, + "price": bestdealproduct.discountPrice, + }, + ); }, child: Padding( - padding: const EdgeInsets.only(right: 10, bottom: 5, top: 5), + padding: const EdgeInsets.all(8.0), child: Container( width: cardWidth, decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(15), - boxShadow: [ - BoxShadow( - color: Colors.grey.withOpacity(0.1), - blurRadius: 1, - offset: const Offset(5, 5), - ), - ], ), - child: Padding( - padding: const EdgeInsets.all(5), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Center( - child: Container( - height: MediaQuery.of(context).size.height * 0.12, - width: cardWidth * 0.9, - decoration: BoxDecoration( - color: APPCOLOR.bgGrey, - borderRadius: BorderRadius.circular(15), - ), - child: Stack( - alignment: Alignment.center, - children: [ - AppNetworkImage( - - imageUrl: bestdealproduct - .productImages?.first?.url ?? - "", - backGroundColor: Colors.transparent, - radius: 10, - ), - Positioned( - right: 1, - bottom: 0, - child: Container( - padding: EdgeInsets.symmetric( - horizontal: 10, vertical: 10), - decoration: BoxDecoration( - color: Colors.red, - borderRadius: BorderRadius.circular(5), - ), - child: Center( - child: Text( - "${calculateDiscountPercentage(double.parse(bestdealproduct.basePrice), double.parse(bestdealproduct!.discountPrice))}% OFF", - style: TextStyle( - color: Colors.white, - fontSize: 15)), - ), - ), - ) - ], - ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Center( + child: Container( + height: MediaQuery.of(context).size.height * 0.17, + decoration: BoxDecoration( + color: APPCOLOR.bgGrey, + borderRadius: BorderRadius.circular(15), ), - ), - SizedBox( - height: MediaQuery.of(context).size.height * 0.01, - ), - Text( - bestdealproduct.name ?? "", - textAlign: TextAlign.left, - maxLines: 2, - overflow: TextOverflow.ellipsis, - style: - context.customMedium(APPCOLOR.balck1A1A1A, 14), - ), - SizedBox( - height: MediaQuery.of(context).size.height * 0.005, - ), - Text( - bestdealproduct.unit ?? "", - textAlign: TextAlign.left, - maxLines: 1, - overflow: TextOverflow.ellipsis, - style: context.customMedium( - Colors.grey.withOpacity(0.8), - 12, - ), - ), - SizedBox( - height: MediaQuery.of(context).size.height * 0.005, - ), - const Spacer(), - Row( - children: [ - Column( - children: [ - Text( - "₹${bestdealproduct.discountPrice ?? ""} ", - textAlign: TextAlign.left, - maxLines: 1, - overflow: TextOverflow.ellipsis, - style: context.customSemiBold( - Colors.black, 15), - ), - Text( - "₹${bestdealproduct.basePrice ?? ""}", - textAlign: TextAlign.left, - maxLines: 1, - overflow: TextOverflow.ellipsis, - style: context - .customMedium( - Colors.grey.withOpacity(0.8), - 15, - ) - .copyWith( - decoration: - TextDecoration.lineThrough, - ), - ), - ], - ), - - // Align( - // alignment: Alignment.centerRight, - // child: InkWell( - // onTap: () async { - // bool success = await provider.addToCart(context, bestdealproduct.id!); - // if (success) { - // Fluttertoast.showToast( - // msg: "Product added to cart!", - // toastLength: Toast.LENGTH_SHORT, - // gravity: ToastGravity.BOTTOM, - // backgroundColor: Colors.green, - // textColor: Colors.white, - // fontSize: 14.0, - // ); - // } - - // }, - // child: Container( - // height: - // MediaQuery.of(context).size.height * 0.035, - // width: MediaQuery.of(context).size.width * 0.1, - // decoration: BoxDecoration( - // color: APPCOLOR.lightGreen, - // borderRadius: BorderRadius.circular(5), - // ), - // child: Center( - // child: Text( - // 'Add', - // style: - // context.customRegular(Colors.white, 12), - // ), - // ), - // ), - // ), - // ), - const Spacer(), - Align( - alignment: Alignment.centerRight, - child: GestureDetector( - onTap: () async { - if (await SharedPrefUtils.getToken() != - null) { - provider.isLoading[bestdealproduct.id] ?? - false - ? null - : () => provider.addToCart( - context, bestdealproduct.id!, 1); - } else { - context.push(MyRoutes.SIGNUP); - } - }, + child: Stack( + children: [ + AppNetworkImage( + imageUrl: bestdealproduct + .productImages?.first?.url ?? + "", + radius: 10, + backGroundColor: Colors.transparent, + ), + Positioned( + right: 0, + bottom: 0, child: Container( - height: MediaQuery.of(context).size.height * - 0.035, - width: - MediaQuery.of(context).size.width * 0.1, + width: 40, + height: 40, decoration: BoxDecoration( - color: provider.cartItems - .contains(bestdealproduct.id) - ? Colors.grey - : APPCOLOR.lightGreen, - borderRadius: BorderRadius.circular(5), + color: Colors.red, + borderRadius: BorderRadius.circular(100), ), child: Center( - child: provider.isLoading[ - bestdealproduct.id] ?? - false - ? CircularProgressIndicator( + child: Text( + "${calculateDiscountPercentage(double.parse(bestdealproduct.basePrice), double.parse(bestdealproduct.discountPrice))}% \nOFF", + textAlign: TextAlign.center, + style: const TextStyle( color: Colors.white, - strokeWidth: 2) - : Text( - provider.cartItems.contains( - bestdealproduct.id) - ? 'Added' - : 'Add', - style: context.customRegular( - Colors.white, 12), - ), + fontWeight: FontWeight.bold, + fontSize: 10)), ), ), + ) + ], + ), + ), + ), + SizedBox( + height: MediaQuery.of(context).size.height * 0.01), + Text( + bestdealproduct.name ?? "", + textAlign: TextAlign.left, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: context.customMedium(APPCOLOR.balck1A1A1A, 14), + ), + SizedBox( + height: MediaQuery.of(context).size.height * 0.005), + Text( + bestdealproduct.unit ?? "", + textAlign: TextAlign.left, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: context.customMedium( + Colors.grey.withOpacity(0.8), 12), + ), + const Spacer(), + Row( + children: [ + Column( + children: [ + Text( + "₹${bestdealproduct.discountPrice ?? ""} ", + textAlign: TextAlign.left, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: + context.customSemiBold(Colors.black, 15), + ), + Text( + "₹${bestdealproduct.basePrice ?? ""}", + textAlign: TextAlign.left, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: context + .customMedium( + Colors.grey.withOpacity(0.8), 15) + .copyWith( + decoration: + TextDecoration.lineThrough), + ), + ], + ), + const Spacer(), + Align( + alignment: Alignment.centerRight, + child: GestureDetector( + onTap: () async { + if (await SharedPrefUtils.getToken() != + null) { + await provider.addToCart( + context, bestdealproduct.id!, 1); + } else { + context.push(MyRoutes.SIGNUP); + } + }, + child: Container( + height: MediaQuery.of(context).size.height * + 0.035, + width: + MediaQuery.of(context).size.width * 0.1, + decoration: BoxDecoration( + color: APPCOLOR.lightGreen, + borderRadius: BorderRadius.circular(5), + ), + child: Center( + child: provider.isLoading[ + bestdealproduct.id] ?? + false + ? const Padding( + padding: const EdgeInsets.all(8.0), + child: SizedBox( + height: 10, + width: 10, + child: CircularProgressIndicator( + color: Colors.white, + strokeWidth: 2), + ), + ) + : Text( + 'Add', + style: context.customRegular( + Colors.white, 12), + ), + ), ), ), - ], - ), - ], - ), + ), + ], + ), + ], ), ), ), diff --git a/lib/src/ui/profilepage/profile_screen.dart b/lib/src/ui/profilepage/profile_screen.dart index 1a26de1..65d1d59 100644 --- a/lib/src/ui/profilepage/profile_screen.dart +++ b/lib/src/ui/profilepage/profile_screen.dart @@ -65,8 +65,8 @@ class _ProfileScreenState extends State { } @override - Widget build(BuildContext context) - { + Widget build(BuildContext context) { + print("lkdjflkjhjkg ${APPSTRING.isToken}"); return Scaffold( body: NestedScrollView( headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) { @@ -113,7 +113,7 @@ class _ProfileScreenState extends State { imageUrl: provider.profile ?? "", radius: 90, backGroundColor: Colors.white, - boxFit: BoxFit.fill, + boxFit: BoxFit.cover, ), ), ], @@ -228,9 +228,13 @@ class _ProfileScreenState extends State { ), ), InkWell( - onTap: () { - Provider.of(context, listen: false) - .customerLogOut(context); + onTap: () async { + if (await SharedPrefUtils.getToken() != null) { + Provider.of(context, listen: false) + .customerLogOut(context); + } else { + context.push(MyRoutes.SIGNUP); + } }, child: Container( margin: const EdgeInsets.only( @@ -251,18 +255,10 @@ class _ProfileScreenState extends State { const SizedBox( width: 10, ), - if (APPSTRING.isToken == null || - APPSTRING.isToken == "") ...{ - Text( - "login", - style: context.customMedium(Colors.white, 16), - ), - } else ...{ - Text( - "Logout", - style: context.customMedium(Colors.white, 16), - ), - } + Text( + "Logout", + style: context.customMedium(Colors.white, 16), + ), ], ), ), @@ -399,6 +395,4 @@ class _ProfileScreenState extends State { }, ); } - - }