diff --git a/.DS_Store b/.DS_Store index dcd313c..35f6687 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 6fb0c80..2cbf023 100644 --- a/.dart_tool/package_config.json +++ b/.dart_tool/package_config.json @@ -19,6 +19,12 @@ "packageUri": "lib/", "languageVersion": "3.3" }, + { + "name": "art_sweetalert", + "rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/art_sweetalert-0.0.5", + "packageUri": "lib/", + "languageVersion": "2.12" + }, { "name": "async", "rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/async-2.11.0", @@ -992,7 +998,7 @@ "languageVersion": "3.4" } ], - "generated": "2025-02-22T13:29:09.162780Z", + "generated": "2025-02-24T13:23:19.491834Z", "generator": "pub", "generatorVersion": "3.4.4", "flutterRoot": "file:///Users/rajeevsingh/Documents/allSoftwares/flutter", diff --git a/.dart_tool/package_config_subset b/.dart_tool/package_config_subset index b3dab27..821f9f6 100644 --- a/.dart_tool/package_config_subset +++ b/.dart_tool/package_config_subset @@ -10,6 +10,10 @@ args 3.3 file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/args-2.6.0/ file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/args-2.6.0/lib/ +art_sweetalert +2.12 +file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/art_sweetalert-0.0.5/ +file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/art_sweetalert-0.0.5/lib/ async 2.18 file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/async-2.11.0/ diff --git a/.flutter-plugins-dependencies b/.flutter-plugins-dependencies index de0b868..c0f8944 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/rajeevsingh/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","native_build":true,"dependencies":[]},{"name":"flutter_inappwebview_ios","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_inappwebview_ios-1.0.13/","native_build":true,"dependencies":[]},{"name":"fluttertoast","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/fluttertoast-8.2.11/","native_build":true,"dependencies":[]},{"name":"geocoding_ios","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geocoding_ios-3.0.1/","native_build":true,"dependencies":[]},{"name":"geolocator_apple","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_apple-2.3.8+1/","native_build":true,"dependencies":[]},{"name":"google_maps_flutter_ios","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.13.2/","native_build":true,"dependencies":[]},{"name":"image_picker_ios","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/","native_build":true,"dependencies":[]},{"name":"package_info_plus","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/rajeevsingh/.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/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_ios","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.2/","native_build":true,"dependencies":[]}],"android":[{"name":"connectivity_plus","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","native_build":true,"dependencies":[]},{"name":"flutter_inappwebview_android","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_inappwebview_android-1.0.13/","native_build":true,"dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.22/","native_build":true,"dependencies":[]},{"name":"fluttertoast","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/fluttertoast-8.2.11/","native_build":true,"dependencies":[]},{"name":"geocoding_android","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geocoding_android-3.3.1/","native_build":true,"dependencies":[]},{"name":"geolocator_android","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_android-4.6.1/","native_build":true,"dependencies":[]},{"name":"google_api_headers","path":"/Users/rajeevsingh/.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/rajeevsingh/.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/rajeevsingh/.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/rajeevsingh/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","native_build":true,"dependencies":[]},{"name":"path_provider_android","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_android-2.2.10/","native_build":true,"dependencies":[]},{"name":"shared_preferences_android","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_android-2.3.2/","native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1/","native_build":true,"dependencies":[]},{"name":"url_launcher_android","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.9/","native_build":true,"dependencies":[]}],"macos":[{"name":"connectivity_plus","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","native_build":true,"dependencies":[]},{"name":"file_selector_macos","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/file_selector_macos-0.9.4+2/","native_build":true,"dependencies":[]},{"name":"flutter_inappwebview_macos","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_inappwebview_macos-1.0.11/","native_build":true,"dependencies":[]},{"name":"geolocator_apple","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_apple-2.3.8+1/","native_build":true,"dependencies":[]},{"name":"image_picker_macos","path":"/Users/rajeevsingh/.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/rajeevsingh/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/rajeevsingh/.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/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_macos","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/url_launcher_macos-3.2.2/","native_build":true,"dependencies":[]}],"linux":[{"name":"connectivity_plus","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","native_build":false,"dependencies":[]},{"name":"file_selector_linux","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.3+2/","native_build":true,"dependencies":[]},{"name":"image_picker_linux","path":"/Users/rajeevsingh/.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/rajeevsingh/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","native_build":false,"dependencies":[]},{"name":"path_provider_linux","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[]},{"name":"shared_preferences_linux","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1/","native_build":false,"dependencies":["path_provider_linux"]},{"name":"url_launcher_linux","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1/","native_build":true,"dependencies":[]}],"windows":[{"name":"connectivity_plus","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","native_build":true,"dependencies":[]},{"name":"file_selector_windows","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/file_selector_windows-0.9.3+3/","native_build":true,"dependencies":[]},{"name":"geolocator_windows","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_windows-0.2.3/","native_build":true,"dependencies":[]},{"name":"image_picker_windows","path":"/Users/rajeevsingh/.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/rajeevsingh/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","native_build":false,"dependencies":[]},{"name":"path_provider_windows","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[]},{"name":"shared_preferences_windows","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/","native_build":false,"dependencies":["path_provider_windows"]},{"name":"url_launcher_windows","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4/","native_build":true,"dependencies":[]}],"web":[{"name":"connectivity_plus","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","dependencies":[]},{"name":"flutter_inappwebview_web","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_inappwebview_web-1.0.8/","dependencies":[]},{"name":"fluttertoast","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/fluttertoast-8.2.11/","dependencies":[]},{"name":"geolocator_web","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_web-4.1.1/","dependencies":[]},{"name":"google_maps_flutter_web","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter_web-0.5.10/","dependencies":[]},{"name":"image_picker_for_web","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/image_picker_for_web-3.0.6/","dependencies":[]},{"name":"package_info_plus","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","dependencies":[]},{"name":"shared_preferences_web","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.2/","dependencies":[]},{"name":"url_launcher_web","path":"/Users/rajeevsingh/.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":"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_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":"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-02-22 18:59:09.393832","version":"3.22.3"} \ 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/rajeevsingh/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","native_build":true,"dependencies":[]},{"name":"flutter_inappwebview_ios","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_inappwebview_ios-1.0.13/","native_build":true,"dependencies":[]},{"name":"fluttertoast","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/fluttertoast-8.2.11/","native_build":true,"dependencies":[]},{"name":"geocoding_ios","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geocoding_ios-3.0.1/","native_build":true,"dependencies":[]},{"name":"geolocator_apple","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_apple-2.3.8+1/","native_build":true,"dependencies":[]},{"name":"google_maps_flutter_ios","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.13.2/","native_build":true,"dependencies":[]},{"name":"image_picker_ios","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/","native_build":true,"dependencies":[]},{"name":"package_info_plus","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/rajeevsingh/.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/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_ios","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.2/","native_build":true,"dependencies":[]}],"android":[{"name":"connectivity_plus","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","native_build":true,"dependencies":[]},{"name":"flutter_inappwebview_android","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_inappwebview_android-1.0.13/","native_build":true,"dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.22/","native_build":true,"dependencies":[]},{"name":"fluttertoast","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/fluttertoast-8.2.11/","native_build":true,"dependencies":[]},{"name":"geocoding_android","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geocoding_android-3.3.1/","native_build":true,"dependencies":[]},{"name":"geolocator_android","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_android-4.6.1/","native_build":true,"dependencies":[]},{"name":"google_api_headers","path":"/Users/rajeevsingh/.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/rajeevsingh/.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/rajeevsingh/.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/rajeevsingh/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","native_build":true,"dependencies":[]},{"name":"path_provider_android","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_android-2.2.10/","native_build":true,"dependencies":[]},{"name":"shared_preferences_android","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_android-2.3.2/","native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1/","native_build":true,"dependencies":[]},{"name":"url_launcher_android","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.9/","native_build":true,"dependencies":[]}],"macos":[{"name":"connectivity_plus","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","native_build":true,"dependencies":[]},{"name":"file_selector_macos","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/file_selector_macos-0.9.4+2/","native_build":true,"dependencies":[]},{"name":"flutter_inappwebview_macos","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_inappwebview_macos-1.0.11/","native_build":true,"dependencies":[]},{"name":"geolocator_apple","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_apple-2.3.8+1/","native_build":true,"dependencies":[]},{"name":"image_picker_macos","path":"/Users/rajeevsingh/.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/rajeevsingh/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/rajeevsingh/.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/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_macos","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/url_launcher_macos-3.2.2/","native_build":true,"dependencies":[]}],"linux":[{"name":"connectivity_plus","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","native_build":false,"dependencies":[]},{"name":"file_selector_linux","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.3+2/","native_build":true,"dependencies":[]},{"name":"image_picker_linux","path":"/Users/rajeevsingh/.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/rajeevsingh/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","native_build":false,"dependencies":[]},{"name":"path_provider_linux","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[]},{"name":"shared_preferences_linux","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1/","native_build":false,"dependencies":["path_provider_linux"]},{"name":"url_launcher_linux","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1/","native_build":true,"dependencies":[]}],"windows":[{"name":"connectivity_plus","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","native_build":true,"dependencies":[]},{"name":"file_selector_windows","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/file_selector_windows-0.9.3+3/","native_build":true,"dependencies":[]},{"name":"geolocator_windows","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_windows-0.2.3/","native_build":true,"dependencies":[]},{"name":"image_picker_windows","path":"/Users/rajeevsingh/.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/rajeevsingh/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","native_build":false,"dependencies":[]},{"name":"path_provider_windows","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[]},{"name":"shared_preferences_windows","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/","native_build":false,"dependencies":["path_provider_windows"]},{"name":"url_launcher_windows","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4/","native_build":true,"dependencies":[]}],"web":[{"name":"connectivity_plus","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/","dependencies":[]},{"name":"flutter_inappwebview_web","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_inappwebview_web-1.0.8/","dependencies":[]},{"name":"fluttertoast","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/fluttertoast-8.2.11/","dependencies":[]},{"name":"geolocator_web","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_web-4.1.1/","dependencies":[]},{"name":"google_maps_flutter_web","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter_web-0.5.10/","dependencies":[]},{"name":"image_picker_for_web","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/image_picker_for_web-3.0.6/","dependencies":[]},{"name":"package_info_plus","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/","dependencies":[]},{"name":"shared_preferences_web","path":"/Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.2/","dependencies":[]},{"name":"url_launcher_web","path":"/Users/rajeevsingh/.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":"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_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":"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-02-24 18:53:19.775810","version":"3.22.3"} \ No newline at end of file diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 869fd42..1d7e61d 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -6,7 +6,7 @@ - + diff --git a/lib/src/core/routes/routes.dart b/lib/src/core/routes/routes.dart index 782500a..9e679ba 100644 --- a/lib/src/core/routes/routes.dart +++ b/lib/src/core/routes/routes.dart @@ -22,6 +22,8 @@ import 'package:grocery_app/src/ui/payment/payment_failure_screen.dart'; import 'package:grocery_app/src/ui/payment/payment_success_screen.dart'; import 'package:grocery_app/src/ui/productdetails/product_details.dart'; import 'package:grocery_app/src/ui/splash/splash_screen.dart'; +import 'package:grocery_app/src/ui/static_page/privacyandpolicy.dart'; +import 'package:grocery_app/src/ui/static_page/tersandconditions.dart'; import 'package:grocery_app/utils/constants/globle_variable.dart'; /// Route names as constants @@ -99,12 +101,11 @@ class MyRoutes { animatedGoRoute( path: PRODUCTDETAILS, name: PRODUCTDETAILS, - pageBuilder: (context, state) - { + pageBuilder: (context, state) { // final id = state.extra as String; // Get the extra object // return ProductDetails(id: id); - - final args = state.extra as Map; + + final args = state.extra as Map; return ProductDetails( id: args["id"], @@ -114,11 +115,17 @@ class MyRoutes { }, ), - // animatedGoRoute( - // path: SELECTPAYMENTSCREEN, - // name: SELECTPAYMENTSCREEN, - // pageBuilder: (context, state) => const CardCheckoutScreen(), - // ), + animatedGoRoute( + path: TERMANDCONDITIONS, + name: TERMANDCONDITIONS, + pageBuilder: (context, state) => const TermsAndConditionsScreen(), + ), + + animatedGoRoute( + path: PRIVACY, + name: PRIVACY, + pageBuilder: (context, state) => const PrivacyPolicy(), + ), animatedGoRoute( path: SUCCESSPAYMENT, @@ -268,7 +275,10 @@ class MyRoutes { static const ORDERDETAILS = "/OrderDetailsScreen"; - // static const TERMANDCONDITIONS = "/termsandcondition"; + static const TERMANDCONDITIONS = "/termsandcondition"; + + static const PRIVACY = "/privacyandpolicy"; + // static const SETUPBUSSINESS = "/setupbussiness"; // static const CREATESTORE = "/createStore"; // static const SUBMITSCREEN = "/submitscreen"; diff --git a/lib/src/ui/bestdeal/bestdeal_screen.dart b/lib/src/ui/bestdeal/bestdeal_screen.dart index f464158..d367bd3 100644 --- a/lib/src/ui/bestdeal/bestdeal_screen.dart +++ b/lib/src/ui/bestdeal/bestdeal_screen.dart @@ -8,6 +8,7 @@ import 'package:grocery_app/src/core/routes/routes.dart'; import 'package:grocery_app/src/data/all_cart_items.dart'; import 'package:grocery_app/src/logic/provider/bottom_navbar_provider.dart'; import 'package:grocery_app/src/logic/provider/home_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/constants/shared_pref_utils.dart'; @@ -281,7 +282,13 @@ class _BestDealScreenState extends State { ), ); } else if (provider.bestdeal.isEmpty) { - return Center(child: Text('No products available')); + return Center( + child: DataNotFound( + imagePath: 'assets/images/cart.jpg', + message: "Sorry! Don't have a product", + width: 300.w, + height: 300.h, + )); } else { return Padding( padding: const EdgeInsets.all(15), @@ -298,17 +305,14 @@ class _BestDealScreenState extends State { var bestdealproduct = provider.bestdeal[index]; return InkWell( onTap: () { - context.push(MyRoutes.PRODUCTDETAILS, - - - extra: { - "id": bestdealproduct.id, - "quantity": 0, - "price": '0', - }, - - - ); + context.push( + MyRoutes.PRODUCTDETAILS, + extra: { + "id": bestdealproduct.id, + "quantity": 0, + "price": '0', + }, + ); }, child: Container( decoration: BoxDecoration( diff --git a/lib/src/ui/cart/cartview_screen.dart b/lib/src/ui/cart/cartview_screen.dart index deb20d8..4ba5e6a 100644 --- a/lib/src/ui/cart/cartview_screen.dart +++ b/lib/src/ui/cart/cartview_screen.dart @@ -98,7 +98,7 @@ class _MycartState extends State { if (provider.isBestdealingloading) { return Center(child: CircularProgressIndicator()); } else if (provider.bestdeal.isEmpty) { - return Center(child: Text('No products available')); + return Center(child: Text('')); } else { return SizedBox( height: MediaQuery.of(context).size.height * 0.28, @@ -112,16 +112,14 @@ class _MycartState extends State { return InkWell( onTap: () { - context.push(MyRoutes.PRODUCTDETAILS, - - - extra: { - "id":bestdealproduct.id, - "quantity": 0, - "price": "0", - }, - - ); + context.push( + MyRoutes.PRODUCTDETAILS, + extra: { + "id": bestdealproduct.id, + "quantity": 0, + "price": "0", + }, + ); }, child: Padding( padding: const EdgeInsets.only(right: 5, bottom: 5, top: 5), @@ -434,8 +432,8 @@ class _MycartState extends State { return DataNotFound( imagePath: 'assets/images/cartempty.jpg', message: "", - width: 250.w, - height: 200.h, + width: 100.w, + height: 100.h, ); } else { return ListView.separated( @@ -450,17 +448,16 @@ class _MycartState extends State { var items = provider.allitem.items![index]; return InkWell( - onTap: () - { + onTap: () { context.push( MyRoutes.PRODUCTDETAILS, extra: { "id": items.product!.id, "quantity": items.quantity, - "price": items.product!.discountPrice, + "price": items.product!.discountPrice, }, ); - }, + }, child: Padding( padding: EdgeInsets.symmetric(horizontal: 10.w), child: Row( diff --git a/lib/src/ui/data_notfound.dart b/lib/src/ui/data_notfound.dart index d001fa0..92ea112 100644 --- a/lib/src/ui/data_notfound.dart +++ b/lib/src/ui/data_notfound.dart @@ -20,11 +20,13 @@ class DataNotFound extends StatelessWidget { child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ - Image.asset( - imagePath, - width: width, - height: height, - fit: BoxFit.contain, + Center( + child: Image.asset( + imagePath, + width: width, + height: height, + fit: BoxFit.contain, + ), ), const SizedBox(height: 20), Text( diff --git a/lib/src/ui/fruitvegidetail/fruit_veggie_detail.dart b/lib/src/ui/fruitvegidetail/fruit_veggie_detail.dart index cb48cf3..b083f8e 100644 --- a/lib/src/ui/fruitvegidetail/fruit_veggie_detail.dart +++ b/lib/src/ui/fruitvegidetail/fruit_veggie_detail.dart @@ -122,13 +122,15 @@ class _FruitVeggieDetailState extends State { )), ); } else if (provider.products.isEmpty) { - return Padding( - padding: const EdgeInsets.only(left: 40), - child: DataNotFound( - imagePath: 'assets/images/cart.jpg', - message: "Product not abailable ", - width: 200.w, - height: 250.h, + return Center( + child: Padding( + padding: const EdgeInsets.only(left: 40), + child: DataNotFound( + imagePath: 'assets/images/cart.jpg', + message: "Product not abailable ", + width: 200.w, + height: 250.h, + ), ), ); } else { @@ -179,16 +181,16 @@ class _FruitVeggieDetailState extends State { var product = provider.products[index]; return InkWell( onTap: () { - context.push(MyRoutes.PRODUCTDETAILS, - // extra: product.id + context.push( + MyRoutes.PRODUCTDETAILS, + // extra: product.id - extra: { + extra: { "id": product.id, "quantity": 0, "price": "0", }, - - ); + ); }, child: Container( height: itemHeight, @@ -474,7 +476,7 @@ class _FruitVeggieDetailState extends State { ), )); } else if (provider.categoryList.isEmpty) { - return Center(child: Text('No products available')); + return SizedBox.shrink(); } else { return Container( decoration: const BoxDecoration(color: Colors.white), diff --git a/lib/src/ui/home/home_screen.dart b/lib/src/ui/home/home_screen.dart index 1dd4050..2f05503 100644 --- a/lib/src/ui/home/home_screen.dart +++ b/lib/src/ui/home/home_screen.dart @@ -1,11 +1,13 @@ import 'package:carousel_slider/carousel_slider.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:fluttertoast/fluttertoast.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/ui/bestdeal/bestdeal_screen.dart'; +import 'package:grocery_app/src/ui/data_notfound.dart'; import 'package:grocery_app/src/ui/fruitvegidetail/fruit_veggie_detail.dart'; import 'package:grocery_app/src/ui/header.dart'; import 'package:grocery_app/utils/constants/color_constant.dart'; @@ -33,14 +35,13 @@ class _HomeScreenState extends State { WidgetsBinding.instance.addPostFrameCallback((_) { final productProvider = Provider.of(context, listen: false); - productProvider .determinePosition(); + productProvider.determinePosition(); productProvider.getBanners(context); productProvider.getHomeProduct(context, "", '', '', '', ''); productProvider.getBestDealProduct(context, ''); productProvider.getAllcategory(context); - getUserDetails(); }); } @@ -71,8 +72,7 @@ class _HomeScreenState extends State { Row( children: [ Consumer( - builder: (context, provider, child) - { + builder: (context, provider, child) { return Expanded( child: Container( height: 50, @@ -286,7 +286,13 @@ class _HomeScreenState extends State { ), ) : provider.bestdeal.isEmpty - ? Center(child: Text('No products available')) + ? Center( + child: DataNotFound( + imagePath: 'assets/images/cart.jpg', + message: "", + width: 300.w, + height: 300.h, + )) : SizedBox( height: MediaQuery.of(context).size.height * 0.28, child: ListView.builder( @@ -299,17 +305,16 @@ class _HomeScreenState extends State { return InkWell( onTap: () { - context.push(MyRoutes.PRODUCTDETAILS, + context.push( + MyRoutes.PRODUCTDETAILS, // extra: bestdealproduct.id - extra: { - "id":bestdealproduct.id, - "quantity": 0, - "price": "0", - }, - - - ); + extra: { + "id": bestdealproduct.id, + "quantity": 0, + "price": "0", + }, + ); }, child: Padding( padding: const EdgeInsets.only( @@ -687,15 +692,16 @@ class _HomeScreenState extends State { var product = provider.homeproducts[index]; return InkWell( onTap: () { - context.push(MyRoutes.PRODUCTDETAILS, - // extra: product.id - - extra: { - "id":product.id, - "quantity": 0, - "price": "0", - }, - ); + context.push( + MyRoutes.PRODUCTDETAILS, + // extra: product.id + + extra: { + "id": product.id, + "quantity": 0, + "price": "0", + }, + ); }, child: SizedBox( child: Column( diff --git a/lib/src/ui/myOrder/my_order.dart b/lib/src/ui/myOrder/my_order.dart index f41333c..565af21 100644 --- a/lib/src/ui/myOrder/my_order.dart +++ b/lib/src/ui/myOrder/my_order.dart @@ -1,9 +1,11 @@ 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/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'; @@ -73,7 +75,13 @@ class _MyOrderScreenState extends State { } if (orderProvider.orderList.isEmpty) { - return Center(child: Text('No orders found!')); + return Center( + child: DataNotFound( + imagePath: 'assets/images/wishlist.jpg', + message: "No Order Available! ", + // width: 200.w, + // height: 200.h, + )); } return Column( diff --git a/lib/src/ui/profilepage/profile_screen.dart b/lib/src/ui/profilepage/profile_screen.dart index 45eb98a..abdd1cc 100644 --- a/lib/src/ui/profilepage/profile_screen.dart +++ b/lib/src/ui/profilepage/profile_screen.dart @@ -1,4 +1,7 @@ +import 'package:art_sweetalert/art_sweetalert.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:gap/gap.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'; @@ -12,10 +15,13 @@ import 'package:grocery_app/src/ui/mapscreen/map_screen.dart'; import 'package:grocery_app/src/ui/message/message_screen.dart'; import 'package:grocery_app/src/ui/notification/notification_screen.dart'; import 'package:grocery_app/src/ui/rating_review/rating_review_screen.dart'; -import 'package:grocery_app/src/ui/static_page/static_page_screen.dart'; +import 'package:grocery_app/src/ui/static_page/tersandconditions.dart'; +import 'package:grocery_app/src/ui/widgets/custom_text_field.dart'; +import 'package:grocery_app/src/ui/widgets/elevated_button.dart'; import 'package:grocery_app/utils/constants/color_constant.dart'; import 'package:grocery_app/utils/constants/shared_pref_utils.dart'; import 'package:grocery_app/utils/constants/string_constant.dart'; +import 'package:grocery_app/utils/extensions/extensions.dart'; import 'package:grocery_app/utils/extensions/uicontext.dart'; import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; import 'package:provider/provider.dart'; @@ -45,6 +51,21 @@ class _ProfileScreenState extends State { APPSTRING.userLastName = (await SharedPrefUtils.getLastName())!; } + final _formKey = GlobalKey(); + final TextEditingController _passwordController = TextEditingController(); + final TextEditingController _confirmPasswordController = + TextEditingController(); + + bool _isPasswordVisible = false; + bool _isConfirmPasswordVisible = false; + + @override + void dispose() { + _passwordController.dispose(); + _confirmPasswordController.dispose(); + super.dispose(); + } + @override Widget build(BuildContext context) { print("jdfgkjhgjh ${APPSTRING.userProfile}"); @@ -181,6 +202,9 @@ class _ProfileScreenState extends State { trailing: Icon(MdiIcons.chevronRight), ), ListTile( + onTap: () { + _showBottomSheet(context); + }, leading: Icon(MdiIcons.lockOutline), title: const Text('Change Password'), trailing: Icon(MdiIcons.chevronRight), @@ -244,13 +268,7 @@ class _ProfileScreenState extends State { ListTile( onTap: () { - Navigator.of(context).push(MaterialPageRoute( - builder: (context) { - return const StaticPage( - title: "Privacy Policy", - ); - }, - )); + context.push(MyRoutes.PRIVACY); }, leading: Icon(MdiIcons.shieldCheckOutline), title: const Text('Privacy Policy'), @@ -258,13 +276,7 @@ class _ProfileScreenState extends State { ), ListTile( onTap: () { - Navigator.of(context).push(MaterialPageRoute( - builder: (context) { - return const StaticPage( - title: "Terms & Conditions", - ); - }, - )); + context.push(MyRoutes.TERMANDCONDITIONS); }, leading: Icon(MdiIcons.noteTextOutline), title: const Text('Term & Conditions'), @@ -317,4 +329,132 @@ class _ProfileScreenState extends State { ), ); } + + // Function to show the Bottom Sheet + void _showBottomSheet(BuildContext context) { + showModalBottomSheet( + context: context, + builder: (BuildContext context) { + return Container( + decoration: BoxDecoration( + border: Border.all(color: context.appColor.greyColor400), + color: context.appColor.whiteColor, + borderRadius: BorderRadius.all(Radius.circular(5.0)), + ), + padding: EdgeInsets.all(20.w), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + // Centered App Logo + + Align( + alignment: Alignment.center, + child: Text('Change Password', style: context.subTitleStyle), + ), + + Align( + alignment: Alignment.center, + child: Container( + width: 300, + child: Text('Enter your new password', + textAlign: TextAlign.center, + style: + context.subTitleTextStyle.copyWith(fontSize: 13.sp)), + ), + ), + Form( + key: _formKey, + child: Column( + children: [ + // Password Field + CustomTextField( + controller: _passwordController, + obscureText: !_isPasswordVisible, + validator: (val) { + if (val == null || val.isEmpty) { + return "Please enter a password"; + } else if (val.length < 6) { + return "Password must be at least 6 characters long"; + } + return null; + }, + maxLength: 64, + counterWidget: const Offstage(), + hintText: "Enter password", + fillColor: context.appColor.greyColor100, + suffix: IconButton( + icon: Icon( + _isPasswordVisible + ? Icons.visibility + : Icons.visibility_off, + ), + onPressed: () { + setState(() { + _isPasswordVisible = !_isPasswordVisible; + }); + }, + ), + ), + Gap(10.h), + + // Confirm Password Field + CustomTextField( + controller: _confirmPasswordController, + obscureText: !_isConfirmPasswordVisible, + validator: (val) { + if (val == null || val.isEmpty) { + return "Please confirm your password"; + } else if (val != _passwordController.text) { + return "Passwords do not match"; + } + return null; + }, + maxLength: 64, + counterWidget: const Offstage(), + hintText: "Confirm password", + fillColor: context.appColor.greyColor100, + suffix: IconButton( + icon: Icon( + _isConfirmPasswordVisible + ? Icons.visibility + : Icons.visibility_off, + ), + onPressed: () { + setState(() { + _isConfirmPasswordVisible = + !_isConfirmPasswordVisible; + }); + }, + ), + ), + ], + ), + ), + Gap(20.h), + Center( + child: SizedBox( + child: SizedBox( + width: double.infinity, + child: ButtonElevated( + text: 'Change Password', + onPressed: () { + Navigator.pop(context); + ArtSweetAlert.show( + context: context, + artDialogArgs: ArtDialogArgs( + type: ArtSweetAlertType.success, + title: "Password Reset Successful", + text: "")); + }, + backgroundColor: context.appColor.primarycolor), + ), + ), + ), + Gap(10.h), + ], + ), + ); + }, + ); + } } diff --git a/lib/src/ui/static_page/privacyandpolicy.dart b/lib/src/ui/static_page/privacyandpolicy.dart new file mode 100644 index 0000000..e9d33e0 --- /dev/null +++ b/lib/src/ui/static_page/privacyandpolicy.dart @@ -0,0 +1,137 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:grocery_app/utils/extensions/extensions.dart'; +import 'package:provider/provider.dart'; +import 'package:gap/gap.dart'; + +class PrivacyPolicy extends StatelessWidget { + const PrivacyPolicy({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: Colors.white, + leading: IconButton( + icon: Icon(Icons.arrow_back_ios_rounded), + onPressed: () { + Navigator.pop(context); // Handle back button functionality + }, + ), + title: Text( + 'Privacy & Policy', + style: TextStyle( + fontSize: 18.sp, + fontWeight: FontWeight.bold, + ), + ), + ), + body: Padding( + padding: EdgeInsets.all(16.w), + child: ListView( + children: [ + _buildSectionTitle('1. General Terms'), + _buildSectionContent( + 'Welcome to Frontshop Emporium! We’re delighted to have you here. By accessing or using our platform, ' + 'we kindly ask that you review and agree to our terms and conditions. These ensure a safe and seamless ' + 'experience for everyone. If you have any concerns or do not agree with these terms, we respect your ' + 'choice to refrain from using our platform. Thank you for understanding!', + ), + _buildSectionTitle('2. User Terms'), + _buildSubSectionTitle('Eligibility'), + _buildSectionContent( + '• Users must provide accurate and complete information during registration.', + ), + _buildSubSectionTitle('User Responsibilities'), + _buildSectionContent( + '• Ensure your account details are secure. You are responsible for all activities under your account.\n' + '• Use the platform in compliance with all applicable laws and regulations.\n' + '• Do not engage in fraudulent, abusive, or harmful activities, including posting inappropriate content ' + 'or exploiting platform features.', + ), + _buildSubSectionTitle('Order and Payment'), + _buildSectionContent( + '• Orders are confirmed only upon payment.\n' + '• Prices, discounts, and offers are subject to change without notice.', + ), + _buildSectionTitle('3. Vendor Terms'), + _buildSubSectionTitle('Registration and Eligibility'), + _buildSectionContent( + '• Vendors must provide valid business details and adhere to local commerce regulations.\n' + '• Vendors must be legally registered businesses and provide necessary documentation (e.g., business ' + 'licenses, tax identification). The Company reserves the right to approve or deny vendor applications.\n' + '• Both parties agree to keep proprietary information confidential. Vendor information will not be shared ' + 'without consent, except as required by law.', + ), + _buildSubSectionTitle('Vendor Responsibilities'), + _buildSectionContent( + '• Maintain accurate product descriptions, prices, and inventory levels.\n' + '• Ensure timely dispatch and delivery of products. Resolve user complaints promptly.\n' + '• Vendors must ensure that all products meet quality and safety standards.', + ), + _buildSectionTitle('4. Delivery Partner Terms'), + _buildSubSectionTitle('Eligibility'), + _buildSectionContent( + '• Delivery Partners must provide valid identification. Delivery Partners must be legally registered entities ' + 'or individuals with appropriate licenses and follow all traffic rules and regulations.', + ), + _buildSectionTitle('5. Privacy Policy'), + _buildSectionContent( + 'Frontshop Emporium is committed to protecting your privacy.\n' + '• We do not sell your data to third parties.\n' + '• Data may be shared with service providers, delivery partners, and legal authorities as necessary.', + ), + _buildSectionTitle('6. Refund Policy'), + _buildSectionContent( + '• Products are eligible for a refund if they are defective, damaged during delivery, or not as described.\n' + '• Requests must be initiated within 7 days of receiving the product.', + ), + _buildSectionTitle('7. Support Policy'), + _buildSectionContent( + '• For assistance, contact our support team via email or live chat available on the platform.\n' + '• Support hours: Monday to Friday, 9 AM – 6 PM (local time).', + ), + SizedBox(height: 20), + + Gap(20.h), + + // Continue Button + Gap(20.h), + ], + ), + ), + ); + } +} + +Widget _buildSectionTitle(String title) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 8.0), + child: Text( + title, + style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + ); +} + +Widget _buildSubSectionTitle(String title) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 4.0), + child: Text( + title, + style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600), + ), + ); +} + +Widget _buildSectionContent(String content) { + return Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + content, + style: TextStyle(fontSize: 14, height: 1.5), + ), + ); +} diff --git a/lib/src/ui/static_page/static_page_screen.dart b/lib/src/ui/static_page/static_page_screen.dart deleted file mode 100644 index ad6b998..0000000 --- a/lib/src/ui/static_page/static_page_screen.dart +++ /dev/null @@ -1,44 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_svg/flutter_svg.dart'; -import 'package:grocery_app/utils/constants/assets_constant.dart'; - -class StaticPage extends StatefulWidget { - final String title; - const StaticPage({super.key, required this.title}); - - @override - State createState() => _StaticPageState(); -} - -class _StaticPageState extends State { - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - centerTitle: true, - leading: Center( - child: SizedBox( - height: 20, - width: 20, - child: InkWell( - onTap: () { - Navigator.of(context).pop(); - }, - child: SvgPicture.asset( - APPASSETS.back, - height: 20, - width: 20, - )), - ), - ), - title: Text( - widget.title, - style: const TextStyle( - fontSize: 20, - fontWeight: FontWeight.w700, - ), - ), - ), - ); - } -} diff --git a/lib/src/ui/static_page/tersandconditions.dart b/lib/src/ui/static_page/tersandconditions.dart new file mode 100644 index 0000000..bfe2136 --- /dev/null +++ b/lib/src/ui/static_page/tersandconditions.dart @@ -0,0 +1,137 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:grocery_app/utils/extensions/extensions.dart'; +import 'package:provider/provider.dart'; +import 'package:gap/gap.dart'; + +class TermsAndConditionsScreen extends StatelessWidget { + const TermsAndConditionsScreen({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: Colors.white, + leading: IconButton( + icon: Icon(Icons.arrow_back_ios_rounded), + onPressed: () { + Navigator.pop(context); // Handle back button functionality + }, + ), + title: Text( + 'Terms & Conditions', + style: TextStyle( + fontSize: 18.sp, + fontWeight: FontWeight.bold, + ), + ), + ), + body: Padding( + padding: EdgeInsets.all(16.w), + child: ListView( + children: [ + _buildSectionTitle('1. General Terms'), + _buildSectionContent( + 'Welcome to Frontshop Emporium! We’re delighted to have you here. By accessing or using our platform, ' + 'we kindly ask that you review and agree to our terms and conditions. These ensure a safe and seamless ' + 'experience for everyone. If you have any concerns or do not agree with these terms, we respect your ' + 'choice to refrain from using our platform. Thank you for understanding!', + ), + _buildSectionTitle('2. User Terms'), + _buildSubSectionTitle('Eligibility'), + _buildSectionContent( + '• Users must provide accurate and complete information during registration.', + ), + _buildSubSectionTitle('User Responsibilities'), + _buildSectionContent( + '• Ensure your account details are secure. You are responsible for all activities under your account.\n' + '• Use the platform in compliance with all applicable laws and regulations.\n' + '• Do not engage in fraudulent, abusive, or harmful activities, including posting inappropriate content ' + 'or exploiting platform features.', + ), + _buildSubSectionTitle('Order and Payment'), + _buildSectionContent( + '• Orders are confirmed only upon payment.\n' + '• Prices, discounts, and offers are subject to change without notice.', + ), + _buildSectionTitle('3. Vendor Terms'), + _buildSubSectionTitle('Registration and Eligibility'), + _buildSectionContent( + '• Vendors must provide valid business details and adhere to local commerce regulations.\n' + '• Vendors must be legally registered businesses and provide necessary documentation (e.g., business ' + 'licenses, tax identification). The Company reserves the right to approve or deny vendor applications.\n' + '• Both parties agree to keep proprietary information confidential. Vendor information will not be shared ' + 'without consent, except as required by law.', + ), + _buildSubSectionTitle('Vendor Responsibilities'), + _buildSectionContent( + '• Maintain accurate product descriptions, prices, and inventory levels.\n' + '• Ensure timely dispatch and delivery of products. Resolve user complaints promptly.\n' + '• Vendors must ensure that all products meet quality and safety standards.', + ), + _buildSectionTitle('4. Delivery Partner Terms'), + _buildSubSectionTitle('Eligibility'), + _buildSectionContent( + '• Delivery Partners must provide valid identification. Delivery Partners must be legally registered entities ' + 'or individuals with appropriate licenses and follow all traffic rules and regulations.', + ), + _buildSectionTitle('5. Privacy Policy'), + _buildSectionContent( + 'Frontshop Emporium is committed to protecting your privacy.\n' + '• We do not sell your data to third parties.\n' + '• Data may be shared with service providers, delivery partners, and legal authorities as necessary.', + ), + _buildSectionTitle('6. Refund Policy'), + _buildSectionContent( + '• Products are eligible for a refund if they are defective, damaged during delivery, or not as described.\n' + '• Requests must be initiated within 7 days of receiving the product.', + ), + _buildSectionTitle('7. Support Policy'), + _buildSectionContent( + '• For assistance, contact our support team via email or live chat available on the platform.\n' + '• Support hours: Monday to Friday, 9 AM – 6 PM (local time).', + ), + SizedBox(height: 20), + + Gap(20.h), + + // Continue Button + Gap(20.h), + ], + ), + ), + ); + } +} + +Widget _buildSectionTitle(String title) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 8.0), + child: Text( + title, + style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + ); +} + +Widget _buildSubSectionTitle(String title) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 4.0), + child: Text( + title, + style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600), + ), + ); +} + +Widget _buildSectionContent(String content) { + return Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + content, + style: TextStyle(fontSize: 14, height: 1.5), + ), + ); +} diff --git a/lib/src/ui/widgets/custom_text_field.dart b/lib/src/ui/widgets/custom_text_field.dart new file mode 100644 index 0000000..3c97262 --- /dev/null +++ b/lib/src/ui/widgets/custom_text_field.dart @@ -0,0 +1,155 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:grocery_app/utils/extensions/extensions.dart'; + +class CustomTextField extends StatelessWidget { + final TextEditingController? controller; + final double? height; + final double? width; + final Widget? prefix; + final Widget? suffix; + final String? hintText; + final String? labelText; + final TextInputType? keyBoardType; + final String? Function(String?)? validator; + final bool obscureText; + final TextInputAction? textInputAction; + final bool readOnly; + final bool isEnabledBorder; + final void Function(String)? onChanged; + final void Function(String)? onFieldSubmitted; + final void Function()? onTapOutside; + final void Function()? onTap; + final TextStyle? textStyle; + final TextStyle? hintStyle; + final double? borderRadius; + final Color? fillColor; + final Color? borderColor; + final InputBorder? enabledBorder; + final int? maxLines; + final int? maxLength; + final List? inputFormatters; + final TextAlign textAlign; + final double? horizontalContentPadding; + final double? verticalContentPadding; + final FocusNode? focusNode; + final Function()? functionCallOutsideOfTextfield; + final Widget? counterWidget; + + const CustomTextField({ + Key? key, + this.controller, + this.hintText, + this.height, + this.width, + this.prefix, + this.suffix, + this.validator, + this.labelText, + this.keyBoardType, + this.obscureText = false, + this.onTapOutside, + this.textInputAction = TextInputAction.next, + this.readOnly = false, + this.onChanged, + this.onFieldSubmitted, + this.onTap, + this.textStyle, + this.hintStyle, + this.borderRadius, + this.fillColor, + this.borderColor, + this.enabledBorder, + this.isEnabledBorder = false, + this.maxLines = 1, + this.maxLength, + this.inputFormatters, + this.textAlign = TextAlign.start, + this.horizontalContentPadding, + this.verticalContentPadding, + this.focusNode, + this.functionCallOutsideOfTextfield, + this.counterWidget, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return TextFormField( + focusNode: focusNode ?? FocusNode(), + textAlign: textAlign, + maxLines: maxLines, + maxLength: maxLength, + scrollPhysics: AlwaysScrollableScrollPhysics(), + scrollPadding: EdgeInsets.only( + bottom: MediaQuery.of(context).viewInsets.bottom + 180), + readOnly: readOnly, + inputFormatters: inputFormatters, + validator: validator, + controller: controller, + style: textStyle ?? context.bodyTxtStyle, + obscureText: obscureText, + keyboardType: keyBoardType, + decoration: InputDecoration( + counter: counterWidget, + hintStyle: hintStyle ?? + context.subTitleTxtStyleblack.copyWith( + color: context.appColor.lightBlackColor, + ), + labelStyle: context.subTitleTxtStyleblack + .copyWith(color: context.appColor.blackColor, fontSize: 16.sp), + contentPadding: EdgeInsets.symmetric( + horizontal: horizontalContentPadding ?? 10.w, + vertical: verticalContentPadding ?? 10.h, + ), + fillColor: fillColor ?? context.appColor.greyColor200, + filled: true, + labelText: labelText, + hintText: hintText, + prefixIcon: prefix, + suffixIcon: suffix, + border: isEnabledBorder + ? enabledBorder + : OutlineInputBorder( + borderSide: BorderSide( + color: borderColor ?? context.appColor.greyColor400, + ), + borderRadius: BorderRadius.circular(borderRadius ?? 4.r), + ), + enabledBorder: isEnabledBorder + ? enabledBorder ?? + UnderlineInputBorder( + borderSide: BorderSide( + color: borderColor ?? context.appColor.greyColor400, + ), + ) + : OutlineInputBorder( + borderSide: BorderSide( + color: borderColor ?? context.appColor.greyColor400, + ), + borderRadius: BorderRadius.circular(borderRadius ?? 4.r), + ), + focusedBorder: isEnabledBorder + ? UnderlineInputBorder( + borderSide: BorderSide( + color: borderColor ?? context.appColor.greyColor400, + ), + ) + : OutlineInputBorder( + borderSide: BorderSide( + color: borderColor ?? context.appColor.greyColor400, + ), + borderRadius: BorderRadius.circular(borderRadius ?? 4.r), + ), + ), + textInputAction: textInputAction, + onTapOutside: (value) { + onTapOutside ?? (); + FocusScope.of(context).unfocus(); + }, + onChanged: onChanged, + onFieldSubmitted: onFieldSubmitted, + onTap: onTap, + ); + } +} diff --git a/pubspec.lock b/pubspec.lock index a814223..8f08b68 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -25,6 +25,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.6.0" + art_sweetalert: + dependency: "direct main" + description: + name: art_sweetalert + sha256: "64dd68fc8648197e2b8201b3d28e2e9ec41c0883a05e18be21386ec6435d2b54" + url: "https://pub.dev" + source: hosted + version: "0.0.5" async: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 7f10743..126585b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -33,6 +33,7 @@ dependencies: flutter_rating_stars: ^1.1.0 url_launcher: ^6.3.1 skeletonizer: ^1.4.3 + art_sweetalert: ^0.0.5