productdetails
This commit is contained in:
@@ -3,793 +3,793 @@
|
||||
"packages": [
|
||||
{
|
||||
"name": "animation_list",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/animation_list-3.1.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/animation_list-3.1.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "animations",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/animations-2.0.11",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/animations-2.0.11",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.2"
|
||||
},
|
||||
{
|
||||
"name": "args",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/args-2.6.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/args-2.6.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.3"
|
||||
},
|
||||
{
|
||||
"name": "async",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/async-2.11.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/async-2.11.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.18"
|
||||
},
|
||||
{
|
||||
"name": "back_button_interceptor",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/back_button_interceptor-8.0.3",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/back_button_interceptor-8.0.3",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.2"
|
||||
},
|
||||
{
|
||||
"name": "boolean_selector",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/boolean_selector-2.1.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/boolean_selector-2.1.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.17"
|
||||
},
|
||||
{
|
||||
"name": "cached_network_image",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/cached_network_image-3.3.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/cached_network_image-3.3.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "cached_network_image_platform_interface",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/cached_network_image_platform_interface-4.0.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/cached_network_image_platform_interface-4.0.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "cached_network_image_web",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/cached_network_image_web-1.2.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/cached_network_image_web-1.2.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "carousel_slider",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/carousel_slider-5.0.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/carousel_slider-5.0.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "characters",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/characters-1.3.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/characters-1.3.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "clock",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/clock-1.1.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/clock-1.1.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "collection",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/collection-1.18.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/collection-1.18.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.18"
|
||||
},
|
||||
{
|
||||
"name": "connectivity_plus",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.2",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.2"
|
||||
},
|
||||
{
|
||||
"name": "connectivity_plus_platform_interface",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/connectivity_plus_platform_interface-2.0.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/connectivity_plus_platform_interface-2.0.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.18"
|
||||
},
|
||||
{
|
||||
"name": "crypto",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/crypto-3.0.6",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/crypto-3.0.6",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "csslib",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/csslib-1.0.2",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/csslib-1.0.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.1"
|
||||
},
|
||||
{
|
||||
"name": "cupertino_icons",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.1"
|
||||
},
|
||||
{
|
||||
"name": "dbus",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/dbus-0.7.11",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/dbus-0.7.11",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.17"
|
||||
},
|
||||
{
|
||||
"name": "dio",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/dio-5.7.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/dio-5.7.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.18"
|
||||
},
|
||||
{
|
||||
"name": "dio_web_adapter",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/dio_web_adapter-2.0.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/dio_web_adapter-2.0.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.3"
|
||||
},
|
||||
{
|
||||
"name": "dots_indicator",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/dots_indicator-3.0.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/dots_indicator-3.0.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "dotted_border",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/dotted_border-2.1.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/dotted_border-2.1.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "fake_async",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/fake_async-1.3.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/fake_async-1.3.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "ffi",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/ffi-2.1.3",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/ffi-2.1.3",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.3"
|
||||
},
|
||||
{
|
||||
"name": "file",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/file-7.0.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/file-7.0.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "fixnum",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/fixnum-1.1.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/fixnum-1.1.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.1"
|
||||
},
|
||||
{
|
||||
"name": "flutter",
|
||||
"rootUri": "file:///Users/apple/Documents/development/flutter/packages/flutter",
|
||||
"rootUri": "file:///Users/rajeevsingh/Documents/allSoftwares/flutter/packages/flutter",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.3"
|
||||
},
|
||||
{
|
||||
"name": "flutter_animate",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_animate-4.5.2",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_animate-4.5.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.17"
|
||||
},
|
||||
{
|
||||
"name": "flutter_cache_manager",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_cache_manager-3.3.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_cache_manager-3.3.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.17"
|
||||
},
|
||||
{
|
||||
"name": "flutter_google_places",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_google_places-0.3.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_google_places-0.3.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "flutter_lints",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_lints-3.0.2",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_lints-3.0.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.1"
|
||||
},
|
||||
{
|
||||
"name": "flutter_plugin_android_lifecycle",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.22",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.22",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "flutter_rating_stars",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_rating_stars-1.1.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_rating_stars-1.1.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.2"
|
||||
},
|
||||
{
|
||||
"name": "flutter_screenutil",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_screenutil-5.9.3",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_screenutil-5.9.3",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.17"
|
||||
},
|
||||
{
|
||||
"name": "flutter_shaders",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_shaders-0.1.3",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_shaders-0.1.3",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.19"
|
||||
},
|
||||
{
|
||||
"name": "flutter_svg",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_svg-2.0.9",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_svg-2.0.9",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.19"
|
||||
},
|
||||
{
|
||||
"name": "flutter_test",
|
||||
"rootUri": "file:///Users/apple/Documents/development/flutter/packages/flutter_test",
|
||||
"rootUri": "file:///Users/rajeevsingh/Documents/allSoftwares/flutter/packages/flutter_test",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.3"
|
||||
},
|
||||
{
|
||||
"name": "flutter_toggle_tab",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_toggle_tab-1.5.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_toggle_tab-1.5.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "flutter_web_plugins",
|
||||
"rootUri": "file:///Users/apple/Documents/development/flutter/packages/flutter_web_plugins",
|
||||
"rootUri": "file:///Users/rajeevsingh/Documents/allSoftwares/flutter/packages/flutter_web_plugins",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.2"
|
||||
},
|
||||
{
|
||||
"name": "fluttertoast",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/fluttertoast-8.2.10",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/fluttertoast-8.2.10",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "fpdart",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/fpdart-1.1.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/fpdart-1.1.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "gap",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/gap-3.0.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/gap-3.0.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "geocoding",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/geocoding-3.0.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geocoding-3.0.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.17"
|
||||
},
|
||||
{
|
||||
"name": "geocoding_android",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/geocoding_android-3.3.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geocoding_android-3.3.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.17"
|
||||
},
|
||||
{
|
||||
"name": "geocoding_ios",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/geocoding_ios-3.0.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geocoding_ios-3.0.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.17"
|
||||
},
|
||||
{
|
||||
"name": "geocoding_platform_interface",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/geocoding_platform_interface-3.2.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geocoding_platform_interface-3.2.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "geolocator",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/geolocator-13.0.2",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator-13.0.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.15"
|
||||
},
|
||||
{
|
||||
"name": "geolocator_android",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/geolocator_android-4.6.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_android-4.6.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.15"
|
||||
},
|
||||
{
|
||||
"name": "geolocator_apple",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/geolocator_apple-2.3.8+1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_apple-2.3.8+1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.15"
|
||||
},
|
||||
{
|
||||
"name": "geolocator_platform_interface",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/geolocator_platform_interface-4.2.4",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_platform_interface-4.2.4",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.15"
|
||||
},
|
||||
{
|
||||
"name": "geolocator_web",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/geolocator_web-4.1.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_web-4.1.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "geolocator_windows",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/geolocator_windows-0.2.3",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_windows-0.2.3",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.15"
|
||||
},
|
||||
{
|
||||
"name": "get_it",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/get_it-8.0.3",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/get_it-8.0.3",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "go_router",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/go_router-14.7.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/go_router-14.7.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "google_api_headers",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/google_api_headers-1.6.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_api_headers-1.6.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "google_fonts",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/google_fonts-4.0.4",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_fonts-4.0.4",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.14"
|
||||
},
|
||||
{
|
||||
"name": "google_maps",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/google_maps-8.1.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps-8.1.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "google_maps_flutter",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter-2.10.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter-2.10.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "google_maps_flutter_android",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_android-2.14.7",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter_android-2.14.7",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "google_maps_flutter_ios",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.13.2",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.13.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.3"
|
||||
},
|
||||
{
|
||||
"name": "google_maps_flutter_platform_interface",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_platform_interface-2.9.5",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter_platform_interface-2.9.5",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.3"
|
||||
},
|
||||
{
|
||||
"name": "google_maps_flutter_web",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_web-0.5.10",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter_web-0.5.10",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.3"
|
||||
},
|
||||
{
|
||||
"name": "google_maps_webservice",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/google_maps_webservice-0.0.20-nullsafety.5",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_webservice-0.0.20-nullsafety.5",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "html",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/html-0.15.5",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/html-0.15.5",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.2"
|
||||
},
|
||||
{
|
||||
"name": "http",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/http-0.13.6",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/http-0.13.6",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.19"
|
||||
},
|
||||
{
|
||||
"name": "http_parser",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/http_parser-4.0.2",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/http_parser-4.0.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "intl",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/intl-0.19.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/intl-0.19.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "json_annotation",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/json_annotation-4.9.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/json_annotation-4.9.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "leak_tracker",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/leak_tracker-10.0.5",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/leak_tracker-10.0.4",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.2"
|
||||
},
|
||||
{
|
||||
"name": "leak_tracker_flutter_testing",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.5",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.3",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.2"
|
||||
},
|
||||
{
|
||||
"name": "leak_tracker_testing",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.2"
|
||||
},
|
||||
{
|
||||
"name": "lints",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/lints-3.0.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/lints-3.0.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "loader_overlay",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/loader_overlay-4.0.4+1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/loader_overlay-4.0.4+1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "logging",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/logging-1.3.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/logging-1.3.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "matcher",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/matcher-0.12.16+1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/matcher-0.12.16+1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "material_color_utilities",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/material_color_utilities-0.11.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/material_color_utilities-0.8.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.17"
|
||||
},
|
||||
{
|
||||
"name": "material_design_icons_flutter",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/material_design_icons_flutter-7.0.7296",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/material_design_icons_flutter-7.0.7296",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "meta",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/meta-1.15.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/meta-1.12.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "nested",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/nested-1.0.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/nested-1.0.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "nm",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/nm-0.5.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/nm-0.5.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "octo_image",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/octo_image-2.1.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/octo_image-2.1.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "otp_text_field",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/otp_text_field-1.1.3",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/otp_text_field-1.1.3",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "package_info_plus",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.18"
|
||||
},
|
||||
{
|
||||
"name": "package_info_plus_platform_interface",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/package_info_plus_platform_interface-2.0.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/package_info_plus_platform_interface-2.0.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "path",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/path-1.9.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path-1.9.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "path_drawing",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/path_drawing-1.0.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_drawing-1.0.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "path_parsing",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/path_parsing-1.1.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_parsing-1.1.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.3"
|
||||
},
|
||||
{
|
||||
"name": "path_provider",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/path_provider-2.1.5",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider-2.1.5",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "path_provider_android",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/path_provider_android-2.2.10",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_android-2.2.10",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "path_provider_foundation",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.3"
|
||||
},
|
||||
{
|
||||
"name": "path_provider_linux",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.19"
|
||||
},
|
||||
{
|
||||
"name": "path_provider_platform_interface",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "path_provider_windows",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.2"
|
||||
},
|
||||
{
|
||||
"name": "petitparser",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/petitparser-6.0.2",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/petitparser-6.0.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.2"
|
||||
},
|
||||
{
|
||||
"name": "platform",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/platform-3.1.6",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/platform-3.1.6",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.2"
|
||||
},
|
||||
{
|
||||
"name": "plugin_platform_interface",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.8",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.8",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "pretty_dio_logger",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/pretty_dio_logger-1.4.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/pretty_dio_logger-1.4.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "provider",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/provider-6.1.2",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/provider-6.1.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "readmore",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/readmore-3.0.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/readmore-3.0.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "rxdart",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/rxdart-0.26.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/rxdart-0.26.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "sanitize_html",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/sanitize_html-2.1.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/sanitize_html-2.1.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "shared_preferences",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/shared_preferences-2.3.3",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences-2.3.3",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "shared_preferences_android",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_android-2.3.2",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_android-2.3.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "shared_preferences_foundation",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "shared_preferences_linux",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.3"
|
||||
},
|
||||
{
|
||||
"name": "shared_preferences_platform_interface",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_platform_interface-2.4.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_platform_interface-2.4.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.2"
|
||||
},
|
||||
{
|
||||
"name": "shared_preferences_web",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.2",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "shared_preferences_windows",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.3"
|
||||
},
|
||||
{
|
||||
"name": "sky_engine",
|
||||
"rootUri": "file:///Users/apple/Documents/development/flutter/bin/cache/pkg/sky_engine",
|
||||
"rootUri": "file:///Users/rajeevsingh/Documents/allSoftwares/flutter/bin/cache/pkg/sky_engine",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.2"
|
||||
},
|
||||
{
|
||||
"name": "source_span",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/source_span-1.10.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/source_span-1.10.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.18"
|
||||
},
|
||||
{
|
||||
"name": "sprintf",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/sprintf-7.0.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/sprintf-7.0.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "sqflite",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.3"
|
||||
},
|
||||
{
|
||||
"name": "sqflite_common",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/sqflite_common-2.5.4",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/sqflite_common-2.5.4",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.3"
|
||||
},
|
||||
{
|
||||
"name": "stack_trace",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/stack_trace-1.11.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/stack_trace-1.11.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.18"
|
||||
},
|
||||
{
|
||||
"name": "stream_channel",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/stream_channel-2.1.2",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/stream_channel-2.1.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.19"
|
||||
},
|
||||
{
|
||||
"name": "stream_transform",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/stream_transform-2.1.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/stream_transform-2.1.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.1"
|
||||
},
|
||||
{
|
||||
"name": "string_scanner",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/string_scanner-1.2.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/string_scanner-1.2.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.18"
|
||||
},
|
||||
{
|
||||
"name": "synchronized",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/synchronized-3.1.0+1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/synchronized-3.1.0+1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "term_glyph",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/term_glyph-1.2.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/term_glyph-1.2.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "test_api",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/test_api-0.7.2",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/test_api-0.7.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.2"
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "typed_data",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/typed_data-1.3.2",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/typed_data-1.3.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.17"
|
||||
},
|
||||
{
|
||||
"name": "uuid",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/uuid-4.5.1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/uuid-4.5.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "vector_graphics",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/vector_graphics-1.1.10+1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/vector_graphics-1.1.10+1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.17"
|
||||
},
|
||||
{
|
||||
"name": "vector_graphics_codec",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/vector_graphics_codec-1.1.10+1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/vector_graphics_codec-1.1.10+1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.17"
|
||||
},
|
||||
{
|
||||
"name": "vector_graphics_compiler",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/vector_graphics_compiler-1.1.10+1",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/vector_graphics_compiler-1.1.10+1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.19"
|
||||
},
|
||||
{
|
||||
"name": "vector_math",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/vector_math-2.1.4",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/vector_math-2.1.4",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.14"
|
||||
},
|
||||
{
|
||||
"name": "vm_service",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/vm_service-14.2.5",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/vm_service-14.2.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.3"
|
||||
},
|
||||
{
|
||||
"name": "web",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/web-1.1.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/web-1.1.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "win32",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/win32-5.5.4",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/win32-5.5.4",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "xdg_directories",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/xdg_directories-1.1.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/xdg_directories-1.1.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.3"
|
||||
},
|
||||
{
|
||||
"name": "xml",
|
||||
"rootUri": "file:///Users/apple/.pub-cache/hosted/pub.dev/xml-6.5.0",
|
||||
"rootUri": "file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/xml-6.5.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.2"
|
||||
},
|
||||
@@ -800,10 +800,10 @@
|
||||
"languageVersion": "3.4"
|
||||
}
|
||||
],
|
||||
"generated": "2025-01-30T19:18:01.029228Z",
|
||||
"generated": "2025-01-31T13:31:38.803389Z",
|
||||
"generator": "pub",
|
||||
"generatorVersion": "3.5.3",
|
||||
"flutterRoot": "file:///Users/apple/Documents/development/flutter",
|
||||
"flutterVersion": "3.24.3",
|
||||
"pubCache": "file:///Users/apple/.pub-cache"
|
||||
"generatorVersion": "3.4.4",
|
||||
"flutterRoot": "file:///Users/rajeevsingh/Documents/allSoftwares/flutter",
|
||||
"flutterVersion": "3.22.3",
|
||||
"pubCache": "file:///Users/rajeevsingh/.pub-cache"
|
||||
}
|
||||
|
||||
@@ -1,533 +1,533 @@
|
||||
animation_list
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/animation_list-3.1.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/animation_list-3.1.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/animation_list-3.1.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/animation_list-3.1.0/lib/
|
||||
animations
|
||||
3.2
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/animations-2.0.11/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/animations-2.0.11/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/animations-2.0.11/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/animations-2.0.11/lib/
|
||||
args
|
||||
3.3
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/args-2.6.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/args-2.6.0/lib/
|
||||
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/
|
||||
async
|
||||
2.18
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/async-2.11.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/async-2.11.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/async-2.11.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/async-2.11.0/lib/
|
||||
back_button_interceptor
|
||||
3.2
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/back_button_interceptor-8.0.3/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/back_button_interceptor-8.0.3/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/back_button_interceptor-8.0.3/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/back_button_interceptor-8.0.3/lib/
|
||||
boolean_selector
|
||||
2.17
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/boolean_selector-2.1.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/boolean_selector-2.1.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/boolean_selector-2.1.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/boolean_selector-2.1.1/lib/
|
||||
cached_network_image
|
||||
3.0
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/cached_network_image-3.3.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/cached_network_image-3.3.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/cached_network_image-3.3.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/cached_network_image-3.3.1/lib/
|
||||
cached_network_image_platform_interface
|
||||
3.0
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/cached_network_image_platform_interface-4.0.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/cached_network_image_platform_interface-4.0.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/cached_network_image_platform_interface-4.0.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/cached_network_image_platform_interface-4.0.0/lib/
|
||||
cached_network_image_web
|
||||
3.0
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/cached_network_image_web-1.2.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/cached_network_image_web-1.2.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/cached_network_image_web-1.2.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/cached_network_image_web-1.2.0/lib/
|
||||
carousel_slider
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/carousel_slider-5.0.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/carousel_slider-5.0.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/carousel_slider-5.0.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/carousel_slider-5.0.0/lib/
|
||||
characters
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/characters-1.3.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/characters-1.3.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/characters-1.3.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/characters-1.3.0/lib/
|
||||
clock
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/clock-1.1.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/clock-1.1.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/clock-1.1.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/clock-1.1.1/lib/
|
||||
collection
|
||||
2.18
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/collection-1.18.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/collection-1.18.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/collection-1.18.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/collection-1.18.0/lib/
|
||||
connectivity_plus
|
||||
3.2
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.2/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.2/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.2/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.2/lib/
|
||||
connectivity_plus_platform_interface
|
||||
2.18
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/connectivity_plus_platform_interface-2.0.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/connectivity_plus_platform_interface-2.0.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/connectivity_plus_platform_interface-2.0.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/connectivity_plus_platform_interface-2.0.1/lib/
|
||||
crypto
|
||||
3.4
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/crypto-3.0.6/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/crypto-3.0.6/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/crypto-3.0.6/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/crypto-3.0.6/lib/
|
||||
csslib
|
||||
3.1
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/csslib-1.0.2/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/csslib-1.0.2/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/csslib-1.0.2/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/csslib-1.0.2/lib/
|
||||
cupertino_icons
|
||||
3.1
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8/lib/
|
||||
dbus
|
||||
2.17
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/dbus-0.7.11/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/dbus-0.7.11/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/dbus-0.7.11/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/dbus-0.7.11/lib/
|
||||
dio
|
||||
2.18
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/dio-5.7.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/dio-5.7.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/dio-5.7.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/dio-5.7.0/lib/
|
||||
dio_web_adapter
|
||||
3.3
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/dio_web_adapter-2.0.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/dio_web_adapter-2.0.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/dio_web_adapter-2.0.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/dio_web_adapter-2.0.0/lib/
|
||||
dots_indicator
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/dots_indicator-3.0.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/dots_indicator-3.0.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/dots_indicator-3.0.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/dots_indicator-3.0.0/lib/
|
||||
dotted_border
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/dotted_border-2.1.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/dotted_border-2.1.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/dotted_border-2.1.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/dotted_border-2.1.0/lib/
|
||||
fake_async
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/fake_async-1.3.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/fake_async-1.3.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/fake_async-1.3.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/fake_async-1.3.1/lib/
|
||||
ffi
|
||||
3.3
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/ffi-2.1.3/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/ffi-2.1.3/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/ffi-2.1.3/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/ffi-2.1.3/lib/
|
||||
file
|
||||
3.0
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/file-7.0.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/file-7.0.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/file-7.0.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/file-7.0.1/lib/
|
||||
fixnum
|
||||
3.1
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/fixnum-1.1.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/fixnum-1.1.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/fixnum-1.1.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/fixnum-1.1.1/lib/
|
||||
flutter_animate
|
||||
2.17
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_animate-4.5.2/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_animate-4.5.2/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_animate-4.5.2/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_animate-4.5.2/lib/
|
||||
flutter_cache_manager
|
||||
2.17
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_cache_manager-3.3.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_cache_manager-3.3.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_cache_manager-3.3.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_cache_manager-3.3.1/lib/
|
||||
flutter_google_places
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_google_places-0.3.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_google_places-0.3.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_google_places-0.3.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_google_places-0.3.0/lib/
|
||||
flutter_lints
|
||||
3.1
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_lints-3.0.2/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_lints-3.0.2/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_lints-3.0.2/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_lints-3.0.2/lib/
|
||||
flutter_plugin_android_lifecycle
|
||||
3.4
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.22/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.22/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.22/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.22/lib/
|
||||
flutter_rating_stars
|
||||
3.2
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_rating_stars-1.1.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_rating_stars-1.1.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_rating_stars-1.1.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_rating_stars-1.1.0/lib/
|
||||
flutter_screenutil
|
||||
2.17
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_screenutil-5.9.3/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_screenutil-5.9.3/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_screenutil-5.9.3/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_screenutil-5.9.3/lib/
|
||||
flutter_shaders
|
||||
2.19
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_shaders-0.1.3/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_shaders-0.1.3/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_shaders-0.1.3/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_shaders-0.1.3/lib/
|
||||
flutter_svg
|
||||
2.19
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_svg-2.0.9/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_svg-2.0.9/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_svg-2.0.9/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_svg-2.0.9/lib/
|
||||
flutter_toggle_tab
|
||||
3.0
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_toggle_tab-1.5.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/flutter_toggle_tab-1.5.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_toggle_tab-1.5.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_toggle_tab-1.5.1/lib/
|
||||
fluttertoast
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/fluttertoast-8.2.10/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/fluttertoast-8.2.10/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/fluttertoast-8.2.10/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/fluttertoast-8.2.10/lib/
|
||||
fpdart
|
||||
3.0
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/fpdart-1.1.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/fpdart-1.1.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/fpdart-1.1.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/fpdart-1.1.1/lib/
|
||||
gap
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/gap-3.0.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/gap-3.0.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/gap-3.0.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/gap-3.0.1/lib/
|
||||
geocoding
|
||||
2.17
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/geocoding-3.0.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/geocoding-3.0.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geocoding-3.0.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geocoding-3.0.0/lib/
|
||||
geocoding_android
|
||||
2.17
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/geocoding_android-3.3.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/geocoding_android-3.3.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geocoding_android-3.3.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geocoding_android-3.3.1/lib/
|
||||
geocoding_ios
|
||||
2.17
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/geocoding_ios-3.0.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/geocoding_ios-3.0.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geocoding_ios-3.0.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geocoding_ios-3.0.1/lib/
|
||||
geocoding_platform_interface
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/geocoding_platform_interface-3.2.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/geocoding_platform_interface-3.2.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geocoding_platform_interface-3.2.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geocoding_platform_interface-3.2.0/lib/
|
||||
geolocator
|
||||
2.15
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/geolocator-13.0.2/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/geolocator-13.0.2/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator-13.0.2/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator-13.0.2/lib/
|
||||
geolocator_android
|
||||
2.15
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/geolocator_android-4.6.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/geolocator_android-4.6.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_android-4.6.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_android-4.6.1/lib/
|
||||
geolocator_apple
|
||||
2.15
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/geolocator_apple-2.3.8+1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/geolocator_apple-2.3.8+1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_apple-2.3.8+1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_apple-2.3.8+1/lib/
|
||||
geolocator_platform_interface
|
||||
2.15
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/geolocator_platform_interface-4.2.4/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/geolocator_platform_interface-4.2.4/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_platform_interface-4.2.4/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_platform_interface-4.2.4/lib/
|
||||
geolocator_web
|
||||
3.4
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/geolocator_web-4.1.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/geolocator_web-4.1.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_web-4.1.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_web-4.1.1/lib/
|
||||
geolocator_windows
|
||||
2.15
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/geolocator_windows-0.2.3/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/geolocator_windows-0.2.3/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_windows-0.2.3/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_windows-0.2.3/lib/
|
||||
get_it
|
||||
3.0
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/get_it-8.0.3/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/get_it-8.0.3/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/get_it-8.0.3/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/get_it-8.0.3/lib/
|
||||
go_router
|
||||
3.4
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/go_router-14.7.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/go_router-14.7.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/go_router-14.7.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/go_router-14.7.1/lib/
|
||||
google_api_headers
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/google_api_headers-1.6.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/google_api_headers-1.6.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_api_headers-1.6.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_api_headers-1.6.0/lib/
|
||||
google_fonts
|
||||
2.14
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/google_fonts-4.0.4/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/google_fonts-4.0.4/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_fonts-4.0.4/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_fonts-4.0.4/lib/
|
||||
google_maps
|
||||
3.4
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/google_maps-8.1.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/google_maps-8.1.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps-8.1.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps-8.1.1/lib/
|
||||
google_maps_flutter
|
||||
3.4
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter-2.10.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter-2.10.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter-2.10.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter-2.10.0/lib/
|
||||
google_maps_flutter_android
|
||||
3.4
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_android-2.14.7/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_android-2.14.7/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter_android-2.14.7/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter_android-2.14.7/lib/
|
||||
google_maps_flutter_ios
|
||||
3.3
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.13.2/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.13.2/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.13.2/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.13.2/lib/
|
||||
google_maps_flutter_platform_interface
|
||||
3.3
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_platform_interface-2.9.5/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_platform_interface-2.9.5/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter_platform_interface-2.9.5/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter_platform_interface-2.9.5/lib/
|
||||
google_maps_flutter_web
|
||||
3.3
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_web-0.5.10/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_web-0.5.10/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter_web-0.5.10/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter_web-0.5.10/lib/
|
||||
google_maps_webservice
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/google_maps_webservice-0.0.20-nullsafety.5/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/google_maps_webservice-0.0.20-nullsafety.5/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_webservice-0.0.20-nullsafety.5/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_webservice-0.0.20-nullsafety.5/lib/
|
||||
html
|
||||
3.2
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/html-0.15.5/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/html-0.15.5/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/html-0.15.5/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/html-0.15.5/lib/
|
||||
http
|
||||
2.19
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/http-0.13.6/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/http-0.13.6/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/http-0.13.6/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/http-0.13.6/lib/
|
||||
http_parser
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/http_parser-4.0.2/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/http_parser-4.0.2/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/http_parser-4.0.2/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/http_parser-4.0.2/lib/
|
||||
intl
|
||||
3.0
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/intl-0.19.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/intl-0.19.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/intl-0.19.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/intl-0.19.0/lib/
|
||||
json_annotation
|
||||
3.0
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/json_annotation-4.9.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/json_annotation-4.9.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/json_annotation-4.9.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/json_annotation-4.9.0/lib/
|
||||
leak_tracker
|
||||
3.2
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/leak_tracker-10.0.5/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/leak_tracker-10.0.5/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/leak_tracker-10.0.4/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/leak_tracker-10.0.4/lib/
|
||||
leak_tracker_flutter_testing
|
||||
3.2
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.5/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.5/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.3/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.3/lib/
|
||||
leak_tracker_testing
|
||||
3.2
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.1/lib/
|
||||
lints
|
||||
3.0
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/lints-3.0.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/lints-3.0.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/lints-3.0.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/lints-3.0.0/lib/
|
||||
loader_overlay
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/loader_overlay-4.0.4+1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/loader_overlay-4.0.4+1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/loader_overlay-4.0.4+1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/loader_overlay-4.0.4+1/lib/
|
||||
logging
|
||||
3.4
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/logging-1.3.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/logging-1.3.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/logging-1.3.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/logging-1.3.0/lib/
|
||||
matcher
|
||||
3.0
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/matcher-0.12.16+1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/matcher-0.12.16+1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/matcher-0.12.16+1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/matcher-0.12.16+1/lib/
|
||||
material_color_utilities
|
||||
2.17
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/material_color_utilities-0.11.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/material_color_utilities-0.11.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/material_color_utilities-0.8.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/material_color_utilities-0.8.0/lib/
|
||||
material_design_icons_flutter
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/material_design_icons_flutter-7.0.7296/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/material_design_icons_flutter-7.0.7296/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/material_design_icons_flutter-7.0.7296/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/material_design_icons_flutter-7.0.7296/lib/
|
||||
meta
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/meta-1.15.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/meta-1.15.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/meta-1.12.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/meta-1.12.0/lib/
|
||||
nested
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/nested-1.0.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/nested-1.0.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/nested-1.0.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/nested-1.0.0/lib/
|
||||
nm
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/nm-0.5.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/nm-0.5.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/nm-0.5.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/nm-0.5.0/lib/
|
||||
octo_image
|
||||
3.0
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/octo_image-2.1.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/octo_image-2.1.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/octo_image-2.1.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/octo_image-2.1.0/lib/
|
||||
otp_text_field
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/otp_text_field-1.1.3/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/otp_text_field-1.1.3/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/otp_text_field-1.1.3/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/otp_text_field-1.1.3/lib/
|
||||
package_info_plus
|
||||
2.18
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/lib/
|
||||
package_info_plus_platform_interface
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/package_info_plus_platform_interface-2.0.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/package_info_plus_platform_interface-2.0.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/package_info_plus_platform_interface-2.0.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/package_info_plus_platform_interface-2.0.1/lib/
|
||||
path
|
||||
3.0
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/path-1.9.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/path-1.9.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path-1.9.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path-1.9.0/lib/
|
||||
path_drawing
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/path_drawing-1.0.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/path_drawing-1.0.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_drawing-1.0.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_drawing-1.0.1/lib/
|
||||
path_parsing
|
||||
3.3
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/path_parsing-1.1.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/path_parsing-1.1.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_parsing-1.1.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_parsing-1.1.0/lib/
|
||||
path_provider
|
||||
3.4
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/path_provider-2.1.5/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/path_provider-2.1.5/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider-2.1.5/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider-2.1.5/lib/
|
||||
path_provider_android
|
||||
3.4
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/path_provider_android-2.2.10/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/path_provider_android-2.2.10/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_android-2.2.10/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_android-2.2.10/lib/
|
||||
path_provider_foundation
|
||||
3.3
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/lib/
|
||||
path_provider_linux
|
||||
2.19
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/lib/
|
||||
path_provider_platform_interface
|
||||
3.0
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2/lib/
|
||||
path_provider_windows
|
||||
3.2
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/lib/
|
||||
petitparser
|
||||
3.2
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/petitparser-6.0.2/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/petitparser-6.0.2/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/petitparser-6.0.2/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/petitparser-6.0.2/lib/
|
||||
platform
|
||||
3.2
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/platform-3.1.6/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/platform-3.1.6/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/platform-3.1.6/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/platform-3.1.6/lib/
|
||||
plugin_platform_interface
|
||||
3.0
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.8/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.8/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.8/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.8/lib/
|
||||
pretty_dio_logger
|
||||
3.0
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/pretty_dio_logger-1.4.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/pretty_dio_logger-1.4.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/pretty_dio_logger-1.4.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/pretty_dio_logger-1.4.0/lib/
|
||||
provider
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/provider-6.1.2/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/provider-6.1.2/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/provider-6.1.2/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/provider-6.1.2/lib/
|
||||
readmore
|
||||
3.0
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/readmore-3.0.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/readmore-3.0.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/readmore-3.0.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/readmore-3.0.0/lib/
|
||||
rxdart
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/rxdart-0.26.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/rxdart-0.26.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/rxdart-0.26.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/rxdart-0.26.0/lib/
|
||||
sanitize_html
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/sanitize_html-2.1.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/sanitize_html-2.1.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/sanitize_html-2.1.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/sanitize_html-2.1.0/lib/
|
||||
shared_preferences
|
||||
3.4
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/shared_preferences-2.3.3/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/shared_preferences-2.3.3/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences-2.3.3/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences-2.3.3/lib/
|
||||
shared_preferences_android
|
||||
3.4
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_android-2.3.2/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_android-2.3.2/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_android-2.3.2/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_android-2.3.2/lib/
|
||||
shared_preferences_foundation
|
||||
3.4
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/lib/
|
||||
shared_preferences_linux
|
||||
3.3
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1/lib/
|
||||
shared_preferences_platform_interface
|
||||
3.2
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_platform_interface-2.4.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_platform_interface-2.4.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_platform_interface-2.4.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_platform_interface-2.4.1/lib/
|
||||
shared_preferences_web
|
||||
3.4
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.2/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.2/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.2/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.2/lib/
|
||||
shared_preferences_windows
|
||||
3.3
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/lib/
|
||||
source_span
|
||||
2.18
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/source_span-1.10.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/source_span-1.10.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/source_span-1.10.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/source_span-1.10.0/lib/
|
||||
sprintf
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/sprintf-7.0.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/sprintf-7.0.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/sprintf-7.0.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/sprintf-7.0.0/lib/
|
||||
sqflite
|
||||
3.3
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1/lib/
|
||||
sqflite_common
|
||||
3.3
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/sqflite_common-2.5.4/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/sqflite_common-2.5.4/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/sqflite_common-2.5.4/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/sqflite_common-2.5.4/lib/
|
||||
stack_trace
|
||||
2.18
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/stack_trace-1.11.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/stack_trace-1.11.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/stack_trace-1.11.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/stack_trace-1.11.1/lib/
|
||||
stream_channel
|
||||
2.19
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/stream_channel-2.1.2/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/stream_channel-2.1.2/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/stream_channel-2.1.2/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/stream_channel-2.1.2/lib/
|
||||
stream_transform
|
||||
3.1
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/stream_transform-2.1.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/stream_transform-2.1.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/stream_transform-2.1.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/stream_transform-2.1.1/lib/
|
||||
string_scanner
|
||||
2.18
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/string_scanner-1.2.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/string_scanner-1.2.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/string_scanner-1.2.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/string_scanner-1.2.0/lib/
|
||||
synchronized
|
||||
3.0
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/synchronized-3.1.0+1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/synchronized-3.1.0+1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/synchronized-3.1.0+1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/synchronized-3.1.0+1/lib/
|
||||
term_glyph
|
||||
2.12
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/term_glyph-1.2.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/term_glyph-1.2.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/term_glyph-1.2.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/term_glyph-1.2.1/lib/
|
||||
test_api
|
||||
3.2
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/test_api-0.7.2/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/test_api-0.7.2/lib/
|
||||
3.0
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/test_api-0.7.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/test_api-0.7.0/lib/
|
||||
typed_data
|
||||
2.17
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/typed_data-1.3.2/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/typed_data-1.3.2/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/typed_data-1.3.2/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/typed_data-1.3.2/lib/
|
||||
uuid
|
||||
3.0
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/uuid-4.5.1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/uuid-4.5.1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/uuid-4.5.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/uuid-4.5.1/lib/
|
||||
vector_graphics
|
||||
2.17
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/vector_graphics-1.1.10+1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/vector_graphics-1.1.10+1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/vector_graphics-1.1.10+1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/vector_graphics-1.1.10+1/lib/
|
||||
vector_graphics_codec
|
||||
2.17
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/vector_graphics_codec-1.1.10+1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/vector_graphics_codec-1.1.10+1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/vector_graphics_codec-1.1.10+1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/vector_graphics_codec-1.1.10+1/lib/
|
||||
vector_graphics_compiler
|
||||
2.19
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/vector_graphics_compiler-1.1.10+1/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/vector_graphics_compiler-1.1.10+1/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/vector_graphics_compiler-1.1.10+1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/vector_graphics_compiler-1.1.10+1/lib/
|
||||
vector_math
|
||||
2.14
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/vector_math-2.1.4/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/vector_math-2.1.4/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/vector_math-2.1.4/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/vector_math-2.1.4/lib/
|
||||
vm_service
|
||||
3.3
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/vm_service-14.2.5/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/vm_service-14.2.5/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/vm_service-14.2.1/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/vm_service-14.2.1/lib/
|
||||
web
|
||||
3.4
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/web-1.1.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/web-1.1.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/web-1.1.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/web-1.1.0/lib/
|
||||
win32
|
||||
3.4
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/win32-5.5.4/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/win32-5.5.4/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/win32-5.5.4/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/win32-5.5.4/lib/
|
||||
xdg_directories
|
||||
3.3
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/xdg_directories-1.1.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/xdg_directories-1.1.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/xdg_directories-1.1.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/xdg_directories-1.1.0/lib/
|
||||
xml
|
||||
3.2
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/xml-6.5.0/
|
||||
file:///Users/apple/.pub-cache/hosted/pub.dev/xml-6.5.0/lib/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/xml-6.5.0/
|
||||
file:///Users/rajeevsingh/.pub-cache/hosted/pub.dev/xml-6.5.0/lib/
|
||||
grocery_app
|
||||
3.4
|
||||
file:///Users/apple/Documents/Allflutter%20/freelancing/groceryApp/
|
||||
file:///Users/apple/Documents/Allflutter%20/freelancing/groceryApp/lib/
|
||||
file:///Users/rajeevsingh/Documents/FlutterProject/freelanceing/groceryApp/
|
||||
file:///Users/rajeevsingh/Documents/FlutterProject/freelanceing/groceryApp/lib/
|
||||
sky_engine
|
||||
3.2
|
||||
file:///Users/apple/Documents/development/flutter/bin/cache/pkg/sky_engine/
|
||||
file:///Users/apple/Documents/development/flutter/bin/cache/pkg/sky_engine/lib/
|
||||
file:///Users/rajeevsingh/Documents/allSoftwares/flutter/bin/cache/pkg/sky_engine/
|
||||
file:///Users/rajeevsingh/Documents/allSoftwares/flutter/bin/cache/pkg/sky_engine/lib/
|
||||
flutter
|
||||
3.3
|
||||
file:///Users/apple/Documents/development/flutter/packages/flutter/
|
||||
file:///Users/apple/Documents/development/flutter/packages/flutter/lib/
|
||||
file:///Users/rajeevsingh/Documents/allSoftwares/flutter/packages/flutter/
|
||||
file:///Users/rajeevsingh/Documents/allSoftwares/flutter/packages/flutter/lib/
|
||||
flutter_test
|
||||
3.3
|
||||
file:///Users/apple/Documents/development/flutter/packages/flutter_test/
|
||||
file:///Users/apple/Documents/development/flutter/packages/flutter_test/lib/
|
||||
file:///Users/rajeevsingh/Documents/allSoftwares/flutter/packages/flutter_test/
|
||||
file:///Users/rajeevsingh/Documents/allSoftwares/flutter/packages/flutter_test/lib/
|
||||
flutter_web_plugins
|
||||
3.2
|
||||
file:///Users/apple/Documents/development/flutter/packages/flutter_web_plugins/
|
||||
file:///Users/apple/Documents/development/flutter/packages/flutter_web_plugins/lib/
|
||||
file:///Users/rajeevsingh/Documents/allSoftwares/flutter/packages/flutter_web_plugins/
|
||||
file:///Users/rajeevsingh/Documents/allSoftwares/flutter/packages/flutter_web_plugins/lib/
|
||||
2
|
||||
|
||||
@@ -1 +1 @@
|
||||
3.24.3
|
||||
3.22.3
|
||||
@@ -1,30 +1,30 @@
|
||||
# This is a generated file; do not edit or check into version control.
|
||||
connectivity_plus=/Users/apple/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.2/
|
||||
flutter_plugin_android_lifecycle=/Users/apple/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.22/
|
||||
fluttertoast=/Users/apple/.pub-cache/hosted/pub.dev/fluttertoast-8.2.10/
|
||||
geocoding=/Users/apple/.pub-cache/hosted/pub.dev/geocoding-3.0.0/
|
||||
geocoding_android=/Users/apple/.pub-cache/hosted/pub.dev/geocoding_android-3.3.1/
|
||||
geocoding_ios=/Users/apple/.pub-cache/hosted/pub.dev/geocoding_ios-3.0.1/
|
||||
geolocator=/Users/apple/.pub-cache/hosted/pub.dev/geolocator-13.0.2/
|
||||
geolocator_android=/Users/apple/.pub-cache/hosted/pub.dev/geolocator_android-4.6.1/
|
||||
geolocator_apple=/Users/apple/.pub-cache/hosted/pub.dev/geolocator_apple-2.3.8+1/
|
||||
geolocator_web=/Users/apple/.pub-cache/hosted/pub.dev/geolocator_web-4.1.1/
|
||||
geolocator_windows=/Users/apple/.pub-cache/hosted/pub.dev/geolocator_windows-0.2.3/
|
||||
google_api_headers=/Users/apple/.pub-cache/hosted/pub.dev/google_api_headers-1.6.0/
|
||||
google_maps_flutter=/Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter-2.10.0/
|
||||
google_maps_flutter_android=/Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_android-2.14.7/
|
||||
google_maps_flutter_ios=/Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.13.2/
|
||||
google_maps_flutter_web=/Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_web-0.5.10/
|
||||
package_info_plus=/Users/apple/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/
|
||||
path_provider=/Users/apple/.pub-cache/hosted/pub.dev/path_provider-2.1.5/
|
||||
path_provider_android=/Users/apple/.pub-cache/hosted/pub.dev/path_provider_android-2.2.10/
|
||||
path_provider_foundation=/Users/apple/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/
|
||||
path_provider_linux=/Users/apple/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/
|
||||
path_provider_windows=/Users/apple/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/
|
||||
shared_preferences=/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences-2.3.3/
|
||||
shared_preferences_android=/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_android-2.3.2/
|
||||
shared_preferences_foundation=/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/
|
||||
shared_preferences_linux=/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1/
|
||||
shared_preferences_web=/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.2/
|
||||
shared_preferences_windows=/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/
|
||||
sqflite=/Users/apple/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1/
|
||||
connectivity_plus=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.2/
|
||||
flutter_plugin_android_lifecycle=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.22/
|
||||
fluttertoast=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/fluttertoast-8.2.10/
|
||||
geocoding=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geocoding-3.0.0/
|
||||
geocoding_android=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geocoding_android-3.3.1/
|
||||
geocoding_ios=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geocoding_ios-3.0.1/
|
||||
geolocator=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator-13.0.2/
|
||||
geolocator_android=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_android-4.6.1/
|
||||
geolocator_apple=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_apple-2.3.8+1/
|
||||
geolocator_web=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_web-4.1.1/
|
||||
geolocator_windows=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_windows-0.2.3/
|
||||
google_api_headers=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_api_headers-1.6.0/
|
||||
google_maps_flutter=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter-2.10.0/
|
||||
google_maps_flutter_android=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter_android-2.14.7/
|
||||
google_maps_flutter_ios=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.13.2/
|
||||
google_maps_flutter_web=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter_web-0.5.10/
|
||||
package_info_plus=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/
|
||||
path_provider=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider-2.1.5/
|
||||
path_provider_android=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_android-2.2.10/
|
||||
path_provider_foundation=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/
|
||||
path_provider_linux=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/
|
||||
path_provider_windows=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/
|
||||
shared_preferences=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences-2.3.3/
|
||||
shared_preferences_android=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_android-2.3.2/
|
||||
shared_preferences_foundation=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/
|
||||
shared_preferences_linux=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1/
|
||||
shared_preferences_web=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.2/
|
||||
shared_preferences_windows=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/
|
||||
sqflite=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1/
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -4,6 +4,7 @@ import 'package:grocery_app/src/core/network_services/service_locator.dart';
|
||||
import 'package:grocery_app/src/core/routes/routes.dart';
|
||||
import 'package:grocery_app/src/logic/provider/addTocart_provider.dart';
|
||||
import 'package:grocery_app/src/logic/provider/auth_provider.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/splash/splash_screen.dart';
|
||||
import 'package:grocery_app/utils/constants/color_constant.dart';
|
||||
@@ -36,7 +37,7 @@ class MyApplication extends StatelessWidget {
|
||||
ChangeNotifierProvider(create: (_) => AuthProvider()),
|
||||
ChangeNotifierProvider(create: (_) => ProductProvider()),
|
||||
ChangeNotifierProvider(create: (_) => AddtocartProvider()),
|
||||
// ChangeNotifierProvider(create: (_) => ProductProvider()),
|
||||
ChangeNotifierProvider(create: (_) => BottomNavProvider()),
|
||||
// ChangeNotifierProvider(create: (_) => HomeProvider()),
|
||||
],
|
||||
child: MaterialApp.router(
|
||||
|
||||
@@ -3,9 +3,13 @@ class APIURL {
|
||||
static const String sendOtp = "${BASE_URL}auth/send-otp/customer";
|
||||
|
||||
static const String verifyOtp = "${BASE_URL}auth/verify-otp/customer";
|
||||
|
||||
static const String loginOtp = "${BASE_URL}auth/login/customer";
|
||||
|
||||
static const String login = "${BASE_URL}auth/login/vendor";
|
||||
static const String customerRegister = "${BASE_URL}auth/register/customer";
|
||||
static const String getAllProduct = "${BASE_URL}products";
|
||||
static const String getProductDetails = "${BASE_URL}products/";
|
||||
static const String getBanners = "${BASE_URL}banners";
|
||||
static const String customerLogOut = "${BASE_URL}auth/logout/customer";
|
||||
static const String getBestDealProduct = "${BASE_URL}products/best-deals";
|
||||
@@ -17,6 +21,7 @@ class APIURL {
|
||||
static const String similarProduct = "${BASE_URL}products/";
|
||||
static const String getItemCards = "${BASE_URL}carts/current";
|
||||
static const String checkPin = "${BASE_URL}pin-codes/check/";
|
||||
static const String deleteItem = "${BASE_URL}carts/items/";
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -7,7 +7,9 @@ import 'package:grocery_app/src/ui/bottomnavigation/bottom_bar_widget.dart';
|
||||
import 'package:grocery_app/src/ui/entername/enter_fullname_screen.dart';
|
||||
import 'package:grocery_app/src/ui/fruitvegidetail/fruit_veggie_detail.dart';
|
||||
import 'package:grocery_app/src/ui/login/login_screen.dart';
|
||||
import 'package:grocery_app/src/ui/login/signup_screen.dart';
|
||||
import 'package:grocery_app/src/ui/onboarding/on_boarding_screen.dart';
|
||||
import 'package:grocery_app/src/ui/otp/login_otp.dart';
|
||||
import 'package:grocery_app/src/ui/otp/otp_screen.dart';
|
||||
import 'package:grocery_app/src/ui/productdetails/product_details.dart';
|
||||
import 'package:grocery_app/src/ui/splash/splash_screen.dart';
|
||||
@@ -36,6 +38,16 @@ class MyRoutes {
|
||||
name: LOGIN,
|
||||
pageBuilder: (context, state) => LoginScreen(),
|
||||
),
|
||||
animatedGoRoute(
|
||||
path: SIGNUP,
|
||||
name: SIGNUP,
|
||||
pageBuilder: (context, state) => SingnuScreen(),
|
||||
),
|
||||
animatedGoRoute(
|
||||
path: LOGINOTPSCREEN,
|
||||
name: LOGINOTPSCREEN,
|
||||
pageBuilder: (context, state) => const LoginOtpScreen(),
|
||||
),
|
||||
|
||||
animatedGoRoute(
|
||||
path: OTPSCREEN,
|
||||
@@ -72,10 +84,9 @@ class MyRoutes {
|
||||
animatedGoRoute(
|
||||
path: PRODUCTDETAILS,
|
||||
name: PRODUCTDETAILS,
|
||||
pageBuilder: (context, state)
|
||||
{
|
||||
final product = state.extra as Product; // Get the extra object
|
||||
return ProductDetails(product: product);
|
||||
pageBuilder: (context, state) {
|
||||
final id = state.extra as String; // Get the extra object
|
||||
return ProductDetails(id: id);
|
||||
},
|
||||
),
|
||||
|
||||
@@ -207,19 +218,24 @@ class MyRoutes {
|
||||
static const HOME = "/home";
|
||||
static const FRUITVEGGIEDETAIL = "/FruitVeggieDetail";
|
||||
static const PRODUCTDETAILS = "/productdetails";
|
||||
static const LOGINOTPSCREEN = "/loginotpscreen";
|
||||
|
||||
|
||||
|
||||
static const SELECTACCOUNT = "/selectAccount";
|
||||
static const DASHBOARD = "/dashboard";
|
||||
|
||||
static const BOTTOM_NAV = "/home";
|
||||
|
||||
static const LOGIN = "/login";
|
||||
static const SIGNUP = "/signup";
|
||||
|
||||
static const ONBOARDING = "/onboarding";
|
||||
static const TERMANDCONDITIONS = "/termsandcondition";
|
||||
static const SETUPBUSSINESS = "/setupbussiness";
|
||||
static const CREATESTORE = "/createStore";
|
||||
static const SUBMITSCREEN = "/submitscreen";
|
||||
static const APPROVEDSTATUS = "/approvedstatus";
|
||||
static const SIGNUP = "/signup";
|
||||
|
||||
static const DASHBOARDSCREEN = "/dashboardscreen";
|
||||
static const CUSTOMERORDER = "/customerorder";
|
||||
|
||||
|
||||
@@ -1,327 +1,72 @@
|
||||
// // To parse this JSON data, do
|
||||
// //
|
||||
// // final allCartItems = allCartItemsFromJson(jsondynamic);
|
||||
|
||||
// import 'dart:convert';
|
||||
|
||||
// import 'package:grocery_app/src/data/allProduct_model.dart';
|
||||
|
||||
// AllCartItems allCartItemsFromJson(dynamic str) =>
|
||||
// AllCartItems.fromJson(json.decode(str));
|
||||
|
||||
// dynamic allCartItemsToJson(AllCartItems data) => json.encode(data.toJson());
|
||||
|
||||
// class AllCartItems {
|
||||
// dynamic id;
|
||||
// dynamic userId;
|
||||
// dynamic subtotal;
|
||||
// DateTime? createdAt;
|
||||
// DateTime? updatedAt;
|
||||
// List<Item>? items;
|
||||
|
||||
// AllCartItems({
|
||||
// this.id,
|
||||
// this.userId,
|
||||
// this.subtotal,
|
||||
// this.createdAt,
|
||||
// this.updatedAt,
|
||||
// this.items,
|
||||
// });
|
||||
|
||||
// factory AllCartItems.fromJson(Map<dynamic, dynamic> json) => AllCartItems(
|
||||
// id: json["id"],
|
||||
// userId: json["userId"],
|
||||
// subtotal: json["subtotal"],
|
||||
// createdAt: DateTime.parse(json["createdAt"]),
|
||||
// updatedAt: DateTime.parse(json["updatedAt"]),
|
||||
// items: List<Item>.from(json["items"].map((x) => Item.fromJson(x))),
|
||||
// );
|
||||
|
||||
// Map<dynamic, dynamic> toJson() => {
|
||||
// "id": id,
|
||||
// "userId": userId,
|
||||
// "subtotal": subtotal,
|
||||
// "createdAt": createdAt,
|
||||
// "updatedAt": updatedAt,
|
||||
// "items": List<dynamic>.from(items!.map((x) => x.toJson())),
|
||||
// };
|
||||
// }
|
||||
|
||||
// class Item {
|
||||
// dynamic id;
|
||||
// dynamic quantity;
|
||||
// dynamic priceSnapshot;
|
||||
// dynamic cartId;
|
||||
// dynamic productId;
|
||||
// dynamic storeId;
|
||||
// DateTime? createdAt;
|
||||
// DateTime? updatedAt;
|
||||
// Product? product;
|
||||
// Store? store;
|
||||
|
||||
// Item({
|
||||
// this.id,
|
||||
// this.quantity,
|
||||
// this.priceSnapshot,
|
||||
// this.cartId,
|
||||
// this.productId,
|
||||
// this.storeId,
|
||||
// this.createdAt,
|
||||
// this.updatedAt,
|
||||
// this.product,
|
||||
// this.store,
|
||||
// });
|
||||
|
||||
// factory Item.fromJson(Map<dynamic, dynamic> json) => Item(
|
||||
// id: json["id"],
|
||||
// quantity: json["quantity"],
|
||||
// priceSnapshot: json["priceSnapshot"],
|
||||
// cartId: json["cartId"],
|
||||
// productId: json["productId"],
|
||||
// storeId: json["storeId"],
|
||||
// createdAt: DateTime.parse(json["createdAt"]),
|
||||
// updatedAt: DateTime.parse(json["updatedAt"]),
|
||||
// product: Product.fromJson(json["product"]),
|
||||
// store: Store.fromJson(json["store"]),
|
||||
// );
|
||||
|
||||
// Map<dynamic, dynamic> toJson() => {
|
||||
// "id": id,
|
||||
// "quantity": quantity,
|
||||
// "priceSnapshot": priceSnapshot,
|
||||
// "cartId": cartId,
|
||||
// "productId": productId,
|
||||
// "storeId": storeId,
|
||||
// "createdAt": createdAt,
|
||||
// "updatedAt": updatedAt,
|
||||
// "product": product!.toJson(),
|
||||
// "store": store!.toJson(),
|
||||
// };
|
||||
// }
|
||||
|
||||
// class Category {
|
||||
// dynamic id;
|
||||
// dynamic name;
|
||||
// dynamic description;
|
||||
// dynamic image;
|
||||
// dynamic slug;
|
||||
// dynamic level;
|
||||
// bool? isActive;
|
||||
// DateTime? createdAt;
|
||||
// DateTime? updatedAt;
|
||||
// dynamic parentCategoryId;
|
||||
// dynamic path;
|
||||
|
||||
// Category({
|
||||
// this.id,
|
||||
// this.name,
|
||||
// this.description,
|
||||
// this.image,
|
||||
// this.slug,
|
||||
// this.level,
|
||||
// this.isActive,
|
||||
// this.createdAt,
|
||||
// this.updatedAt,
|
||||
// this.parentCategoryId,
|
||||
// this.path,
|
||||
// });
|
||||
|
||||
// factory Category.fromJson(Map<dynamic, dynamic> json) => Category(
|
||||
// id: json["id"],
|
||||
// name: json["name"],
|
||||
// description: json["description"],
|
||||
// image: json["image"],
|
||||
// slug: json["slug"],
|
||||
// level: json["level"],
|
||||
// isActive: json["isActive"],
|
||||
// createdAt: DateTime.parse(json["createdAt"]),
|
||||
// updatedAt: DateTime.parse(json["updatedAt"]),
|
||||
// parentCategoryId: json["parentCategoryId"],
|
||||
// path: json["path"],
|
||||
// );
|
||||
|
||||
// Map<dynamic, dynamic> toJson() => {
|
||||
// "id": id,
|
||||
// "name": name,
|
||||
// "description": description,
|
||||
// "image": image,
|
||||
// "slug": slug,
|
||||
// "level": level,
|
||||
// "isActive": isActive,
|
||||
// "createdAt": createdAt,
|
||||
// "updatedAt": updatedAt,
|
||||
// "parentCategoryId": parentCategoryId,
|
||||
// "path": path,
|
||||
// };
|
||||
// }
|
||||
|
||||
// class ProductImage {
|
||||
// dynamic id;
|
||||
// dynamic url;
|
||||
// bool? isDefault;
|
||||
// dynamic productId;
|
||||
|
||||
// ProductImage({
|
||||
// this.id,
|
||||
// this.url,
|
||||
// this.isDefault,
|
||||
// this.productId,
|
||||
// });
|
||||
|
||||
// factory ProductImage.fromJson(Map<dynamic, dynamic> json) => ProductImage(
|
||||
// id: json["id"],
|
||||
// url: json["url"],
|
||||
// isDefault: json["isDefault"],
|
||||
// productId: json["productId"],
|
||||
// );
|
||||
|
||||
// Map<dynamic, dynamic> toJson() => {
|
||||
// "id": id,
|
||||
// "url": url,
|
||||
// "isDefault": isDefault,
|
||||
// "productId": productId,
|
||||
// };
|
||||
// }
|
||||
|
||||
// class Store {
|
||||
// dynamic id;
|
||||
// dynamic storeName;
|
||||
// dynamic storeDescription;
|
||||
// dynamic officialPhoneNumber;
|
||||
// dynamic storeAddress;
|
||||
// dynamic gstNumber;
|
||||
// dynamic gumastaNumber;
|
||||
// dynamic storePicture;
|
||||
// DateTime? createdAt;
|
||||
// DateTime? updatedAt;
|
||||
// dynamic vendorId;
|
||||
// bool? isActive;
|
||||
// dynamic couponId;
|
||||
|
||||
// Store({
|
||||
// this.id,
|
||||
// this.storeName,
|
||||
// this.storeDescription,
|
||||
// this.officialPhoneNumber,
|
||||
// this.storeAddress,
|
||||
// this.gstNumber,
|
||||
// this.gumastaNumber,
|
||||
// this.storePicture,
|
||||
// this.createdAt,
|
||||
// this.updatedAt,
|
||||
// this.vendorId,
|
||||
// this.isActive,
|
||||
// this.couponId,
|
||||
// });
|
||||
|
||||
// factory Store.fromJson(Map<dynamic, dynamic> json) => Store(
|
||||
// id: json["id"],
|
||||
// storeName: json["storeName"],
|
||||
// storeDescription: json["storeDescription"],
|
||||
// officialPhoneNumber: json["officialPhoneNumber"],
|
||||
// storeAddress: json["storeAddress"],
|
||||
// gstNumber: json["gstNumber"],
|
||||
// gumastaNumber: json["gumastaNumber"],
|
||||
// storePicture: json["storePicture"],
|
||||
// createdAt: DateTime.parse(json["createdAt"]),
|
||||
// updatedAt: DateTime.parse(json["updatedAt"]),
|
||||
// vendorId: json["vendorId"],
|
||||
// isActive: json["isActive"],
|
||||
// couponId: json["couponId"],
|
||||
// );
|
||||
|
||||
// Map<dynamic, dynamic> toJson() => {
|
||||
// "id": id,
|
||||
// "storeName": storeName,
|
||||
// "storeDescription": storeDescription,
|
||||
// "officialPhoneNumber": officialPhoneNumber,
|
||||
// "storeAddress": storeAddress,
|
||||
// "gstNumber": gstNumber,
|
||||
// "gumastaNumber": gumastaNumber,
|
||||
// "storePicture": storePicture,
|
||||
// "createdAt": createdAt,
|
||||
// "updatedAt": updatedAt,
|
||||
// "vendorId": vendorId,
|
||||
// "isActive": isActive,
|
||||
// "couponId": couponId,
|
||||
// };
|
||||
// }
|
||||
|
||||
|
||||
// To parse this JSON data, do
|
||||
//
|
||||
// final allCartItems = allCartItemsFromJson(jsondynamic);
|
||||
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:grocery_app/src/data/allProduct_model.dart';
|
||||
AllCartItems allCartItemsFromJson(String str) =>
|
||||
AllCartItems.fromJson(json.decode(str));
|
||||
|
||||
AllCartItems allCartItemsFromJson(dynamic str) => AllCartItems.fromJson(json.decode(str));
|
||||
|
||||
dynamic allCartItemsToJson(AllCartItems data) => json.encode(data.toJson());
|
||||
String allCartItemsToJson(AllCartItems data) => json.encode(data.toJson());
|
||||
|
||||
class AllCartItems {
|
||||
dynamic id;
|
||||
dynamic userId;
|
||||
dynamic subtotal;
|
||||
DateTime? createdAt;
|
||||
DateTime? updatedAt;
|
||||
List<Item>? items;
|
||||
String? id;
|
||||
String? userId;
|
||||
String? subtotal;
|
||||
DateTime? createdAt;
|
||||
DateTime? updatedAt;
|
||||
List<Item>? items;
|
||||
|
||||
AllCartItems({
|
||||
this.id,
|
||||
this.userId,
|
||||
this.subtotal,
|
||||
this.createdAt,
|
||||
this.updatedAt,
|
||||
this.items,
|
||||
});
|
||||
AllCartItems({
|
||||
this.id,
|
||||
this.userId,
|
||||
this.subtotal,
|
||||
this.createdAt,
|
||||
this.updatedAt,
|
||||
this.items,
|
||||
});
|
||||
|
||||
factory AllCartItems.fromJson(Map<dynamic, dynamic> json) => AllCartItems(
|
||||
factory AllCartItems.fromJson(Map<String, dynamic> json) => AllCartItems(
|
||||
id: json["id"],
|
||||
userId: json["userId"],
|
||||
subtotal: json["subtotal"],
|
||||
createdAt: DateTime.parse(json["createdAt"]),
|
||||
updatedAt: DateTime.parse(json["updatedAt"]),
|
||||
items: List<Item>.from(json["items"].map((x) => Item.fromJson(x))),
|
||||
);
|
||||
);
|
||||
|
||||
Map<dynamic, dynamic> toJson() => {
|
||||
Map<String, dynamic> toJson() => {
|
||||
"id": id,
|
||||
"userId": userId,
|
||||
"subtotal": subtotal,
|
||||
"createdAt": createdAt,
|
||||
"updatedAt": updatedAt,
|
||||
"items": List<dynamic>.from(items!.map((x) => x.toJson())),
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
class Item {
|
||||
dynamic id;
|
||||
dynamic quantity;
|
||||
dynamic priceSnapshot;
|
||||
dynamic cartId;
|
||||
dynamic productId;
|
||||
dynamic storeId;
|
||||
DateTime? createdAt;
|
||||
DateTime? updatedAt;
|
||||
Product? product;
|
||||
Store? store;
|
||||
String? id;
|
||||
int? quantity;
|
||||
String? priceSnapshot;
|
||||
String? cartId;
|
||||
String? productId;
|
||||
String? storeId;
|
||||
DateTime? createdAt;
|
||||
DateTime? updatedAt;
|
||||
ItemProduct? product;
|
||||
Store? store;
|
||||
|
||||
Item({
|
||||
this.id,
|
||||
this.quantity,
|
||||
this.priceSnapshot,
|
||||
this.cartId,
|
||||
this.productId,
|
||||
this.storeId,
|
||||
this.createdAt,
|
||||
this.updatedAt,
|
||||
this.product,
|
||||
this.store,
|
||||
});
|
||||
Item({
|
||||
this.id,
|
||||
this.quantity,
|
||||
this.priceSnapshot,
|
||||
this.cartId,
|
||||
this.productId,
|
||||
this.storeId,
|
||||
this.createdAt,
|
||||
this.updatedAt,
|
||||
this.product,
|
||||
this.store,
|
||||
});
|
||||
|
||||
factory Item.fromJson(Map<dynamic, dynamic> json) => Item(
|
||||
factory Item.fromJson(Map<String, dynamic> json) => Item(
|
||||
id: json["id"],
|
||||
quantity: json["quantity"],
|
||||
priceSnapshot: json["priceSnapshot"],
|
||||
@@ -330,11 +75,11 @@ class Item {
|
||||
storeId: json["storeId"],
|
||||
createdAt: DateTime.parse(json["createdAt"]),
|
||||
updatedAt: DateTime.parse(json["updatedAt"]),
|
||||
product: Product.fromJson(json["product"]),
|
||||
product: ItemProduct.fromJson(json["product"]),
|
||||
store: Store.fromJson(json["store"]),
|
||||
);
|
||||
);
|
||||
|
||||
Map<dynamic, dynamic> toJson() => {
|
||||
Map<String, dynamic> toJson() => {
|
||||
"id": id,
|
||||
"quantity": quantity,
|
||||
"priceSnapshot": priceSnapshot,
|
||||
@@ -345,149 +90,152 @@ class Item {
|
||||
"updatedAt": updatedAt,
|
||||
"product": product!.toJson(),
|
||||
"store": store!.toJson(),
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
// class Product {
|
||||
// dynamic id;
|
||||
// dynamic name;
|
||||
// dynamic description;
|
||||
// dynamic additionalInfo;
|
||||
// dynamic brand;
|
||||
// dynamic basePrice;
|
||||
// dynamic discountPrice;
|
||||
// int stock;
|
||||
// int quantity;
|
||||
// dynamic unit;
|
||||
// dynamic slug;
|
||||
// dynamic averageRating;
|
||||
// bool isInStock;
|
||||
// bool isActive;
|
||||
// DateTime createdAt;
|
||||
// DateTime updatedAt;
|
||||
// dynamic storeId;
|
||||
// dynamic categoryId;
|
||||
// dynamic productTypeId;
|
||||
// dynamic timeSlotId;
|
||||
// List<ProductImage> productImages;
|
||||
// Category category;
|
||||
// List<ProductTag> productTags;
|
||||
// List<dynamic> zones;
|
||||
// List<dynamic> productReview;
|
||||
class ItemProduct {
|
||||
String? id;
|
||||
String? name;
|
||||
String? description;
|
||||
String? additionalInfo;
|
||||
dynamic brand;
|
||||
String? basePrice;
|
||||
String? discountPrice;
|
||||
int? stock;
|
||||
int? quantity;
|
||||
String? unit;
|
||||
String? slug;
|
||||
dynamic? averageRating;
|
||||
bool? isInStock;
|
||||
bool? isActive;
|
||||
DateTime? createdAt;
|
||||
DateTime? updatedAt;
|
||||
String? storeId;
|
||||
String? categoryId;
|
||||
dynamic? productTypeId;
|
||||
dynamic? timeSlotId;
|
||||
List<ProductImage>? productImages;
|
||||
Category? category;
|
||||
List<ProductTag>? productTags;
|
||||
List<dynamic>? zones;
|
||||
List<dynamic>? productReview;
|
||||
|
||||
// Product({
|
||||
// this.id,
|
||||
// this.name,
|
||||
// this.description,
|
||||
// this.additionalInfo,
|
||||
// this.brand,
|
||||
// this.basePrice,
|
||||
// this.discountPrice,
|
||||
// this.stock,
|
||||
// this.quantity,
|
||||
// this.unit,
|
||||
// this.slug,
|
||||
// this.averageRating,
|
||||
// this.isInStock,
|
||||
// this.isActive,
|
||||
// this.createdAt,
|
||||
// this.updatedAt,
|
||||
// this.storeId,
|
||||
// this.categoryId,
|
||||
// this.productTypeId,
|
||||
// this.timeSlotId,
|
||||
// this.productImages,
|
||||
// this.category,
|
||||
// this.productTags,
|
||||
// this.zones,
|
||||
// this.productReview,
|
||||
// });
|
||||
ItemProduct({
|
||||
this.id,
|
||||
this.name,
|
||||
this.description,
|
||||
this.additionalInfo,
|
||||
this.brand,
|
||||
this.basePrice,
|
||||
this.discountPrice,
|
||||
this.stock,
|
||||
this.quantity,
|
||||
this.unit,
|
||||
this.slug,
|
||||
this.averageRating,
|
||||
this.isInStock,
|
||||
this.isActive,
|
||||
this.createdAt,
|
||||
this.updatedAt,
|
||||
this.storeId,
|
||||
this.categoryId,
|
||||
this.productTypeId,
|
||||
this.timeSlotId,
|
||||
this.productImages,
|
||||
this.category,
|
||||
this.productTags,
|
||||
this.zones,
|
||||
this.productReview,
|
||||
});
|
||||
|
||||
// factory Product.fromJson(Map<dynamic, dynamic> json) => Product(
|
||||
// id: json["id"],
|
||||
// name: json["name"],
|
||||
// description: json["description"],
|
||||
// additionalInfo: json["additionalInfo"],
|
||||
// brand: json["brand"],
|
||||
// basePrice: json["basePrice"],
|
||||
// discountPrice: json["discountPrice"],
|
||||
// stock: json["stock"],
|
||||
// quantity: json["quantity"],
|
||||
// unit: json["unit"],
|
||||
// slug: json["slug"],
|
||||
// averageRating: json["averageRating"],
|
||||
// isInStock: json["isInStock"],
|
||||
// isActive: json["isActive"],
|
||||
// createdAt: DateTime.parse(json["createdAt"]),
|
||||
// updatedAt: DateTime.parse(json["updatedAt"]),
|
||||
// storeId: json["storeId"],
|
||||
// categoryId: json["categoryId"],
|
||||
// productTypeId: json["productTypeId"],
|
||||
// timeSlotId: json["timeSlotId"],
|
||||
// productImages: List<ProductImage>.from(json["productImages"].map((x) => ProductImage.fromJson(x))),
|
||||
// category: Category.fromJson(json["category"]),
|
||||
// productTags: List<ProductTag>.from(json["productTags"].map((x) => ProductTag.fromJson(x))),
|
||||
// zones: List<dynamic>.from(json["zones"].map((x) => x)),
|
||||
// productReview: List<dynamic>.from(json["ProductReview"].map((x) => x)),
|
||||
// );
|
||||
factory ItemProduct.fromJson(Map<String, dynamic> json) => ItemProduct(
|
||||
id: json["id"],
|
||||
name: json["name"],
|
||||
description: json["description"],
|
||||
additionalInfo: json["additionalInfo"],
|
||||
brand: json["brand"],
|
||||
basePrice: json["basePrice"],
|
||||
discountPrice: json["discountPrice"],
|
||||
stock: json["stock"],
|
||||
quantity: json["quantity"],
|
||||
unit: json["unit"],
|
||||
slug: json["slug"],
|
||||
averageRating: json["averageRating"],
|
||||
isInStock: json["isInStock"],
|
||||
isActive: json["isActive"],
|
||||
createdAt: DateTime.parse(json["createdAt"]),
|
||||
updatedAt: DateTime.parse(json["updatedAt"]),
|
||||
storeId: json["storeId"],
|
||||
categoryId: json["categoryId"],
|
||||
productTypeId: json["productTypeId"],
|
||||
timeSlotId: json["timeSlotId"],
|
||||
productImages: List<ProductImage>.from(
|
||||
json["productImages"].map((x) => ProductImage.fromJson(x))),
|
||||
category: Category.fromJson(json["category"]),
|
||||
productTags: List<ProductTag>.from(
|
||||
json["productTags"].map((x) => ProductTag.fromJson(x))),
|
||||
zones: List<dynamic>.from(json["zones"].map((x) => x)),
|
||||
productReview: List<dynamic>.from(json["ProductReview"].map((x) => x)),
|
||||
);
|
||||
|
||||
// Map<dynamic, dynamic> toJson() => {
|
||||
// "id": id,
|
||||
// "name": name,
|
||||
// "description": description,
|
||||
// "additionalInfo": additionalInfo,
|
||||
// "brand": brand,
|
||||
// "basePrice": basePrice,
|
||||
// "discountPrice": discountPrice,
|
||||
// "stock": stock,
|
||||
// "quantity": quantity,
|
||||
// "unit": unit,
|
||||
// "slug": slug,
|
||||
// "averageRating": averageRating,
|
||||
// "isInStock": isInStock,
|
||||
// "isActive": isActive,
|
||||
// "createdAt": createdAt.toIso8601dynamic(),
|
||||
// "updatedAt": updatedAt.toIso8601dynamic(),
|
||||
// "storeId": storeId,
|
||||
// "categoryId": categoryId,
|
||||
// "productTypeId": productTypeId,
|
||||
// "timeSlotId": timeSlotId,
|
||||
// "productImages": List<dynamic>.from(productImages.map((x) => x.toJson())),
|
||||
// "category": category.toJson(),
|
||||
// "productTags": List<dynamic>.from(productTags.map((x) => x.toJson())),
|
||||
// "zones": List<dynamic>.from(zones.map((x) => x)),
|
||||
// "ProductReview": List<dynamic>.from(productReview.map((x) => x)),
|
||||
// };
|
||||
// }
|
||||
Map<String, dynamic> toJson() => {
|
||||
"id": id,
|
||||
"name": name,
|
||||
"description": description,
|
||||
"additionalInfo": additionalInfo,
|
||||
"brand": brand,
|
||||
"basePrice": basePrice,
|
||||
"discountPrice": discountPrice,
|
||||
"stock": stock,
|
||||
"quantity": quantity,
|
||||
"unit": unit,
|
||||
"slug": slug,
|
||||
"averageRating": averageRating,
|
||||
"isInStock": isInStock,
|
||||
"isActive": isActive,
|
||||
"createdAt": createdAt!.toIso8601String(),
|
||||
"updatedAt": updatedAt!.toIso8601String(),
|
||||
"storeId": storeId,
|
||||
"categoryId": categoryId,
|
||||
"productTypeId": productTypeId,
|
||||
"timeSlotId": timeSlotId,
|
||||
"productImages":
|
||||
List<dynamic>.from(productImages!.map((x) => x.toJson())),
|
||||
"category": category!.toJson(),
|
||||
"productTags": List<dynamic>.from(productTags!.map((x) => x.toJson())),
|
||||
"zones": List<dynamic>.from(zones!.map((x) => x)),
|
||||
"ProductReview": List<dynamic>.from(productReview!.map((x) => x)),
|
||||
};
|
||||
}
|
||||
|
||||
class Category {
|
||||
dynamic id;
|
||||
dynamic name;
|
||||
dynamic description;
|
||||
dynamic image;
|
||||
dynamic slug;
|
||||
int? level;
|
||||
bool? isActive;
|
||||
DateTime? createdAt;
|
||||
DateTime? updatedAt;
|
||||
dynamic parentCategoryId;
|
||||
dynamic path;
|
||||
String? id;
|
||||
String? name;
|
||||
String? description;
|
||||
String? image;
|
||||
String? slug;
|
||||
int? level;
|
||||
bool? isActive;
|
||||
DateTime? createdAt;
|
||||
DateTime? updatedAt;
|
||||
String? parentCategoryId;
|
||||
String? path;
|
||||
|
||||
Category({
|
||||
this.id,
|
||||
this.name,
|
||||
this.description,
|
||||
this.image,
|
||||
this.slug,
|
||||
this.level,
|
||||
this.isActive,
|
||||
this.createdAt,
|
||||
this.updatedAt,
|
||||
this.parentCategoryId,
|
||||
this.path,
|
||||
});
|
||||
Category({
|
||||
this.id,
|
||||
this.name,
|
||||
this.description,
|
||||
this.image,
|
||||
this.slug,
|
||||
this.level,
|
||||
this.isActive,
|
||||
this.createdAt,
|
||||
this.updatedAt,
|
||||
this.parentCategoryId,
|
||||
this.path,
|
||||
});
|
||||
|
||||
factory Category.fromJson(Map<dynamic, dynamic> json) => Category(
|
||||
factory Category.fromJson(Map<String, dynamic> json) => Category(
|
||||
id: json["id"],
|
||||
name: json["name"],
|
||||
description: json["description"],
|
||||
@@ -499,9 +247,9 @@ class Category {
|
||||
updatedAt: DateTime.parse(json["updatedAt"]),
|
||||
parentCategoryId: json["parentCategoryId"],
|
||||
path: json["path"],
|
||||
);
|
||||
);
|
||||
|
||||
Map<dynamic, dynamic> toJson() => {
|
||||
Map<String, dynamic> toJson() => {
|
||||
"id": id,
|
||||
"name": name,
|
||||
"description": description,
|
||||
@@ -509,38 +257,137 @@ class Category {
|
||||
"slug": slug,
|
||||
"level": level,
|
||||
"isActive": isActive,
|
||||
"createdAt": createdAt,
|
||||
"updatedAt": updatedAt,
|
||||
"createdAt": createdAt!.toIso8601String(),
|
||||
"updatedAt": updatedAt!.toIso8601String(),
|
||||
"parentCategoryId": parentCategoryId,
|
||||
"path": path,
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
class ProductImage {
|
||||
dynamic id;
|
||||
dynamic url;
|
||||
bool? isDefault;
|
||||
dynamic productId;
|
||||
String? id;
|
||||
String? url;
|
||||
bool? isDefault;
|
||||
String? productId;
|
||||
|
||||
ProductImage({
|
||||
this.id,
|
||||
this.url,
|
||||
this.isDefault,
|
||||
this.productId,
|
||||
});
|
||||
ProductImage({
|
||||
this.id,
|
||||
this.url,
|
||||
this.isDefault,
|
||||
this.productId,
|
||||
});
|
||||
|
||||
factory ProductImage.fromJson(Map<dynamic, dynamic> json) => ProductImage(
|
||||
factory ProductImage.fromJson(Map<String, dynamic> json) => ProductImage(
|
||||
id: json["id"],
|
||||
url: json["url"],
|
||||
isDefault: json["isDefault"],
|
||||
productId: json["productId"],
|
||||
);
|
||||
);
|
||||
|
||||
Map<dynamic, dynamic> toJson() => {
|
||||
Map<String, dynamic> toJson() => {
|
||||
"id": id,
|
||||
"url": url,
|
||||
"isDefault": isDefault,
|
||||
"productId": productId,
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
class ProductTag {
|
||||
String? id;
|
||||
String? name;
|
||||
String? description;
|
||||
bool? isActive;
|
||||
DateTime? createdAt;
|
||||
DateTime? updatedAt;
|
||||
|
||||
ProductTag({
|
||||
this.id,
|
||||
this.name,
|
||||
this.description,
|
||||
this.isActive,
|
||||
this.createdAt,
|
||||
this.updatedAt,
|
||||
});
|
||||
|
||||
factory ProductTag.fromJson(Map<String, dynamic> json) => ProductTag(
|
||||
id: json["id"],
|
||||
name: json["name"],
|
||||
description: json["description"],
|
||||
isActive: json["isActive"],
|
||||
createdAt: DateTime.parse(json["createdAt"]),
|
||||
updatedAt: DateTime.parse(json["updatedAt"]),
|
||||
);
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
"id": id,
|
||||
"name": name,
|
||||
"description": description,
|
||||
"isActive": isActive,
|
||||
"createdAt": createdAt!.toIso8601String(),
|
||||
"updatedAt": updatedAt!.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
class Store {
|
||||
String? id;
|
||||
String? storeName;
|
||||
String? storeDescription;
|
||||
String? officialPhoneNumber;
|
||||
String? storeAddress;
|
||||
String? gstNumber;
|
||||
String? gumastaNumber;
|
||||
String? storePicture;
|
||||
DateTime? createdAt;
|
||||
DateTime? updatedAt;
|
||||
String? vendorId;
|
||||
bool? isActive;
|
||||
dynamic? couponId;
|
||||
|
||||
Store({
|
||||
this.id,
|
||||
this.storeName,
|
||||
this.storeDescription,
|
||||
this.officialPhoneNumber,
|
||||
this.storeAddress,
|
||||
this.gstNumber,
|
||||
this.gumastaNumber,
|
||||
this.storePicture,
|
||||
this.createdAt,
|
||||
this.updatedAt,
|
||||
this.vendorId,
|
||||
this.isActive,
|
||||
this.couponId,
|
||||
});
|
||||
|
||||
factory Store.fromJson(Map<String, dynamic> json) => Store(
|
||||
id: json["id"],
|
||||
storeName: json["storeName"],
|
||||
storeDescription: json["storeDescription"],
|
||||
officialPhoneNumber: json["officialPhoneNumber"],
|
||||
storeAddress: json["storeAddress"],
|
||||
gstNumber: json["gstNumber"],
|
||||
gumastaNumber: json["gumastaNumber"],
|
||||
storePicture: json["storePicture"],
|
||||
createdAt: DateTime.parse(json["createdAt"]),
|
||||
updatedAt: DateTime.parse(json["updatedAt"]),
|
||||
vendorId: json["vendorId"],
|
||||
isActive: json["isActive"],
|
||||
couponId: json["couponId"],
|
||||
);
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
"id": id,
|
||||
"storeName": storeName,
|
||||
"storeDescription": storeDescription,
|
||||
"officialPhoneNumber": officialPhoneNumber,
|
||||
"storeAddress": storeAddress,
|
||||
"gstNumber": gstNumber,
|
||||
"gumastaNumber": gumastaNumber,
|
||||
"storePicture": storePicture,
|
||||
"createdAt": createdAt!.toIso8601String(),
|
||||
"updatedAt": updatedAt!.toIso8601String(),
|
||||
"vendorId": vendorId,
|
||||
"isActive": isActive,
|
||||
"couponId": couponId,
|
||||
};
|
||||
}
|
||||
|
||||
34
lib/src/data/login_response.dart
Normal file
34
lib/src/data/login_response.dart
Normal file
@@ -0,0 +1,34 @@
|
||||
// To parse this JSON data, do
|
||||
//
|
||||
// final loginResponse = loginResponseFromJson(jsonString);
|
||||
|
||||
import 'dart:convert';
|
||||
|
||||
LoginResponse loginResponseFromJson(String str) =>
|
||||
LoginResponse.fromJson(json.decode(str));
|
||||
|
||||
String loginResponseToJson(LoginResponse data) => json.encode(data.toJson());
|
||||
|
||||
class LoginResponse {
|
||||
String? accessToken;
|
||||
String? refreshToken;
|
||||
String? message;
|
||||
|
||||
LoginResponse({
|
||||
this.accessToken,
|
||||
this.refreshToken,
|
||||
this.message,
|
||||
});
|
||||
|
||||
factory LoginResponse.fromJson(Map<String, dynamic> json) => LoginResponse(
|
||||
accessToken: json["access_token"],
|
||||
refreshToken: json["refresh_token"],
|
||||
message: json["message"],
|
||||
);
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
"access_token": accessToken,
|
||||
"refresh_token": refreshToken,
|
||||
"message": message,
|
||||
};
|
||||
}
|
||||
406
lib/src/data/product_details.dart
Normal file
406
lib/src/data/product_details.dart
Normal file
@@ -0,0 +1,406 @@
|
||||
// To parse this JSON data, do
|
||||
//
|
||||
// final productDetails = productDetailsFromJson(jsondynamic);
|
||||
|
||||
import 'dart:convert';
|
||||
import 'dart:ffi';
|
||||
|
||||
ProductDetailsData productDetailsdataFromJson(dynamic str) =>
|
||||
ProductDetailsData.fromJson(json.decode(str));
|
||||
|
||||
dynamic productDetailsToJson(ProductDetailsData data) => json.encode(data.toJson());
|
||||
|
||||
class ProductDetailsData {
|
||||
Data? data;
|
||||
|
||||
ProductDetailsData({
|
||||
this.data,
|
||||
});
|
||||
|
||||
factory ProductDetailsData.fromJson(Map<dynamic, dynamic> json) => ProductDetailsData(
|
||||
data: Data.fromJson(json["data"]),
|
||||
);
|
||||
|
||||
Map<dynamic, dynamic> toJson() => {
|
||||
"data": data!.toJson(),
|
||||
};
|
||||
}
|
||||
|
||||
class Data {
|
||||
dynamic id;
|
||||
dynamic name;
|
||||
dynamic description;
|
||||
dynamic additionalInfo;
|
||||
dynamic brand;
|
||||
dynamic basePrice;
|
||||
dynamic discountPrice;
|
||||
dynamic? stock;
|
||||
dynamic? quantity;
|
||||
dynamic unit;
|
||||
dynamic slug;
|
||||
dynamic averageRating;
|
||||
bool? isInStock;
|
||||
bool? isActive;
|
||||
DateTime? createdAt;
|
||||
DateTime? updatedAt;
|
||||
dynamic storeId;
|
||||
dynamic categoryId;
|
||||
dynamic productTypeId;
|
||||
dynamic timeSlotId;
|
||||
Store? store;
|
||||
Category? category;
|
||||
dynamic? productType;
|
||||
dynamic timeSlot;
|
||||
List<ProductImage>? productImages;
|
||||
List<dynamic>? productTags;
|
||||
List<dynamic>? zones;
|
||||
List<dynamic>? productReview;
|
||||
List<dynamic>? questions;
|
||||
List<CartItem>? cartItems;
|
||||
List<WishlistItem>? wishlistItem;
|
||||
List<dynamic>? applicableCoupons;
|
||||
bool? isInWishlist;
|
||||
|
||||
Data({
|
||||
this.id,
|
||||
this.name,
|
||||
this.description,
|
||||
this.additionalInfo,
|
||||
this.brand,
|
||||
this.basePrice,
|
||||
this.discountPrice,
|
||||
this.stock,
|
||||
this.quantity,
|
||||
this.unit,
|
||||
this.slug,
|
||||
this.averageRating,
|
||||
this.isInStock,
|
||||
this.isActive,
|
||||
this.createdAt,
|
||||
this.updatedAt,
|
||||
this.storeId,
|
||||
this.categoryId,
|
||||
this.productTypeId,
|
||||
this.timeSlotId,
|
||||
this.store,
|
||||
this.category,
|
||||
this.productType,
|
||||
this.timeSlot,
|
||||
this.productImages,
|
||||
this.productTags,
|
||||
this.zones,
|
||||
this.productReview,
|
||||
this.questions,
|
||||
this.cartItems,
|
||||
this.wishlistItem,
|
||||
this.applicableCoupons,
|
||||
this.isInWishlist,
|
||||
});
|
||||
|
||||
factory Data.fromJson(Map<dynamic, dynamic> json) => Data(
|
||||
id: json["id"],
|
||||
name: json["name"],
|
||||
description: json["description"],
|
||||
additionalInfo: json["additionalInfo"],
|
||||
brand: json["brand"],
|
||||
basePrice: json["basePrice"],
|
||||
discountPrice: json["discountPrice"],
|
||||
stock: json["stock"],
|
||||
quantity: json["quantity"],
|
||||
unit: json["unit"],
|
||||
slug: json["slug"],
|
||||
averageRating: json["averageRating"],
|
||||
isInStock: json["isInStock"],
|
||||
isActive: json["isActive"],
|
||||
createdAt: DateTime.parse(json["createdAt"]),
|
||||
updatedAt: DateTime.parse(json["updatedAt"]),
|
||||
storeId: json["storeId"],
|
||||
categoryId: json["categoryId"],
|
||||
productTypeId: json["productTypeId"],
|
||||
timeSlotId: json["timeSlotId"],
|
||||
store: Store.fromJson(json["store"]),
|
||||
category: Category.fromJson(json["category"]),
|
||||
productType: json["productType"],
|
||||
timeSlot: json["timeSlot"],
|
||||
productImages: List<ProductImage>.from(
|
||||
json["productImages"].map((x) => ProductImage.fromJson(x))),
|
||||
productTags: List<dynamic>.from(json["productTags"].map((x) => x)),
|
||||
zones: List<dynamic>.from(json["zones"].map((x) => x)),
|
||||
productReview: List<dynamic>.from(json["ProductReview"].map((x) => x)),
|
||||
questions: List<dynamic>.from(json["questions"].map((x) => x)),
|
||||
cartItems: List<CartItem>.from(
|
||||
json["cartItems"].map((x) => CartItem.fromJson(x))),
|
||||
wishlistItem: List<WishlistItem>.from(
|
||||
json["WishlistItem"].map((x) => WishlistItem.fromJson(x))),
|
||||
applicableCoupons:
|
||||
List<dynamic>.from(json["applicableCoupons"].map((x) => x)),
|
||||
isInWishlist: json["isInWishlist"],
|
||||
);
|
||||
|
||||
Map<dynamic, dynamic> toJson() => {
|
||||
"id": id,
|
||||
"name": name,
|
||||
"description": description,
|
||||
"additionalInfo": additionalInfo,
|
||||
"brand": brand,
|
||||
"basePrice": basePrice,
|
||||
"discountPrice": discountPrice,
|
||||
"stock": stock,
|
||||
"quantity": quantity,
|
||||
"unit": unit,
|
||||
"slug": slug,
|
||||
"averageRating": averageRating,
|
||||
"isInStock": isInStock,
|
||||
"isActive": isActive,
|
||||
"createdAt": createdAt,
|
||||
"updatedAt": updatedAt,
|
||||
"storeId": storeId,
|
||||
"categoryId": categoryId,
|
||||
"productTypeId": productTypeId,
|
||||
"timeSlotId": timeSlotId,
|
||||
"store": store!.toJson(),
|
||||
"category": category!.toJson(),
|
||||
"productType": productType,
|
||||
"timeSlot": timeSlot,
|
||||
"productImages":
|
||||
List<dynamic>.from(productImages!.map((x) => x.toJson())),
|
||||
"productTags": List<dynamic>.from(productTags!.map((x) => x)),
|
||||
"zones": List<dynamic>.from(zones!.map((x) => x)),
|
||||
"ProductReview": List<dynamic>.from(productReview!.map((x) => x)),
|
||||
"questions": List<dynamic>.from(questions!.map((x) => x)),
|
||||
"cartItems": List<dynamic>.from(cartItems!.map((x) => x.toJson())),
|
||||
"WishlistItem":
|
||||
List<dynamic>.from(wishlistItem!.map((x) => x.toJson())),
|
||||
"applicableCoupons":
|
||||
List<dynamic>.from(applicableCoupons!.map((x) => x)),
|
||||
"isInWishlist": isInWishlist,
|
||||
};
|
||||
}
|
||||
|
||||
class CartItem {
|
||||
dynamic id;
|
||||
dynamic quantity;
|
||||
dynamic priceSnapshot;
|
||||
dynamic cartId;
|
||||
dynamic productId;
|
||||
dynamic storeId;
|
||||
DateTime? createdAt;
|
||||
DateTime? updatedAt;
|
||||
|
||||
CartItem({
|
||||
this.id,
|
||||
this.quantity,
|
||||
this.priceSnapshot,
|
||||
this.cartId,
|
||||
this.productId,
|
||||
this.storeId,
|
||||
this.createdAt,
|
||||
this.updatedAt,
|
||||
});
|
||||
|
||||
factory CartItem.fromJson(Map<dynamic, dynamic> json) => CartItem(
|
||||
id: json["id"],
|
||||
quantity: json["quantity"],
|
||||
priceSnapshot: json["priceSnapshot"],
|
||||
cartId: json["cartId"],
|
||||
productId: json["productId"],
|
||||
storeId: json["storeId"],
|
||||
createdAt: DateTime.parse(json["createdAt"]),
|
||||
updatedAt: DateTime.parse(json["updatedAt"]),
|
||||
);
|
||||
|
||||
Map<dynamic, dynamic> toJson() => {
|
||||
"id": id,
|
||||
"quantity": quantity,
|
||||
"priceSnapshot": priceSnapshot,
|
||||
"cartId": cartId,
|
||||
"productId": productId,
|
||||
"storeId": storeId,
|
||||
"createdAt": createdAt,
|
||||
"updatedAt": updatedAt,
|
||||
};
|
||||
}
|
||||
|
||||
class Category {
|
||||
dynamic id;
|
||||
dynamic name;
|
||||
dynamic description;
|
||||
dynamic image;
|
||||
dynamic slug;
|
||||
dynamic level;
|
||||
bool? isActive;
|
||||
DateTime? createdAt;
|
||||
DateTime? updatedAt;
|
||||
dynamic parentCategoryId;
|
||||
dynamic path;
|
||||
|
||||
Category({
|
||||
this.id,
|
||||
this.name,
|
||||
this.description,
|
||||
this.image,
|
||||
this.slug,
|
||||
this.level,
|
||||
this.isActive,
|
||||
this.createdAt,
|
||||
this.updatedAt,
|
||||
this.parentCategoryId,
|
||||
this.path,
|
||||
});
|
||||
|
||||
factory Category.fromJson(Map<dynamic, dynamic> json) => Category(
|
||||
id: json["id"],
|
||||
name: json["name"],
|
||||
description: json["description"],
|
||||
image: json["image"],
|
||||
slug: json["slug"],
|
||||
level: json["level"],
|
||||
isActive: json["isActive"],
|
||||
createdAt: DateTime.parse(json["createdAt"]),
|
||||
updatedAt: DateTime.parse(json["updatedAt"]),
|
||||
parentCategoryId: json["parentCategoryId"],
|
||||
path: json["path"],
|
||||
);
|
||||
|
||||
Map<dynamic, dynamic> toJson() => {
|
||||
"id": id,
|
||||
"name": name,
|
||||
"description": description,
|
||||
"image": image,
|
||||
"slug": slug,
|
||||
"level": level,
|
||||
"isActive": isActive,
|
||||
"createdAt": createdAt,
|
||||
"updatedAt": updatedAt,
|
||||
"parentCategoryId": parentCategoryId,
|
||||
"path": path,
|
||||
};
|
||||
}
|
||||
|
||||
class ProductImage {
|
||||
dynamic id;
|
||||
dynamic url;
|
||||
bool? isDefault;
|
||||
dynamic productId;
|
||||
|
||||
ProductImage({
|
||||
this.id,
|
||||
this.url,
|
||||
this.isDefault,
|
||||
this.productId,
|
||||
});
|
||||
|
||||
factory ProductImage.fromJson(Map<dynamic, dynamic> json) => ProductImage(
|
||||
id: json["id"],
|
||||
url: json["url"],
|
||||
isDefault: json["isDefault"],
|
||||
productId: json["productId"],
|
||||
);
|
||||
|
||||
Map<dynamic, dynamic> toJson() => {
|
||||
"id": id,
|
||||
"url": url,
|
||||
"isDefault": isDefault,
|
||||
"productId": productId,
|
||||
};
|
||||
}
|
||||
|
||||
class Store {
|
||||
dynamic id;
|
||||
dynamic storeName;
|
||||
dynamic storeDescription;
|
||||
dynamic officialPhoneNumber;
|
||||
dynamic storeAddress;
|
||||
dynamic gstNumber;
|
||||
dynamic gumastaNumber;
|
||||
dynamic storePicture;
|
||||
DateTime? createdAt;
|
||||
DateTime? updatedAt;
|
||||
dynamic vendorId;
|
||||
bool? isActive;
|
||||
dynamic couponId;
|
||||
|
||||
Store({
|
||||
this.id,
|
||||
this.storeName,
|
||||
this.storeDescription,
|
||||
this.officialPhoneNumber,
|
||||
this.storeAddress,
|
||||
this.gstNumber,
|
||||
this.gumastaNumber,
|
||||
this.storePicture,
|
||||
this.createdAt,
|
||||
this.updatedAt,
|
||||
this.vendorId,
|
||||
this.isActive,
|
||||
this.couponId,
|
||||
});
|
||||
|
||||
factory Store.fromJson(Map<dynamic, dynamic> json) => Store(
|
||||
id: json["id"],
|
||||
storeName: json["storeName"],
|
||||
storeDescription: json["storeDescription"],
|
||||
officialPhoneNumber: json["officialPhoneNumber"],
|
||||
storeAddress: json["storeAddress"],
|
||||
gstNumber: json["gstNumber"],
|
||||
gumastaNumber: json["gumastaNumber"],
|
||||
storePicture: json["storePicture"],
|
||||
createdAt: DateTime.parse(json["createdAt"]),
|
||||
updatedAt: DateTime.parse(json["updatedAt"]),
|
||||
vendorId: json["vendorId"],
|
||||
isActive: json["isActive"],
|
||||
couponId: json["couponId"],
|
||||
);
|
||||
|
||||
Map<dynamic, dynamic> toJson() => {
|
||||
"id": id,
|
||||
"storeName": storeName,
|
||||
"storeDescription": storeDescription,
|
||||
"officialPhoneNumber": officialPhoneNumber,
|
||||
"storeAddress": storeAddress,
|
||||
"gstNumber": gstNumber,
|
||||
"gumastaNumber": gumastaNumber,
|
||||
"storePicture": storePicture,
|
||||
"createdAt": createdAt,
|
||||
"updatedAt": updatedAt,
|
||||
"vendorId": vendorId,
|
||||
"isActive": isActive,
|
||||
"couponId": couponId,
|
||||
};
|
||||
}
|
||||
|
||||
class WishlistItem {
|
||||
dynamic id;
|
||||
dynamic wishlistId;
|
||||
dynamic productId;
|
||||
dynamic storeId;
|
||||
DateTime? createdAt;
|
||||
DateTime? updatedAt;
|
||||
|
||||
WishlistItem({
|
||||
this.id,
|
||||
this.wishlistId,
|
||||
this.productId,
|
||||
this.storeId,
|
||||
this.createdAt,
|
||||
this.updatedAt,
|
||||
});
|
||||
|
||||
factory WishlistItem.fromJson(Map<dynamic, dynamic> json) => WishlistItem(
|
||||
id: json["id"],
|
||||
wishlistId: json["wishlistId"],
|
||||
productId: json["productId"],
|
||||
storeId: json["storeId"],
|
||||
createdAt: DateTime.parse(json["createdAt"]),
|
||||
updatedAt: DateTime.parse(json["updatedAt"]),
|
||||
);
|
||||
|
||||
Map<dynamic, dynamic> toJson() => {
|
||||
"id": id,
|
||||
"wishlistId": wishlistId,
|
||||
"productId": productId,
|
||||
"storeId": storeId,
|
||||
"createdAt": createdAt,
|
||||
"updatedAt": updatedAt,
|
||||
};
|
||||
}
|
||||
@@ -97,12 +97,43 @@ class AddtocartProvider extends ChangeNotifier {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Map<String, bool> isRemoveItem = {};
|
||||
|
||||
Future<void> deleteItem(BuildContext context, id) async {
|
||||
isRemoveItem[id] = true;
|
||||
notifyListeners();
|
||||
var data = {};
|
||||
try {
|
||||
var result = await _homeRepo.deleteItem(data, id);
|
||||
return result.fold(
|
||||
(error) {
|
||||
|
||||
isRemoveItem[id] = false;
|
||||
notifyListeners();
|
||||
},
|
||||
(response) {
|
||||
getItemCards(context);
|
||||
isRemoveItem[id] = false;
|
||||
notifyListeners();
|
||||
},
|
||||
);
|
||||
} catch (e) {
|
||||
isRemoveItem[id] = false;
|
||||
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
final _homeRepo = getIt<ProductRepo>();
|
||||
|
||||
AllCartItems allitem = AllCartItems();
|
||||
|
||||
bool isLoaddcartItem = true;
|
||||
Future<void> getItemCards(BuildContext context) async {
|
||||
isLoaddcartItem = true;
|
||||
notifyListeners();
|
||||
var data = {};
|
||||
try {
|
||||
var result = await _homeRepo.getItemCards(data);
|
||||
@@ -120,8 +151,7 @@ class AddtocartProvider extends ChangeNotifier {
|
||||
notifyListeners();
|
||||
},
|
||||
);
|
||||
} catch (e)
|
||||
{
|
||||
} catch (e) {
|
||||
print("sfddsfdfff");
|
||||
isLoaddcartItem = false;
|
||||
notifyListeners();
|
||||
|
||||
@@ -109,7 +109,7 @@ class AuthProvider extends ChangeNotifier {
|
||||
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text("Something went wrong. Please try again."),
|
||||
content: Text("Already have account Please login !"),
|
||||
backgroundColor: Colors.red,
|
||||
),
|
||||
);
|
||||
@@ -117,9 +117,52 @@ class AuthProvider extends ChangeNotifier {
|
||||
}
|
||||
}
|
||||
|
||||
// //login
|
||||
Future<bool> loginOtp(String otp, BuildContext context) async {
|
||||
context.showLoader(show: true);
|
||||
var data = {
|
||||
"phone": numberwithCode,
|
||||
"otp": otp,
|
||||
};
|
||||
|
||||
// //vendorRegister
|
||||
try {
|
||||
var result = await _authRepo.loginOtp(data);
|
||||
|
||||
return result.fold(
|
||||
(error) {
|
||||
// Show error Snackbar
|
||||
context.showLoader(show: false);
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text(error.message),
|
||||
backgroundColor: Colors.red,
|
||||
),
|
||||
);
|
||||
return false; // Login failed
|
||||
},
|
||||
(response) {
|
||||
// Login success
|
||||
context.showLoader(show: false);
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text("OTP Verify successful!"),
|
||||
backgroundColor: Colors.green,
|
||||
),
|
||||
);
|
||||
return true;
|
||||
},
|
||||
);
|
||||
} catch (e) {
|
||||
context.showLoader(show: false);
|
||||
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text("Don't have a account ,please create now!"),
|
||||
backgroundColor: Colors.red,
|
||||
),
|
||||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Future<bool> customerRegister(BuildContext context) async {
|
||||
context.showLoader(show: true);
|
||||
@@ -143,8 +186,7 @@ class AuthProvider extends ChangeNotifier {
|
||||
);
|
||||
return false; // Login failed
|
||||
},
|
||||
(response)
|
||||
{
|
||||
(response) {
|
||||
// Login success
|
||||
context.showLoader(show: false);
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
|
||||
16
lib/src/logic/provider/bottom_navbar_provider.dart
Normal file
16
lib/src/logic/provider/bottom_navbar_provider.dart
Normal file
@@ -0,0 +1,16 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class BottomNavProvider with ChangeNotifier {
|
||||
int _currentIndex = 0;
|
||||
PageController _pageController = PageController();
|
||||
|
||||
int get currentIndex => _currentIndex;
|
||||
PageController get pageController => _pageController;
|
||||
|
||||
void setIndex(int index)
|
||||
{
|
||||
_currentIndex = index;
|
||||
_pageController.jumpToPage(index);
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,7 @@ import 'package:grocery_app/src/data/all_cart_items.dart';
|
||||
import 'package:grocery_app/src/data/banners.dart';
|
||||
import 'package:grocery_app/src/data/best_dealProduct.dart';
|
||||
import 'package:grocery_app/src/data/product_category.dart';
|
||||
import 'package:grocery_app/src/data/product_details.dart';
|
||||
import 'package:grocery_app/src/data/wish_list_model.dart';
|
||||
import 'package:grocery_app/src/logic/repo/product_repo.dart';
|
||||
import 'package:grocery_app/utils/constants/shared_pref_utils.dart';
|
||||
@@ -38,6 +39,29 @@ class ProductProvider extends ChangeNotifier {
|
||||
);
|
||||
}
|
||||
|
||||
ProductDetailsData productDetails = ProductDetailsData();
|
||||
bool isProductLoading = true;
|
||||
|
||||
Future<void> getProduuctDetails(BuildContext context, String id) async {
|
||||
var data = {};
|
||||
productDetails = ProductDetailsData();
|
||||
isProductLoading = true;
|
||||
notifyListeners();
|
||||
|
||||
var result = await _homeRepo.getProductDetails(data, context, id);
|
||||
return result.fold(
|
||||
(error) {
|
||||
isProductLoading = false;
|
||||
notifyListeners();
|
||||
},
|
||||
(response) {
|
||||
productDetails = response!;
|
||||
isProductLoading = false;
|
||||
notifyListeners();
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
List<BestDeal> bestdeal = [];
|
||||
|
||||
bool isBestdealingloading = true;
|
||||
@@ -132,7 +156,7 @@ class ProductProvider extends ChangeNotifier {
|
||||
),
|
||||
);
|
||||
await SharedPrefUtils.clear();
|
||||
context.clearAndPush(routePath: MyRoutes.LOGIN);
|
||||
context.clearAndPush(routePath: MyRoutes.SIGNUP);
|
||||
|
||||
return true;
|
||||
},
|
||||
@@ -319,6 +343,56 @@ class ProductProvider extends ChangeNotifier {
|
||||
}
|
||||
}
|
||||
|
||||
List<BestDeal> countList = [];
|
||||
|
||||
Future<void> addToWithCart(
|
||||
BuildContext context, String productId, BestDeal bestdealproduct) async {
|
||||
//if (cartItems.contains(productId)) return; // Prevent duplicate additions
|
||||
|
||||
isLoading[productId] = true;
|
||||
notifyListeners(); // Notify UI to show loading indicator
|
||||
|
||||
var data = {"productId": productId, "quantity": 1};
|
||||
|
||||
try {
|
||||
var result = await _homeRepo.addToCart(data);
|
||||
|
||||
result.fold(
|
||||
(error) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text(error.message),
|
||||
backgroundColor: Colors.red,
|
||||
),
|
||||
);
|
||||
},
|
||||
(response) {
|
||||
countList.add(bestdealproduct);
|
||||
cartItems.add(productId); // Add product to cart
|
||||
Fluttertoast.showToast(
|
||||
msg: "Added to cart successfully!",
|
||||
toastLength: Toast.LENGTH_SHORT,
|
||||
gravity: ToastGravity.BOTTOM,
|
||||
backgroundColor: Colors.green,
|
||||
textColor: Colors.white,
|
||||
fontSize: 14.0,
|
||||
);
|
||||
notifyListeners(); // Update UI after adding to cart
|
||||
},
|
||||
);
|
||||
} catch (e) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text("Something went wrong"),
|
||||
backgroundColor: Colors.red,
|
||||
),
|
||||
);
|
||||
} finally {
|
||||
isLoading[productId] = false;
|
||||
notifyListeners(); // Ensure UI updates after operation
|
||||
}
|
||||
}
|
||||
|
||||
bool isWishListItemLoadingg = true;
|
||||
|
||||
List<WishListItem> wishListItem = [];
|
||||
@@ -360,8 +434,7 @@ class ProductProvider extends ChangeNotifier {
|
||||
int get quantity => _quantity;
|
||||
double get totalPrice => _totalPrice;
|
||||
|
||||
void setProductPrice(double price)
|
||||
{
|
||||
void setProductPrice(double price) {
|
||||
_unitPrice = price;
|
||||
_totalPrice = _unitPrice * _quantity;
|
||||
notifyListeners();
|
||||
@@ -406,6 +479,4 @@ class ProductProvider extends ChangeNotifier {
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////// all carts////////////////////////
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import 'package:fpdart/fpdart.dart';
|
||||
import 'package:grocery_app/src/core/utils/custom_dio_exception.dart';
|
||||
import 'package:grocery_app/src/core/utils/response_type_def.dart';
|
||||
import 'package:grocery_app/src/data/OTPResponseModel.dart';
|
||||
import 'package:grocery_app/src/data/login_response.dart';
|
||||
import 'package:grocery_app/src/data/registration_response.dart';
|
||||
import 'package:grocery_app/src/data/vendor_otpModel.dart';
|
||||
import 'package:grocery_app/src/logic/services/auth_service_locator.dart';
|
||||
@@ -19,8 +20,7 @@ class AuthRepo {
|
||||
try {
|
||||
var response = await _authServices.sendOtp(data);
|
||||
final String model = response.toString();
|
||||
// OtpResponseModel otpResponseModel =
|
||||
// otpResponseModelFromJson(response.toString());
|
||||
|
||||
|
||||
return right(model);
|
||||
} on DioException catch (e) {
|
||||
@@ -42,7 +42,7 @@ class AuthRepo {
|
||||
authToken: vendorOtpModel.data!.accessToken ?? "");
|
||||
}
|
||||
|
||||
// final String model = response.toString();
|
||||
|
||||
|
||||
return right(vendorOtpModel);
|
||||
} on DioException catch (e) {
|
||||
@@ -51,6 +51,27 @@ class AuthRepo {
|
||||
}
|
||||
}
|
||||
|
||||
FutureResult<LoginResponse> loginOtp(data) async {
|
||||
try {
|
||||
var response = await _authServices.loginOtp(data);
|
||||
|
||||
LoginResponse loginResponse = loginResponseFromJson(response.toString());
|
||||
|
||||
if (loginResponse.accessToken != null)
|
||||
{
|
||||
await SharedPrefUtils.setToken(
|
||||
authToken: loginResponse.accessToken ?? "");
|
||||
}
|
||||
|
||||
// final String model = response.toString();
|
||||
|
||||
return right(loginResponse);
|
||||
} on DioException catch (e) {
|
||||
var error = CustomDioExceptions.handleError(e);
|
||||
return left(error);
|
||||
}
|
||||
}
|
||||
|
||||
// FutureResult<LoginResponse> login(data) async {
|
||||
// try {
|
||||
// var response = await _authServices.login(data);
|
||||
|
||||
@@ -9,8 +9,10 @@ import 'package:grocery_app/src/data/banners.dart';
|
||||
import 'package:grocery_app/src/data/best_dealProduct.dart';
|
||||
import 'package:grocery_app/src/data/check_pin_response.dart';
|
||||
import 'package:grocery_app/src/data/product_category.dart';
|
||||
import 'package:grocery_app/src/data/product_details.dart';
|
||||
import 'package:grocery_app/src/data/wish_list_model.dart';
|
||||
import 'package:grocery_app/src/logic/services/home_locator.dart';
|
||||
import 'package:grocery_app/src/ui/productdetails/product_details.dart';
|
||||
|
||||
class ProductRepo {
|
||||
final ProductService _productService;
|
||||
@@ -34,6 +36,24 @@ class ProductRepo {
|
||||
}
|
||||
}
|
||||
|
||||
FutureResult<ProductDetailsData> getProductDetails(
|
||||
data, BuildContext context, id) async {
|
||||
try {
|
||||
var response = await _productService.getProductDetails(data, id);
|
||||
|
||||
ProductDetailsData loginResponse = productDetailsdataFromJson(response.toString());
|
||||
|
||||
final String model = response.toString();
|
||||
|
||||
return right(loginResponse);
|
||||
} on DioException catch (e) {
|
||||
var error = CustomDioExceptions.handleError(e);
|
||||
return left(error);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
FutureResult<BestDealProduct> getBestDealProduct(
|
||||
data, BuildContext context) async {
|
||||
try {
|
||||
@@ -103,14 +123,26 @@ class ProductRepo {
|
||||
}
|
||||
}
|
||||
|
||||
FutureResult<CheckPinResponse> checkPin(data,pin) async {
|
||||
FutureResult<CheckPinResponse> checkPin(data, pin) async {
|
||||
try {
|
||||
var response = await _productService.checkPin(data,pin);
|
||||
CheckPinResponse allCartItems = checkPinResponseFromJson(response.toString());
|
||||
var response = await _productService.checkPin(data, pin);
|
||||
CheckPinResponse allCartItems =
|
||||
checkPinResponseFromJson(response.toString());
|
||||
|
||||
return right(allCartItems);
|
||||
} on DioException catch (e) {
|
||||
var error = CustomDioExceptions.handleError(e);
|
||||
return left(error);
|
||||
}
|
||||
}
|
||||
|
||||
FutureResult<String> deleteItem(data, id) async {
|
||||
try {
|
||||
var response = await _productService.deleteItem(data, id);
|
||||
final String model = response.toString();
|
||||
|
||||
return right(model);
|
||||
} on DioException catch (e) {
|
||||
var error = CustomDioExceptions.handleError(e);
|
||||
return left(error);
|
||||
}
|
||||
|
||||
@@ -23,6 +23,12 @@ class AuthServices extends ApiService {
|
||||
var response = await api.post(APIURL.verifyOtp, data: jsonEncode(data));
|
||||
return response;
|
||||
}
|
||||
Future loginOtp(data) async {
|
||||
var response = await api.post(APIURL.loginOtp, data: jsonEncode(data));
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
Future login(data) async
|
||||
{
|
||||
var response = await api.post(APIURL.login, data: jsonEncode(data));
|
||||
|
||||
@@ -21,16 +21,24 @@ class ProductService extends ApiService {
|
||||
var response;
|
||||
|
||||
if (id.isEmpty) {
|
||||
response =
|
||||
await api.get(APIURL.getAllProduct, data: jsonEncode(data));
|
||||
}
|
||||
else{
|
||||
response = await api.get(APIURL.getAllProduct+ id, data: jsonEncode(data));
|
||||
response = await api.get(APIURL.getAllProduct, data: jsonEncode(data));
|
||||
} else {
|
||||
response =
|
||||
await api.get(APIURL.getAllProduct + id, data: jsonEncode(data));
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
Future getProductDetails(data, id) async {
|
||||
var response =
|
||||
await api.get(APIURL.getProductDetails + id, data: jsonEncode(data));
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
Future getBestDealProduct(data) async {
|
||||
var response =
|
||||
await api.get(APIURL.getBestDealProduct, data: jsonEncode(data));
|
||||
@@ -44,55 +52,50 @@ class ProductService extends ApiService {
|
||||
return response;
|
||||
}
|
||||
|
||||
Future similarProduct(data,id) async {
|
||||
var response = await api.get(APIURL.similarProduct+id+"/similar", data: jsonEncode(data));
|
||||
Future similarProduct(data, id) async {
|
||||
var response = await api.get(APIURL.similarProduct + id + "/similar",
|
||||
data: jsonEncode(data));
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
Future getItemCards(data) async {
|
||||
Future getItemCards(data) async {
|
||||
var response = await api.get(APIURL.getItemCards, data: jsonEncode(data));
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
Future checkPin(data,pin) async {
|
||||
var response = await api.get(APIURL.checkPin+pin, data: jsonEncode(data));
|
||||
Future checkPin(data, pin) async {
|
||||
var response = await api.get(APIURL.checkPin + pin, data: jsonEncode(data));
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
Future deleteItem(data, id) async {
|
||||
var response =
|
||||
await api.delete(APIURL.deleteItem + id, data: jsonEncode(data));
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Future addToWish(data) async {
|
||||
Future addToWish(data) async {
|
||||
var response = await api.post(APIURL.addToWish, data: jsonEncode(data));
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
Future addToCart(data) async {
|
||||
Future addToCart(data) async {
|
||||
var response = await api.post(APIURL.addToCart, data: jsonEncode(data));
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
Future gettAllWishList(data) async {
|
||||
var response = await api.get(APIURL.gettAllWishList, data: jsonEncode(data));
|
||||
Future gettAllWishList(data) async {
|
||||
var response =
|
||||
await api.get(APIURL.gettAllWishList, data: jsonEncode(data));
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Future getBanners(data) async {
|
||||
var response = await api.get(APIURL.getBanners, data: jsonEncode(data));
|
||||
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:flutter_svg/flutter_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/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/utils/constants/assets_constant.dart';
|
||||
import 'package:grocery_app/utils/constants/color_constant.dart';
|
||||
@@ -58,7 +61,16 @@ class _BestDealScreenState extends State<BestDealScreen> {
|
||||
)
|
||||
],
|
||||
),
|
||||
floatingActionButton: Padding(
|
||||
floatingActionButton: floatingAction(),
|
||||
body: itemBestdeal());
|
||||
}
|
||||
|
||||
Widget floatingAction() {
|
||||
return Consumer<ProductProvider>(builder: (context, provider, child) {
|
||||
if (provider.countList.isEmpty) {
|
||||
return Center();
|
||||
} else {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(left: 30),
|
||||
child: Container(
|
||||
height: 80,
|
||||
@@ -106,34 +118,41 @@ class _BestDealScreenState extends State<BestDealScreen> {
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'2 Items',
|
||||
provider.countList.length.toString(),
|
||||
style: context.customRegular(Colors.white, 18),
|
||||
),
|
||||
Text(
|
||||
'\$25',
|
||||
style: context.customExtraBold(Colors.white, 20),
|
||||
)
|
||||
],
|
||||
),
|
||||
const Spacer(),
|
||||
Text(
|
||||
'View Cart',
|
||||
style: context.customMedium(Colors.white, 24),
|
||||
),
|
||||
const SizedBox(
|
||||
width: 10,
|
||||
),
|
||||
const Icon(
|
||||
Icons.arrow_forward,
|
||||
color: Colors.white,
|
||||
size: 35,
|
||||
),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
context.read<BottomNavProvider>().setIndex(2);
|
||||
Navigator.pop(context);
|
||||
},
|
||||
child: Row(
|
||||
children: [
|
||||
Text(
|
||||
'View Cart',
|
||||
style: context.customMedium(Colors.white, 24),
|
||||
),
|
||||
const SizedBox(
|
||||
width: 10,
|
||||
),
|
||||
const Icon(
|
||||
Icons.arrow_forward,
|
||||
color: Colors.white,
|
||||
size: 35,
|
||||
),
|
||||
],
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
body: itemBestdeal());
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Widget itemBestdeal() {
|
||||
@@ -156,182 +175,183 @@ class _BestDealScreenState extends State<BestDealScreen> {
|
||||
),
|
||||
itemBuilder: (context, index) {
|
||||
var bestdealproduct = provider.bestdeal[index];
|
||||
return Container(
|
||||
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: [
|
||||
Container(
|
||||
height: MediaQuery.of(context).size.height *
|
||||
0.15, // Dynamic height
|
||||
width: MediaQuery.of(context).size.width *
|
||||
0.4, // Dynamic width
|
||||
decoration: BoxDecoration(
|
||||
color: APPCOLOR.bgGrey,
|
||||
borderRadius: BorderRadius.circular(15),
|
||||
),
|
||||
child: Stack(
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
Center(
|
||||
child: AppNetworkImage(
|
||||
height:
|
||||
MediaQuery.of(context).size.height * 0.13,
|
||||
width: MediaQuery.of(context).size.width * 0.35,
|
||||
imageUrl:
|
||||
bestdealproduct.productImages?.first.url ??
|
||||
"",
|
||||
backGroundColor: Colors.transparent,
|
||||
return InkWell(
|
||||
onTap: () {
|
||||
context.push(MyRoutes.PRODUCTDETAILS,
|
||||
extra: bestdealproduct.id);
|
||||
},
|
||||
child: Container(
|
||||
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: [
|
||||
Container(
|
||||
height: MediaQuery.of(context).size.height *
|
||||
0.15, // Dynamic height
|
||||
width: MediaQuery.of(context).size.width *
|
||||
0.4, // Dynamic width
|
||||
decoration: BoxDecoration(
|
||||
color: APPCOLOR.bgGrey,
|
||||
borderRadius: BorderRadius.circular(15),
|
||||
),
|
||||
child: Stack(
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
Center(
|
||||
child: AppNetworkImage(
|
||||
height:
|
||||
MediaQuery.of(context).size.height * 0.13,
|
||||
width:
|
||||
MediaQuery.of(context).size.width * 0.35,
|
||||
imageUrl: bestdealproduct
|
||||
.productImages?.first.url ??
|
||||
"",
|
||||
backGroundColor: Colors.transparent,
|
||||
),
|
||||
),
|
||||
// Positioned(
|
||||
// right: 5,
|
||||
// top: 5,
|
||||
// child: InkWell(
|
||||
// onTap: () async {
|
||||
// if (await SharedPrefUtils.getToken() !=
|
||||
// null) {
|
||||
// provider.toggleWishlist(
|
||||
// context, bestdealproduct.id!);
|
||||
// } else {
|
||||
// context.push(MyRoutes.LOGIN);
|
||||
// }
|
||||
// },
|
||||
// child: Icon(
|
||||
// provider.wishlist
|
||||
// .contains(bestdealproduct.id)
|
||||
// ? Icons.favorite
|
||||
// : Icons.favorite_border,
|
||||
// color: provider.wishlist
|
||||
// .contains(bestdealproduct.id)
|
||||
// ? Colors.red
|
||||
// : Colors.grey,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
],
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: MediaQuery.of(context).size.height * 0.005),
|
||||
Text(
|
||||
bestdealproduct.name ?? "",
|
||||
textAlign: TextAlign.left,
|
||||
maxLines: 2,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: context.customMedium(APPCOLOR.balck1A1A1A, 16),
|
||||
),
|
||||
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,
|
||||
),
|
||||
),
|
||||
Spacer(),
|
||||
Row(
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
Text(
|
||||
"\$${bestdealproduct.discountPrice ?? ""} ",
|
||||
textAlign: TextAlign.left,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style:
|
||||
context.customSemiBold(Colors.black, 12),
|
||||
),
|
||||
Text(
|
||||
"\$${bestdealproduct.basePrice ?? ""}",
|
||||
textAlign: TextAlign.left,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: context
|
||||
.customMedium(
|
||||
Colors.grey.withOpacity(0.8),
|
||||
12,
|
||||
)
|
||||
.copyWith(
|
||||
decoration: TextDecoration.lineThrough,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Positioned(
|
||||
right: 5,
|
||||
top: 5,
|
||||
child: InkWell(
|
||||
Spacer(),
|
||||
Align(
|
||||
alignment: Alignment.centerRight,
|
||||
child: GestureDetector(
|
||||
onTap: () async {
|
||||
if (await SharedPrefUtils.getToken() !=
|
||||
null) {
|
||||
provider.toggleWishlist(
|
||||
context, bestdealproduct.id!);
|
||||
await provider.addToWithCart(context,
|
||||
bestdealproduct.id!, bestdealproduct);
|
||||
} else {
|
||||
context.push(MyRoutes.LOGIN);
|
||||
context.push(MyRoutes.SIGNUP);
|
||||
}
|
||||
},
|
||||
child: Icon(
|
||||
provider.wishlist.contains(bestdealproduct.id)
|
||||
? Icons.favorite
|
||||
: Icons.favorite_border,
|
||||
color: provider.wishlist
|
||||
.contains(bestdealproduct.id)
|
||||
? Colors.red
|
||||
: Colors.grey,
|
||||
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
|
||||
? Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Container(
|
||||
height: 10,
|
||||
width: 10,
|
||||
child: CircularProgressIndicator(
|
||||
color: Colors.white,
|
||||
strokeWidth: 2),
|
||||
),
|
||||
)
|
||||
: Text(
|
||||
// provider.cartItems
|
||||
// .contains(bestdealproduct.id)
|
||||
// ? 'Added'
|
||||
// :
|
||||
'Add',
|
||||
style: context.customRegular(
|
||||
Colors.white, 12),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: MediaQuery.of(context).size.height * 0.005),
|
||||
Text(
|
||||
bestdealproduct.name ?? "",
|
||||
textAlign: TextAlign.left,
|
||||
maxLines: 2,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: context.customMedium(APPCOLOR.balck1A1A1A, 16),
|
||||
),
|
||||
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,
|
||||
),
|
||||
),
|
||||
Spacer(),
|
||||
Row(
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
Text(
|
||||
"\$${bestdealproduct.discountPrice ?? ""} ",
|
||||
textAlign: TextAlign.left,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: context.customSemiBold(Colors.black, 12),
|
||||
),
|
||||
Text(
|
||||
"\$${bestdealproduct.basePrice ?? ""}",
|
||||
textAlign: TextAlign.left,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: context
|
||||
.customMedium(
|
||||
Colors.grey.withOpacity(0.8),
|
||||
12,
|
||||
)
|
||||
.copyWith(
|
||||
decoration: TextDecoration.lineThrough,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Spacer(),
|
||||
Align(
|
||||
alignment: Alignment.centerRight,
|
||||
child: GestureDetector(
|
||||
onTap: () async {
|
||||
print(
|
||||
"Add to Cart Pressed for ${bestdealproduct.id}");
|
||||
|
||||
if (await SharedPrefUtils.getToken() != null) {
|
||||
// if (!(provider
|
||||
// .isLoading[bestdealproduct.id] ??
|
||||
// false))
|
||||
// {
|
||||
|
||||
await provider.addToCart(
|
||||
context, bestdealproduct.id!);
|
||||
|
||||
// }
|
||||
} else {
|
||||
context.push(MyRoutes.LOGIN);
|
||||
}
|
||||
},
|
||||
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
|
||||
? Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Container(
|
||||
height: 10,
|
||||
width: 10,
|
||||
child: CircularProgressIndicator(
|
||||
color: Colors.white,
|
||||
strokeWidth: 2),
|
||||
),
|
||||
)
|
||||
: Text(
|
||||
// provider.cartItems
|
||||
// .contains(bestdealproduct.id)
|
||||
// ? 'Added'
|
||||
// :
|
||||
'Add',
|
||||
style: context.customRegular(
|
||||
Colors.white, 12),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
@@ -2,12 +2,14 @@
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:geolocator/geolocator.dart';
|
||||
import 'package:grocery_app/src/logic/provider/bottom_navbar_provider.dart';
|
||||
import 'package:grocery_app/src/ui/cart/cartview_screen.dart';
|
||||
import 'package:grocery_app/src/ui/favourite/favourite_screen.dart';
|
||||
import 'package:grocery_app/src/ui/header.dart';
|
||||
import 'package:grocery_app/src/ui/home/home_screen.dart';
|
||||
import 'package:grocery_app/src/ui/profilepage/profile_screen.dart';
|
||||
import 'package:grocery_app/utils/constants/color_constant.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class BottomBarWidget extends StatefulWidget {
|
||||
const BottomBarWidget({super.key});
|
||||
@@ -69,10 +71,11 @@ class _BottomBarState extends State<BottomBarWidget> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
SizeConfig().init(context);
|
||||
final bottomNavProvider = Provider.of<BottomNavProvider>(context);
|
||||
|
||||
return Scaffold(
|
||||
body: PageView(
|
||||
controller: bottomWidgetPageController,
|
||||
controller: bottomNavProvider.pageController,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
children: <Widget>[
|
||||
HomeScreen(),
|
||||
@@ -89,7 +92,10 @@ class _BottomBarState extends State<BottomBarWidget> {
|
||||
duration: const Duration(milliseconds: 300),
|
||||
curve: Curves.decelerate,
|
||||
top: 0,
|
||||
left: (_currentIndex * MediaQuery.sizeOf(context).width / 4) + 42,
|
||||
left: (bottomNavProvider.currentIndex *
|
||||
MediaQuery.sizeOf(context).width /
|
||||
4) +
|
||||
42,
|
||||
child: Column(
|
||||
children: [
|
||||
ClipPath(
|
||||
@@ -119,26 +125,26 @@ class _BottomBarState extends State<BottomBarWidget> {
|
||||
BottomNavButton(
|
||||
icon: Icons.home,
|
||||
index: 0,
|
||||
currentIndex: _currentIndex,
|
||||
onPressed: _onNavButtonTapped,
|
||||
currentIndex: bottomNavProvider.currentIndex,
|
||||
onPressed: bottomNavProvider.setIndex,
|
||||
),
|
||||
BottomNavButton(
|
||||
icon: Icons.favorite,
|
||||
index: 1,
|
||||
currentIndex: _currentIndex,
|
||||
onPressed: _onNavButtonTapped,
|
||||
currentIndex: bottomNavProvider.currentIndex,
|
||||
onPressed: bottomNavProvider.setIndex,
|
||||
),
|
||||
BottomNavButton(
|
||||
icon: Icons.shopping_bag,
|
||||
index: 2,
|
||||
currentIndex: _currentIndex,
|
||||
onPressed: _onNavButtonTapped,
|
||||
currentIndex: bottomNavProvider.currentIndex,
|
||||
onPressed: bottomNavProvider.setIndex,
|
||||
),
|
||||
BottomNavButton(
|
||||
icon: Icons.person,
|
||||
index: 3,
|
||||
currentIndex: _currentIndex,
|
||||
onPressed: _onNavButtonTapped,
|
||||
currentIndex: bottomNavProvider.currentIndex,
|
||||
onPressed: bottomNavProvider.setIndex,
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -1,99 +0,0 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
import 'package:grocery_app/src/common_widget/network_image.dart';
|
||||
import 'package:grocery_app/src/ui/widgets/custom_icon_button.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/uicontext.dart';
|
||||
|
||||
class CartItem extends StatelessWidget {
|
||||
// final ProductModel product;
|
||||
const CartItem({
|
||||
Key? key,
|
||||
// required this.product,
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context)
|
||||
{
|
||||
|
||||
return
|
||||
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 24.w),
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.greenAccent.withOpacity(0.1),
|
||||
borderRadius: BorderRadius.circular(5),
|
||||
),
|
||||
child: AppNetworkImage(
|
||||
width: 50.w,
|
||||
height: 40.h,
|
||||
imageUrl:
|
||||
'https://i.pinimg.com/originals/a5/f3/5f/a5f35fb23e942809da3df91b23718e8d.png',
|
||||
backGroundColor: APPCOLOR.bgGrey,
|
||||
radius: 10,
|
||||
),
|
||||
),
|
||||
// Image.asset(product.image, width: 50.w, height: 40.h),
|
||||
|
||||
16.horizontalSpace,
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Vegitables and Fruits",
|
||||
textAlign: TextAlign.center,
|
||||
maxLines: 2,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: context.customMedium(APPCOLOR.balck1A1A1A, 14),
|
||||
),
|
||||
5.verticalSpace,
|
||||
Text(
|
||||
'1kg, 10\$',
|
||||
style: context.customMedium(APPCOLOR.balck1A1A1A, 14),
|
||||
),
|
||||
],
|
||||
),
|
||||
const Spacer(),
|
||||
Row(
|
||||
children: [
|
||||
CustomIconButton(
|
||||
width: 20.w,
|
||||
height: 20.h,
|
||||
onPressed: () {},
|
||||
icon: SvgPicture.asset(
|
||||
APPASSETS.removeIcon,
|
||||
fit: BoxFit.none,
|
||||
),
|
||||
backgroundColor: APPCOLOR.appGreen,
|
||||
),
|
||||
16.horizontalSpace,
|
||||
Text(
|
||||
"10",
|
||||
style: context.customMedium(APPCOLOR.balck1A1A1A, 14),
|
||||
),
|
||||
16.horizontalSpace,
|
||||
CustomIconButton(
|
||||
width: 20.w,
|
||||
height: 20.h,
|
||||
onPressed: () {},
|
||||
icon: SvgPicture.asset(
|
||||
APPASSETS.addIcon,
|
||||
fit: BoxFit.none,
|
||||
),
|
||||
backgroundColor: APPCOLOR.appGreen,
|
||||
),
|
||||
],
|
||||
)
|
||||
],
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,7 @@ import 'package:grocery_app/src/common_widget/textfield_widget.dart';
|
||||
import 'package:grocery_app/src/logic/provider/addTocart_provider.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/cart/cart_item.dart';
|
||||
|
||||
import 'package:grocery_app/src/ui/widgets/custom_icon_button.dart';
|
||||
import 'package:grocery_app/src/ui/widgets/elevated_button.dart';
|
||||
import 'package:grocery_app/utils/constants/assets_constant.dart';
|
||||
@@ -32,6 +32,7 @@ class _MycartState extends State<Mycart> {
|
||||
void initState() {
|
||||
Provider.of<AddtocartProvider>(context, listen: false)
|
||||
.getItemCards(context);
|
||||
|
||||
Provider.of<AddtocartProvider>(context, listen: false)
|
||||
.getCurrentLocation(context);
|
||||
|
||||
@@ -213,15 +214,16 @@ class _MycartState extends State<Mycart> {
|
||||
|
||||
Widget cartItems() {
|
||||
return Consumer<AddtocartProvider>(builder: (context, provider, child) {
|
||||
print("djkhsfjh ${provider.allitem.items}");
|
||||
if (provider.isLoaddcartItem) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(left: 120),
|
||||
child: CircularProgressIndicator(),
|
||||
return Center(
|
||||
child: CircularProgressIndicator(
|
||||
color: Colors.green,
|
||||
),
|
||||
);
|
||||
} else if (provider.allitem == null) {
|
||||
return Center(child: Text('🛒 Your Front Shop Cart is empty'));
|
||||
} else if (provider.allitem.items == null) {
|
||||
} else if (provider.allitem.items == null ||
|
||||
provider.allitem.items!.isEmpty) {
|
||||
return Center(child: Text('🛒 Your Front Shop Cart is empty'));
|
||||
} else {
|
||||
return ListView.separated(
|
||||
@@ -235,7 +237,6 @@ class _MycartState extends State<Mycart> {
|
||||
itemBuilder: (context, index) {
|
||||
var items = provider.allitem.items![index];
|
||||
|
||||
print("kdfgdjfgkj ${items}");
|
||||
return Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 10.w),
|
||||
child: Row(
|
||||
@@ -303,38 +304,76 @@ class _MycartState extends State<Mycart> {
|
||||
),
|
||||
),
|
||||
const Spacer(),
|
||||
Row(
|
||||
|
||||
Column(
|
||||
children: [
|
||||
CustomIconButton(
|
||||
width: 14.w,
|
||||
height: 14.h,
|
||||
onPressed: () {
|
||||
// provider.decreaseQuantity(items);
|
||||
Row(
|
||||
children: [
|
||||
CustomIconButton(
|
||||
width: 14.w,
|
||||
height: 14.h,
|
||||
onPressed: () {
|
||||
// provider.decreaseQuantity(items);
|
||||
},
|
||||
icon: SvgPicture.asset(
|
||||
APPASSETS.removeIcon,
|
||||
fit: BoxFit.none,
|
||||
),
|
||||
backgroundColor: APPCOLOR.appGreen,
|
||||
),
|
||||
5.horizontalSpace,
|
||||
Text(
|
||||
items.quantity.toString(),
|
||||
style:
|
||||
context.customMedium(APPCOLOR.balck1A1A1A, 14),
|
||||
),
|
||||
5.horizontalSpace,
|
||||
CustomIconButton(
|
||||
width: 14.w,
|
||||
height: 14.h,
|
||||
onPressed: () {
|
||||
// provider..increaseQuantity(items);
|
||||
},
|
||||
icon: SvgPicture.asset(
|
||||
APPASSETS.addIcon,
|
||||
fit: BoxFit.none,
|
||||
),
|
||||
backgroundColor: APPCOLOR.appGreen,
|
||||
),
|
||||
],
|
||||
),
|
||||
Gap(20),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
provider.deleteItem(context, items.id);
|
||||
},
|
||||
icon: SvgPicture.asset(
|
||||
APPASSETS.removeIcon,
|
||||
fit: BoxFit.none,
|
||||
child: Container(
|
||||
height: 25,
|
||||
width: 70,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.all(Radius.circular(10)),
|
||||
shape: BoxShape.rectangle,
|
||||
border: Border.all(
|
||||
color: Colors
|
||||
.blue, // Replace with your desired border color
|
||||
width: 2, // Border width
|
||||
),
|
||||
),
|
||||
child: provider.isRemoveItem[items.id] ?? false
|
||||
? Center(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Container(
|
||||
height: 5,
|
||||
width: 5,
|
||||
child: CircularProgressIndicator(
|
||||
color: Colors.green, strokeWidth: 1),
|
||||
),
|
||||
),
|
||||
)
|
||||
: Center(child: Text("Delete")),
|
||||
),
|
||||
backgroundColor: APPCOLOR.appGreen,
|
||||
),
|
||||
5.horizontalSpace,
|
||||
Text(
|
||||
items.quantity.toString(),
|
||||
style: context.customMedium(APPCOLOR.balck1A1A1A, 14),
|
||||
),
|
||||
5.horizontalSpace,
|
||||
CustomIconButton(
|
||||
width: 14.w,
|
||||
height: 14.h,
|
||||
onPressed: () {
|
||||
// provider..increaseQuantity(items);
|
||||
},
|
||||
icon: SvgPicture.asset(
|
||||
APPASSETS.addIcon,
|
||||
fit: BoxFit.none,
|
||||
),
|
||||
backgroundColor: APPCOLOR.appGreen,
|
||||
),
|
||||
)
|
||||
],
|
||||
)
|
||||
],
|
||||
@@ -356,7 +395,9 @@ class _MycartState extends State<Mycart> {
|
||||
if (provider.isLoaddcartItem) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(left: 120),
|
||||
child: CircularProgressIndicator(),
|
||||
child: CircularProgressIndicator(
|
||||
color: Colors.white,
|
||||
),
|
||||
);
|
||||
} else if (provider.allitem == null) {
|
||||
return Center(child: Text('🛒 Your Front Shop Cart is empty'));
|
||||
@@ -384,9 +425,7 @@ class _MycartState extends State<Mycart> {
|
||||
trailing: Icon(Icons.arrow_forward_ios),
|
||||
onTap: () {},
|
||||
),
|
||||
SummaryRow(
|
||||
label: 'Item Total',
|
||||
value: '\$22'),
|
||||
SummaryRow(label: 'Item Total', value: '\$22'),
|
||||
SummaryRow(label: 'Discount', value: '\$2'),
|
||||
SummaryRow(label: 'Delivery Free', value: 'Free', isGreen: true),
|
||||
Divider(),
|
||||
|
||||
@@ -106,219 +106,231 @@ class _FruitVeggieDetailState extends State<FruitVeggieDetail> {
|
||||
crossAxisSpacing: 10,
|
||||
mainAxisSpacing: 10,
|
||||
),
|
||||
itemBuilder: (context, index) {
|
||||
itemBuilder: (context, index)
|
||||
{
|
||||
var product = provider.products[index];
|
||||
|
||||
return InkWell(
|
||||
onTap: ()
|
||||
{
|
||||
context.push(MyRoutes.PRODUCTDETAILS,
|
||||
extra: product.id);
|
||||
},
|
||||
child: Container(
|
||||
height: itemHeight,
|
||||
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: [
|
||||
Container(
|
||||
height: itemWidth *
|
||||
0.6, // Adjust height for image container
|
||||
width: itemWidth,
|
||||
decoration: BoxDecoration(
|
||||
color: APPCOLOR.bgGrey,
|
||||
borderRadius: BorderRadius.circular(15),
|
||||
),
|
||||
child: Stack(
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
AppNetworkImage(
|
||||
height: 70,
|
||||
width: 70,
|
||||
imageUrl: product
|
||||
.productImages!.first.url ??
|
||||
"https://5.imimg.com/data5/SELLER/Default/2024/2/385126988/OL/DA/VW/8627346/1l-fortune-sunflower-oil.jpg",
|
||||
backGroundColor: Colors.transparent,
|
||||
),
|
||||
// Positioned(
|
||||
// right: 5,
|
||||
// top: 5,
|
||||
// child: InkWell(
|
||||
// onTap: () async {
|
||||
// if (await SharedPrefUtils.getToken() !=
|
||||
// null) {
|
||||
// if (product.isInWishlist) {
|
||||
// Fluttertoast.showToast(
|
||||
// msg: "Item already added!",
|
||||
// toastLength: Toast.LENGTH_SHORT,
|
||||
// gravity: ToastGravity.BOTTOM,
|
||||
// backgroundColor: Colors.green,
|
||||
// textColor: Colors.white,
|
||||
// fontSize: 14.0,
|
||||
// );
|
||||
// } else {
|
||||
// //product.isInWishlist=ture;
|
||||
// provider
|
||||
// .toggleWishlist1(product.id!);
|
||||
// }
|
||||
// } else {
|
||||
// context.push(MyRoutes.LOGIN);
|
||||
// }
|
||||
// },
|
||||
// child: Icon(
|
||||
// product.isInWishlist
|
||||
// ? Icons.favorite
|
||||
// : Icons.favorite_border,
|
||||
// color: product.isInWishlist
|
||||
// ? Colors.red
|
||||
// : Colors.grey,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
|
||||
return Container(
|
||||
height: itemHeight,
|
||||
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: [
|
||||
Container(
|
||||
height: itemWidth *
|
||||
0.6, // Adjust height for image container
|
||||
width: itemWidth,
|
||||
decoration: BoxDecoration(
|
||||
color: APPCOLOR.bgGrey,
|
||||
borderRadius: BorderRadius.circular(15),
|
||||
Positioned(
|
||||
right: 5,
|
||||
top: 5,
|
||||
child: InkWell(
|
||||
onTap: () async {
|
||||
if (await SharedPrefUtils
|
||||
.getToken() !=
|
||||
null) {
|
||||
provider.toggleWishlist(
|
||||
context, product.id!);
|
||||
} else {
|
||||
context.push(MyRoutes.SIGNUP);
|
||||
}
|
||||
},
|
||||
child: Icon(
|
||||
provider.wishlist.contains(product.id)
|
||||
? Icons.favorite
|
||||
: Icons.favorite_border,
|
||||
color: provider.wishlist
|
||||
.contains(product.id)
|
||||
? Colors.red
|
||||
: Colors.grey,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
child: Stack(
|
||||
alignment: Alignment.center,
|
||||
const SizedBox(height: 5),
|
||||
Text(
|
||||
product.name ?? " ",
|
||||
textAlign: TextAlign.left,
|
||||
maxLines: 2,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: context.customMedium(
|
||||
APPCOLOR.balck1A1A1A, 14),
|
||||
),
|
||||
const SizedBox(height: 5),
|
||||
Text(
|
||||
product.unit ?? " ",
|
||||
textAlign: TextAlign.left,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: context.customMedium(
|
||||
Colors.grey.withOpacity(0.8),
|
||||
12,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 3),
|
||||
Row(
|
||||
children: [
|
||||
AppNetworkImage(
|
||||
height: 70,
|
||||
width: 70,
|
||||
imageUrl: product
|
||||
.productImages!.first.url ??
|
||||
"https://5.imimg.com/data5/SELLER/Default/2024/2/385126988/OL/DA/VW/8627346/1l-fortune-sunflower-oil.jpg",
|
||||
backGroundColor: Colors.transparent,
|
||||
Column(
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"\$${product.discountPrice ?? " "}",
|
||||
textAlign: TextAlign.left,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: context.customSemiBold(
|
||||
Colors.black, 12),
|
||||
),
|
||||
const SizedBox(width: 5),
|
||||
Text(
|
||||
"\$${product.basePrice ?? " "}",
|
||||
textAlign: TextAlign.left,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: context
|
||||
.customMedium(
|
||||
Colors.grey.withOpacity(0.8),
|
||||
12,
|
||||
)
|
||||
.copyWith(
|
||||
decoration:
|
||||
TextDecoration.lineThrough,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
// Positioned(
|
||||
// right: 5,
|
||||
// top: 5,
|
||||
// child: InkWell(
|
||||
// onTap: () async {
|
||||
// if (await SharedPrefUtils.getToken() !=
|
||||
// null) {
|
||||
// if (product.isInWishlist) {
|
||||
// Fluttertoast.showToast(
|
||||
// msg: "Item already added!",
|
||||
// toastLength: Toast.LENGTH_SHORT,
|
||||
// gravity: ToastGravity.BOTTOM,
|
||||
// backgroundColor: Colors.green,
|
||||
// textColor: Colors.white,
|
||||
// fontSize: 14.0,
|
||||
// );
|
||||
// } else {
|
||||
// //product.isInWishlist=ture;
|
||||
// provider
|
||||
// .toggleWishlist1(product.id!);
|
||||
// }
|
||||
// } else {
|
||||
// context.push(MyRoutes.LOGIN);
|
||||
// }
|
||||
// },
|
||||
// child: Icon(
|
||||
// product.isInWishlist
|
||||
// ? Icons.favorite
|
||||
// : Icons.favorite_border,
|
||||
// color: product.isInWishlist
|
||||
// ? Colors.red
|
||||
// : Colors.grey,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
|
||||
Positioned(
|
||||
right: 5,
|
||||
top: 5,
|
||||
child: InkWell(
|
||||
Spacer(),
|
||||
Align(
|
||||
alignment: Alignment.centerRight,
|
||||
child: GestureDetector(
|
||||
onTap: () async {
|
||||
print(
|
||||
"Add to Cart Pressed for ${product.id}");
|
||||
|
||||
if (await SharedPrefUtils.getToken() !=
|
||||
null) {
|
||||
provider.toggleWishlist(
|
||||
await provider.addToCart(
|
||||
context, product.id!);
|
||||
} else {
|
||||
context.push(MyRoutes.LOGIN);
|
||||
context.push(MyRoutes.SIGNUP);
|
||||
}
|
||||
},
|
||||
child: Icon(
|
||||
provider.wishlist.contains(product.id)
|
||||
? Icons.favorite
|
||||
: Icons.favorite_border,
|
||||
color: provider.wishlist
|
||||
.contains(product.id)
|
||||
? Colors.red
|
||||
: Colors.grey,
|
||||
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[product.id] ??
|
||||
false
|
||||
? Padding(
|
||||
padding:
|
||||
const EdgeInsets.all(8.0),
|
||||
child: Container(
|
||||
height: 10,
|
||||
width: 10,
|
||||
child:
|
||||
CircularProgressIndicator(
|
||||
color: Colors.white,
|
||||
strokeWidth: 2),
|
||||
),
|
||||
)
|
||||
: Text(
|
||||
// provider.cartItems
|
||||
// .contains(bestdealproduct.id)
|
||||
// ? 'Added'
|
||||
// :
|
||||
'Add',
|
||||
style: context.customRegular(
|
||||
Colors.white, 12),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 5),
|
||||
Text(
|
||||
product.name ?? " ",
|
||||
textAlign: TextAlign.left,
|
||||
maxLines: 2,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: context.customMedium(
|
||||
APPCOLOR.balck1A1A1A, 14),
|
||||
),
|
||||
const SizedBox(height: 5),
|
||||
Text(
|
||||
product.unit ?? " ",
|
||||
textAlign: TextAlign.left,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: context.customMedium(
|
||||
Colors.grey.withOpacity(0.8),
|
||||
12,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 3),
|
||||
Row(
|
||||
children: [
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"\$${product.discountPrice ?? " "}",
|
||||
textAlign: TextAlign.left,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: context.customSemiBold(
|
||||
Colors.black, 12),
|
||||
),
|
||||
const SizedBox(width: 5),
|
||||
Text(
|
||||
"\$${product.basePrice ?? " "}",
|
||||
textAlign: TextAlign.left,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: context
|
||||
.customMedium(
|
||||
Colors.grey.withOpacity(0.8),
|
||||
12,
|
||||
)
|
||||
.copyWith(
|
||||
decoration:
|
||||
TextDecoration.lineThrough,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Spacer(),
|
||||
Align(
|
||||
alignment: Alignment.centerRight,
|
||||
child: GestureDetector(
|
||||
onTap: () async {
|
||||
print(
|
||||
"Add to Cart Pressed for ${product.id}");
|
||||
|
||||
if (await SharedPrefUtils.getToken() !=
|
||||
null) {
|
||||
await provider.addToCart(
|
||||
context, product.id!);
|
||||
} else {
|
||||
context.push(MyRoutes.LOGIN);
|
||||
}
|
||||
},
|
||||
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[product.id] ??
|
||||
false
|
||||
? Padding(
|
||||
padding:
|
||||
const EdgeInsets.all(8.0),
|
||||
child: Container(
|
||||
height: 10,
|
||||
width: 10,
|
||||
child:
|
||||
CircularProgressIndicator(
|
||||
color: Colors.white,
|
||||
strokeWidth: 2),
|
||||
),
|
||||
)
|
||||
: Text(
|
||||
// provider.cartItems
|
||||
// .contains(bestdealproduct.id)
|
||||
// ? 'Added'
|
||||
// :
|
||||
'Add',
|
||||
style: context.customRegular(
|
||||
Colors.white, 12),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
@@ -190,192 +190,198 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
double cardWidth =
|
||||
MediaQuery.of(context).size.width * 0.4; // Dynamic width
|
||||
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(right: 10, bottom: 5, top: 5),
|
||||
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),
|
||||
return InkWell(
|
||||
onTap: () {
|
||||
context.push(MyRoutes.PRODUCTDETAILS,
|
||||
extra: bestdealproduct.id);
|
||||
},
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(right: 10, bottom: 5, top: 5),
|
||||
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(
|
||||
height: MediaQuery.of(context).size.height *
|
||||
0.08,
|
||||
width: cardWidth * 0.7,
|
||||
imageUrl: bestdealproduct
|
||||
.productImages?.first?.url ??
|
||||
"",
|
||||
backGroundColor: Colors.transparent,
|
||||
),
|
||||
// Positioned(
|
||||
// right: 5,
|
||||
// top: 5,
|
||||
// child: InkWell(
|
||||
// onTap: () async {
|
||||
// if (await SharedPrefUtils.getToken() !=
|
||||
// null) {
|
||||
// provider.toggleWishlist(
|
||||
// context, bestdealproduct.id!);
|
||||
// } else {
|
||||
// context.push(MyRoutes.LOGIN);
|
||||
// }
|
||||
// },
|
||||
// child: Icon(
|
||||
// provider.wishlist
|
||||
// .contains(bestdealproduct.id)
|
||||
// ? Icons.favorite
|
||||
// : Icons.favorite_border,
|
||||
// color: provider.wishlist
|
||||
// .contains(bestdealproduct.id)
|
||||
// ? Colors.red
|
||||
// : Colors.grey,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
],
|
||||
),
|
||||
),
|
||||
child: Stack(
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
AppNetworkImage(
|
||||
height:
|
||||
MediaQuery.of(context).size.height * 0.08,
|
||||
width: cardWidth * 0.7,
|
||||
imageUrl: bestdealproduct
|
||||
.productImages?.first?.url ??
|
||||
"",
|
||||
backGroundColor: Colors.transparent,
|
||||
),
|
||||
Positioned(
|
||||
right: 5,
|
||||
top: 5,
|
||||
child: InkWell(
|
||||
onTap: () async {
|
||||
if (await SharedPrefUtils.getToken() !=
|
||||
null) {
|
||||
provider.toggleWishlist(
|
||||
context, bestdealproduct.id!);
|
||||
} else {
|
||||
context.push(MyRoutes.LOGIN);
|
||||
}
|
||||
},
|
||||
child: Icon(
|
||||
provider.wishlist
|
||||
.contains(bestdealproduct.id)
|
||||
? Icons.favorite
|
||||
: Icons.favorite_border,
|
||||
color: provider.wishlist
|
||||
.contains(bestdealproduct.id)
|
||||
? Colors.red
|
||||
: Colors.grey,
|
||||
),
|
||||
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: [
|
||||
Row(
|
||||
children: [
|
||||
Text(
|
||||
"\$${bestdealproduct.discountPrice ?? ""} ",
|
||||
textAlign: TextAlign.left,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: context.customSemiBold(
|
||||
Colors.black, 12),
|
||||
),
|
||||
Text(
|
||||
"\$${bestdealproduct.basePrice ?? ""}",
|
||||
textAlign: TextAlign.left,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: context
|
||||
.customMedium(
|
||||
Colors.grey.withOpacity(0.8),
|
||||
12,
|
||||
)
|
||||
.copyWith(
|
||||
decoration:
|
||||
TextDecoration.lineThrough,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
const Spacer(),
|
||||
Align(
|
||||
alignment: Alignment.centerRight,
|
||||
child: GestureDetector(
|
||||
onTap: () async {
|
||||
print(
|
||||
"Add to Cart Pressed for ${bestdealproduct.id}");
|
||||
|
||||
if (await SharedPrefUtils.getToken() !=
|
||||
null) {
|
||||
// if (!(provider
|
||||
// .isLoading[bestdealproduct.id] ??
|
||||
// false))
|
||||
// {
|
||||
|
||||
await provider.addToCart(
|
||||
context, bestdealproduct.id!);
|
||||
|
||||
// }
|
||||
} 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
|
||||
? 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),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
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: [
|
||||
Row(
|
||||
children: [
|
||||
Text(
|
||||
"\$${bestdealproduct.discountPrice ?? ""} ",
|
||||
textAlign: TextAlign.left,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style:
|
||||
context.customSemiBold(Colors.black, 12),
|
||||
),
|
||||
Text(
|
||||
"\$${bestdealproduct.basePrice ?? ""}",
|
||||
textAlign: TextAlign.left,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: context
|
||||
.customMedium(
|
||||
Colors.grey.withOpacity(0.8),
|
||||
12,
|
||||
)
|
||||
.copyWith(
|
||||
decoration: TextDecoration.lineThrough,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
const Spacer(),
|
||||
Align(
|
||||
alignment: Alignment.centerRight,
|
||||
child: GestureDetector(
|
||||
onTap: () async {
|
||||
print(
|
||||
"Add to Cart Pressed for ${bestdealproduct.id}");
|
||||
|
||||
if (await SharedPrefUtils.getToken() !=
|
||||
null) {
|
||||
// if (!(provider
|
||||
// .isLoading[bestdealproduct.id] ??
|
||||
// false))
|
||||
// {
|
||||
|
||||
await provider.addToCart(
|
||||
context, bestdealproduct.id!);
|
||||
|
||||
// }
|
||||
} else {
|
||||
context.push(MyRoutes.LOGIN);
|
||||
}
|
||||
},
|
||||
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
|
||||
? Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Container(
|
||||
height: 10,
|
||||
width: 10,
|
||||
child: CircularProgressIndicator(
|
||||
color: Colors.white,
|
||||
strokeWidth: 2),
|
||||
),
|
||||
)
|
||||
: Text(
|
||||
// provider.cartItems
|
||||
// .contains(bestdealproduct.id)
|
||||
// ? 'Added'
|
||||
// :
|
||||
'Add',
|
||||
style: context.customRegular(
|
||||
Colors.white, 12),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -505,7 +511,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
var product = provider.products[index];
|
||||
return InkWell(
|
||||
onTap: () {
|
||||
context.push(MyRoutes.PRODUCTDETAILS, extra: product);
|
||||
context.push(MyRoutes.PRODUCTDETAILS, extra: product.id);
|
||||
},
|
||||
child: SizedBox(
|
||||
child: Column(
|
||||
|
||||
@@ -92,7 +92,7 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||
await pageNotifier.sendOtp(phoneController.text, context);
|
||||
|
||||
if (success) {
|
||||
context.push(MyRoutes.OTPSCREEN);
|
||||
context.push(MyRoutes.LOGINOTPSCREEN);
|
||||
} else {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
|
||||
154
lib/src/ui/login/signup_screen.dart
Normal file
154
lib/src/ui/login/signup_screen.dart
Normal file
@@ -0,0 +1,154 @@
|
||||
import 'package:flutter/gestures.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:grocery_app/src/common_widget/textfield_widget.dart';
|
||||
import 'package:grocery_app/src/core/routes/routes.dart';
|
||||
import 'package:grocery_app/src/logic/provider/auth_provider.dart';
|
||||
import 'package:grocery_app/src/ui/otp/otp_screen.dart';
|
||||
import 'package:grocery_app/utils/constants/color_constant.dart';
|
||||
import 'package:grocery_app/utils/constants/string_constant.dart';
|
||||
import 'package:grocery_app/utils/extensions/uicontext.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class SingnuScreen extends StatefulWidget {
|
||||
const SingnuScreen({super.key});
|
||||
|
||||
@override
|
||||
State<SingnuScreen> createState() => _SingnuScreenState();
|
||||
}
|
||||
|
||||
class _SingnuScreenState extends State<SingnuScreen> {
|
||||
TextEditingController phoneController = TextEditingController();
|
||||
|
||||
String? validatePhoneNumber(String? value) {
|
||||
if (value == null || value.isEmpty) {
|
||||
return 'Phone number cannot be empty';
|
||||
} else if (!RegExp(r'^\d{10}$').hasMatch(value)) {
|
||||
return 'Enter a valid 10-digit phone number';
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
final _formKey = GlobalKey<FormState>();
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final pageNotifier = Provider.of<AuthProvider>(context, listen: false);
|
||||
|
||||
return Scaffold(
|
||||
body: Container(
|
||||
width: MediaQuery.sizeOf(context).width,
|
||||
height: MediaQuery.sizeOf(context).height,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.greenAccent.withOpacity(0.1),
|
||||
),
|
||||
child: Padding(
|
||||
padding: context.bodyAllPadding,
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
const SizedBox(height: 30),
|
||||
Text(
|
||||
APPSTRING.enterYourMobileNumber,
|
||||
style: context.customMedium(APPCOLOR.balck1A1A1A, 18),
|
||||
),
|
||||
const SizedBox(height: 40),
|
||||
Text(
|
||||
APPSTRING.whatYourPhoneNumber,
|
||||
style: context.customMedium(APPCOLOR.black333333, 18),
|
||||
),
|
||||
SizedBox(
|
||||
width: 200,
|
||||
child: Text(
|
||||
APPSTRING.codeSentText,
|
||||
style: context.customMedium(APPCOLOR.grey666666, 14),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 40),
|
||||
Form(
|
||||
key: _formKey,
|
||||
child: AppTextFieldWidget(
|
||||
length: 10,
|
||||
controller: phoneController,
|
||||
hintText: APPSTRING.phoneNumberHint,
|
||||
onValidate: (value) => validatePhoneNumber(value),
|
||||
),
|
||||
),
|
||||
RichText(
|
||||
text: TextSpan(
|
||||
text: "Already have an account? ",
|
||||
style: TextStyle(color: Colors.black, fontSize: 16),
|
||||
children: [
|
||||
TextSpan(
|
||||
text: "Login",
|
||||
style: TextStyle(
|
||||
color: Colors.blue,
|
||||
fontWeight: FontWeight.bold,
|
||||
decoration: TextDecoration.underline,
|
||||
),
|
||||
// Navigate to Login Screen when tapped
|
||||
recognizer: TapGestureRecognizer()
|
||||
..onTap = () {
|
||||
context.push(MyRoutes.LOGIN);
|
||||
},
|
||||
),
|
||||
])),
|
||||
Text(
|
||||
"",
|
||||
style: context.customMedium(APPCOLOR.balck1A1A1A, 18),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
bottomNavigationBar: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.greenAccent.withOpacity(0.1),
|
||||
),
|
||||
height: 100,
|
||||
child: Padding(
|
||||
padding: context.bodyAllPadding.copyWith(bottom: 20),
|
||||
child: Center(
|
||||
child: InkWell(
|
||||
onTap: () async {
|
||||
if (_formKey.currentState?.validate() ?? false) {
|
||||
final success =
|
||||
await pageNotifier.sendOtp(phoneController.text, context);
|
||||
|
||||
if (success) {
|
||||
context.push(MyRoutes.OTPSCREEN);
|
||||
} else {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text("Failed to send OTP. Please try again."),
|
||||
),
|
||||
);
|
||||
}
|
||||
} else {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text("Enter a valid 10-digit phone number."),
|
||||
),
|
||||
);
|
||||
}
|
||||
},
|
||||
child: Container(
|
||||
height: 50,
|
||||
width: MediaQuery.sizeOf(context).width,
|
||||
decoration: BoxDecoration(
|
||||
color: APPCOLOR.appGreen,
|
||||
borderRadius: BorderRadius.circular(4)),
|
||||
child: Center(
|
||||
child: Text(
|
||||
APPSTRING.verifyButton,
|
||||
style: context.customMedium(Colors.white, 16),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -33,7 +33,7 @@ class _OnBoardingScreenState extends State<OnBoardingScreen> {
|
||||
|
||||
skipbyarrowFunction() {
|
||||
SharedPrefUtils.setFreshInstall(isFresh: false).then(
|
||||
(value) => context.clearAndPush(routePath: MyRoutes.LOGIN, args: 0),
|
||||
(value) => context.clearAndPush(routePath: MyRoutes.SIGNUP, args: 0),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
123
lib/src/ui/otp/login_otp.dart
Normal file
123
lib/src/ui/otp/login_otp.dart
Normal file
@@ -0,0 +1,123 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:grocery_app/src/logic/provider/auth_provider.dart';
|
||||
import 'package:grocery_app/src/ui/entername/enter_fullname_screen.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/string_constant.dart';
|
||||
import 'package:grocery_app/utils/extensions/color_ex.dart';
|
||||
import 'package:grocery_app/utils/extensions/extensions.dart';
|
||||
import 'package:grocery_app/utils/extensions/uicontext.dart';
|
||||
import 'package:otp_text_field/otp_text_field.dart';
|
||||
import 'package:otp_text_field/style.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../../core/routes/routes.dart';
|
||||
|
||||
class LoginOtpScreen extends StatefulWidget {
|
||||
const LoginOtpScreen({super.key});
|
||||
|
||||
@override
|
||||
State<LoginOtpScreen> createState() => _LoginOtpScreenState();
|
||||
}
|
||||
|
||||
class _LoginOtpScreenState extends State<LoginOtpScreen> {
|
||||
String maskNumber(String number) {
|
||||
// Ensure the input has at least 4 digits to avoid errors
|
||||
if (number.length < 4) {
|
||||
throw Exception('Number is too short to mask');
|
||||
}
|
||||
|
||||
// Replace all characters except the last 4 with '*'
|
||||
String maskedPart = '*' * (number.length - 4);
|
||||
String visiblePart = number.substring(number.length - 4);
|
||||
return maskedPart + visiblePart;
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final pageNotifier = Provider.of<AuthProvider>(context, listen: false);
|
||||
|
||||
return Scaffold(
|
||||
body: Container(
|
||||
width: MediaQuery.sizeOf(context).width,
|
||||
height: MediaQuery.sizeOf(context).height,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.greenAccent.withOpacity(0.1),
|
||||
),
|
||||
child: Padding(
|
||||
padding: context.bodyAllPadding,
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
const SizedBox(height: 30),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
child: SvgPicture.asset(APPASSETS.back)),
|
||||
const SizedBox(height: 30),
|
||||
Text(
|
||||
APPSTRING.enterVerificationCode,
|
||||
style: context.customMedium(APPCOLOR.black333333, 18),
|
||||
),
|
||||
SizedBox(
|
||||
width: 300,
|
||||
child: Text(
|
||||
"Enter the 6-digit code sent to you at ${maskNumber(pageNotifier.numberwithCode)}",
|
||||
style: context.customRegular(APPCOLOR.grey666666, 16),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
OTPTextField(
|
||||
length: 6,
|
||||
onChanged: (c)
|
||||
{
|
||||
|
||||
},
|
||||
width: MediaQuery.of(context).size.width,
|
||||
fieldWidth: 50,
|
||||
otpFieldStyle: OtpFieldStyle(
|
||||
backgroundColor: HexColor('F4F5F5'),
|
||||
),
|
||||
style: const TextStyle(fontSize: 17),
|
||||
textFieldAlignment: MainAxisAlignment.spaceBetween,
|
||||
fieldStyle: FieldStyle.box,
|
||||
onCompleted: (pin) async {
|
||||
final success = await pageNotifier.loginOtp(pin, context);
|
||||
|
||||
if (success)
|
||||
{
|
||||
context.clearAndPush(routePath: MyRoutes.BOTTOMNAV);
|
||||
} else {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
backgroundColor: Colors.grey,
|
||||
content: Text("Failed to send OTP. Please try again."),
|
||||
),
|
||||
);
|
||||
}
|
||||
},
|
||||
),
|
||||
const SizedBox(
|
||||
height: 10,
|
||||
),
|
||||
RichText(
|
||||
text: TextSpan(
|
||||
text: 'Didn’t get the code? ',
|
||||
style: context.customRegular(APPCOLOR.gery48514D, 14),
|
||||
children: [
|
||||
TextSpan(
|
||||
text: 'Resend',
|
||||
style: context.customRegular(APPCOLOR.appGreen, 14),
|
||||
)
|
||||
]))
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -20,8 +20,8 @@ import 'package:provider/provider.dart';
|
||||
import 'package:readmore/readmore.dart';
|
||||
|
||||
class ProductDetails extends StatefulWidget {
|
||||
Product product;
|
||||
ProductDetails({super.key, required this.product});
|
||||
String id;
|
||||
ProductDetails({super.key, required this.id});
|
||||
|
||||
@override
|
||||
State<ProductDetails> createState() => _ProductDetailsState();
|
||||
@@ -35,22 +35,24 @@ class _ProductDetailsState extends State<ProductDetails> {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
Provider.of<ProductProvider>(context, listen: false)
|
||||
.getProduuctDetails(context, widget.id);
|
||||
|
||||
productId = widget.product.id;
|
||||
Future.delayed(Duration.zero, () {
|
||||
Provider.of<ProductProvider>(context, listen: false)
|
||||
.setProductPrice(double.parse(widget.product.discountPrice));
|
||||
// productId = widget.product.id;
|
||||
// Future.delayed(Duration.zero, () {
|
||||
// Provider.of<ProductProvider>(context, listen: false)
|
||||
// .setProductPrice(double.parse(widget.product.discountPrice));
|
||||
|
||||
Provider.of<ProductProvider>(context, listen: false)
|
||||
.similarProductprovider(context, widget.product.id);
|
||||
});
|
||||
// Provider.of<ProductProvider>(context, listen: false)
|
||||
// .similarProductprovider(context, widget.product.id);
|
||||
// });
|
||||
|
||||
Timer.periodic(Duration(seconds: 3), (timer) {
|
||||
setState(() {
|
||||
selectedImage =
|
||||
(selectedImage + 1) % widget.product.productImages!.length;
|
||||
});
|
||||
});
|
||||
// Timer.periodic(Duration(seconds: 3), (timer) {
|
||||
// setState(() {
|
||||
// selectedImage =
|
||||
// (selectedImage + 1) % widget.product.productImages!.length;
|
||||
// });
|
||||
// });
|
||||
}
|
||||
|
||||
double value = 3.5;
|
||||
@@ -90,102 +92,7 @@ class _ProductDetailsState extends State<ProductDetails> {
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
SizedBox(
|
||||
height: 300,
|
||||
child: CarouselSlider.builder(
|
||||
itemCount: widget.product.productImages!.length,
|
||||
itemBuilder: (context, index, realIndex) {
|
||||
var productImage = widget.product.productImages![index];
|
||||
return Image.network(productImage.url ??
|
||||
'https://i.pinimg.com/originals/a5/f3/5f/a5f35fb23e942809da3df91b23718e8d.png');
|
||||
},
|
||||
options: CarouselOptions(
|
||||
height: 300,
|
||||
initialPage: selectedImage,
|
||||
enableInfiniteScroll: true,
|
||||
autoPlay: true,
|
||||
autoPlayInterval: Duration(seconds: 3),
|
||||
autoPlayAnimationDuration: Duration(milliseconds: 800),
|
||||
enlargeCenterPage: true,
|
||||
onPageChanged: (index, reason) {
|
||||
setState(() {
|
||||
selectedImage = index;
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: widget.product.productImages!.map((url) {
|
||||
int index = widget.product.productImages!.indexOf(url);
|
||||
return Container(
|
||||
margin: EdgeInsets.symmetric(horizontal: 5),
|
||||
width: 8,
|
||||
height: 8,
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: selectedImage == index ? Colors.red : Colors.grey,
|
||||
),
|
||||
);
|
||||
}).toList(),
|
||||
),
|
||||
SizedBox(height: 10),
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16.0),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
widget.product.name ?? "",
|
||||
style: context.customExtraBold(Colors.black, 18),
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Text(
|
||||
"\$${widget.product.discountPrice}",
|
||||
style: TextStyle(
|
||||
fontSize: 25,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: Colors.green),
|
||||
),
|
||||
SizedBox(width: 10),
|
||||
Text(
|
||||
"\$${widget.product.basePrice}",
|
||||
style: TextStyle(
|
||||
fontSize: 25,
|
||||
fontWeight: FontWeight.bold,
|
||||
decoration: TextDecoration.lineThrough,
|
||||
color: Colors.grey,
|
||||
),
|
||||
),
|
||||
SizedBox(width: 10),
|
||||
Container(
|
||||
padding:
|
||||
EdgeInsets.symmetric(horizontal: 6, vertical: 2),
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.green,
|
||||
borderRadius: BorderRadius.circular(5),
|
||||
),
|
||||
child: Text("10% OFF",
|
||||
style:
|
||||
TextStyle(color: Colors.white, fontSize: 14)),
|
||||
)
|
||||
],
|
||||
),
|
||||
SizedBox(height: 10),
|
||||
ReadMoreText(
|
||||
widget.product.description ?? "",
|
||||
trimMode: TrimMode.Line,
|
||||
trimLines: 2,
|
||||
colorClickableText: APPCOLOR.appGreen,
|
||||
trimCollapsedText: 'Read More',
|
||||
trimExpandedText: 'Show less',
|
||||
style: context.customMedium(APPCOLOR.balck1A1A1A, 14),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
prodectDtails(),
|
||||
Divider(),
|
||||
reviews(),
|
||||
Divider(),
|
||||
@@ -203,10 +110,148 @@ class _ProductDetailsState extends State<ProductDetails> {
|
||||
),
|
||||
),
|
||||
),
|
||||
bottomNavigationBar: bottomBar(),
|
||||
// bottomNavigationBar: bottomBar(),
|
||||
);
|
||||
}
|
||||
|
||||
Widget prodectDtails() {
|
||||
return Consumer<ProductProvider>(builder: (context, provider, child) {
|
||||
if (provider.isProductLoading) {
|
||||
return Center(
|
||||
child: CircularProgressIndicator(
|
||||
color: Colors.green,
|
||||
));
|
||||
} else if (provider.productDetails.data == null) {
|
||||
return Center(child: Text('No products available'));
|
||||
} else {
|
||||
return Column(
|
||||
children: [
|
||||
SizedBox(
|
||||
height: 300,
|
||||
child: CarouselSlider.builder(
|
||||
itemCount:
|
||||
provider.productDetails.data!.productImages!.length ?? 0,
|
||||
itemBuilder: (context, index, realIndex) {
|
||||
var productImage =
|
||||
provider.productDetails.data!.productImages![index];
|
||||
return Image.network(productImage.url ??
|
||||
'https://i.pinimg.com/originals/a5/f3/5f/a5f35fb23e942809da3df91b23718e8d.png');
|
||||
},
|
||||
options: CarouselOptions(
|
||||
height: 300,
|
||||
initialPage: selectedImage,
|
||||
enableInfiniteScroll: true,
|
||||
autoPlay: true,
|
||||
autoPlayInterval: Duration(seconds: 3),
|
||||
autoPlayAnimationDuration: Duration(milliseconds: 800),
|
||||
enlargeCenterPage: true,
|
||||
onPageChanged: (index, reason) {
|
||||
setState(() {
|
||||
selectedImage = index;
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: provider.productDetails.data!.productImages!.map((url) {
|
||||
int index =
|
||||
provider.productDetails.data!.productImages!.indexOf(url);
|
||||
return Container(
|
||||
margin: EdgeInsets.symmetric(horizontal: 5),
|
||||
width: 8,
|
||||
height: 8,
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: selectedImage == index ? Colors.red : Colors.grey,
|
||||
),
|
||||
);
|
||||
}).toList(),
|
||||
),
|
||||
SizedBox(height: 10),
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16.0),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
provider.productDetails.data!.name ?? "",
|
||||
style: context.customExtraBold(Colors.black, 18),
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Text(
|
||||
"\$${provider.productDetails.data!.discountPrice}",
|
||||
style: TextStyle(
|
||||
fontSize: 25,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: Colors.green),
|
||||
),
|
||||
SizedBox(width: 10),
|
||||
Text(
|
||||
"\$${provider.productDetails.data!.basePrice}",
|
||||
style: TextStyle(
|
||||
fontSize: 25,
|
||||
fontWeight: FontWeight.bold,
|
||||
decoration: TextDecoration.lineThrough,
|
||||
color: Colors.grey,
|
||||
),
|
||||
),
|
||||
SizedBox(width: 10),
|
||||
Container(
|
||||
padding:
|
||||
EdgeInsets.symmetric(horizontal: 6, vertical: 2),
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.green,
|
||||
borderRadius: BorderRadius.circular(5),
|
||||
),
|
||||
child: Text("10% OFF",
|
||||
style:
|
||||
TextStyle(color: Colors.white, fontSize: 14)),
|
||||
),
|
||||
Spacer(),
|
||||
InkWell(
|
||||
onTap: () async {
|
||||
if (await SharedPrefUtils.getToken() != null) {
|
||||
provider.toggleWishlist(
|
||||
context, provider.productDetails.data!.id!);
|
||||
} else {
|
||||
context.push(MyRoutes.SIGNUP);
|
||||
}
|
||||
},
|
||||
child: Icon(
|
||||
provider.wishlist
|
||||
.contains(provider.productDetails.data!.id)
|
||||
? Icons.favorite
|
||||
: Icons.favorite_border,
|
||||
color: provider.wishlist
|
||||
.contains(provider.productDetails.data!.id)
|
||||
? Colors.red
|
||||
: Colors.grey,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(height: 10),
|
||||
ReadMoreText(
|
||||
provider.productDetails.data!.description ?? "",
|
||||
trimMode: TrimMode.Line,
|
||||
trimLines: 2,
|
||||
colorClickableText: APPCOLOR.appGreen,
|
||||
trimCollapsedText: 'Read More',
|
||||
trimExpandedText: 'Show less',
|
||||
style: context.customMedium(APPCOLOR.balck1A1A1A, 14),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Widget reviews() {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16.0),
|
||||
@@ -481,215 +526,198 @@ class _ProductDetailsState extends State<ProductDetails> {
|
||||
double cardWidth =
|
||||
MediaQuery.of(context).size.width * 0.4; // Dynamic width
|
||||
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(right: 10, bottom: 5, top: 5),
|
||||
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),
|
||||
return InkWell(
|
||||
onTap: () {
|
||||
provider.getProduuctDetails(context, bestdealproduct.id);
|
||||
},
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(right: 10, bottom: 5, top: 5),
|
||||
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(
|
||||
height: MediaQuery.of(context).size.height *
|
||||
0.08,
|
||||
width: cardWidth * 0.7,
|
||||
imageUrl: bestdealproduct
|
||||
.productImages?.first?.url ??
|
||||
"",
|
||||
backGroundColor: Colors.transparent,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
child: Stack(
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
AppNetworkImage(
|
||||
height:
|
||||
MediaQuery.of(context).size.height * 0.08,
|
||||
width: cardWidth * 0.7,
|
||||
imageUrl: bestdealproduct
|
||||
.productImages?.first?.url ??
|
||||
"",
|
||||
backGroundColor: Colors.transparent,
|
||||
),
|
||||
Positioned(
|
||||
right: 5,
|
||||
top: 5,
|
||||
child: InkWell(
|
||||
onTap: () async {
|
||||
if (await SharedPrefUtils.getToken() !=
|
||||
null) {
|
||||
provider.toggleWishlist(
|
||||
context, bestdealproduct.id!);
|
||||
} else {
|
||||
context.push(MyRoutes.LOGIN);
|
||||
}
|
||||
},
|
||||
child: Icon(
|
||||
provider.wishlist
|
||||
),
|
||||
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: [
|
||||
Row(
|
||||
children: [
|
||||
Text(
|
||||
"\$${bestdealproduct.discountPrice ?? ""} ",
|
||||
textAlign: TextAlign.left,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: context.customSemiBold(
|
||||
Colors.black, 12),
|
||||
),
|
||||
Text(
|
||||
"\$${bestdealproduct.basePrice ?? ""}",
|
||||
textAlign: TextAlign.left,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: context
|
||||
.customMedium(
|
||||
Colors.grey.withOpacity(0.8),
|
||||
12,
|
||||
)
|
||||
.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!);
|
||||
} 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: provider.cartItems
|
||||
.contains(bestdealproduct.id)
|
||||
? Icons.favorite
|
||||
: Icons.favorite_border,
|
||||
color: provider.wishlist
|
||||
.contains(bestdealproduct.id)
|
||||
? Colors.red
|
||||
: Colors.grey,
|
||||
? Colors.grey
|
||||
: APPCOLOR.lightGreen,
|
||||
borderRadius: BorderRadius.circular(5),
|
||||
),
|
||||
child: Center(
|
||||
child: provider.isLoading[
|
||||
bestdealproduct.id] ??
|
||||
false
|
||||
? CircularProgressIndicator(
|
||||
color: Colors.white,
|
||||
strokeWidth: 2)
|
||||
: Text(
|
||||
provider.cartItems.contains(
|
||||
bestdealproduct.id)
|
||||
? 'Added'
|
||||
: 'Add',
|
||||
style: context.customRegular(
|
||||
Colors.white, 12),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
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: [
|
||||
Row(
|
||||
children: [
|
||||
Text(
|
||||
"\$${bestdealproduct.discountPrice ?? ""} ",
|
||||
textAlign: TextAlign.left,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style:
|
||||
context.customSemiBold(Colors.black, 12),
|
||||
),
|
||||
Text(
|
||||
"\$${bestdealproduct.basePrice ?? ""}",
|
||||
textAlign: TextAlign.left,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: context
|
||||
.customMedium(
|
||||
Colors.grey.withOpacity(0.8),
|
||||
12,
|
||||
)
|
||||
.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!);
|
||||
} else {
|
||||
context.push(MyRoutes.LOGIN);
|
||||
}
|
||||
},
|
||||
child: Container(
|
||||
height: MediaQuery.of(context).size.height *
|
||||
0.035,
|
||||
width:
|
||||
MediaQuery.of(context).size.width * 0.1,
|
||||
decoration: BoxDecoration(
|
||||
color: provider.cartItems
|
||||
.contains(bestdealproduct.id)
|
||||
? Colors.grey
|
||||
: APPCOLOR.lightGreen,
|
||||
borderRadius: BorderRadius.circular(5),
|
||||
),
|
||||
child: Center(
|
||||
child: provider.isLoading[
|
||||
bestdealproduct.id] ??
|
||||
false
|
||||
? CircularProgressIndicator(
|
||||
color: Colors.white, strokeWidth: 2)
|
||||
: Text(
|
||||
provider.cartItems.contains(
|
||||
bestdealproduct.id)
|
||||
? 'Added'
|
||||
: 'Add',
|
||||
style: context.customRegular(
|
||||
Colors.white, 12),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -770,7 +798,6 @@ class _ProductDetailsState extends State<ProductDetails> {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Widget _slider(BuildContext context) {
|
||||
// double height = MediaQuery.of(context).size.height * .43;
|
||||
// double statusBarHeight = MediaQuery.of(context).padding.top;
|
||||
@@ -856,5 +883,3 @@ class _ProductDetailsState extends State<ProductDetails> {
|
||||
// ),
|
||||
// );
|
||||
// }
|
||||
|
||||
|
||||
|
||||
24
pubspec.lock
24
pubspec.lock
@@ -548,18 +548,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker
|
||||
sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05"
|
||||
sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "10.0.5"
|
||||
version: "10.0.4"
|
||||
leak_tracker_flutter_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_flutter_testing
|
||||
sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806"
|
||||
sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.5"
|
||||
version: "3.0.3"
|
||||
leak_tracker_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -604,10 +604,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: material_color_utilities
|
||||
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
|
||||
sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.11.1"
|
||||
version: "0.8.0"
|
||||
material_design_icons_flutter:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -620,10 +620,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
|
||||
sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.15.0"
|
||||
version: "1.12.0"
|
||||
nested:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -953,10 +953,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb"
|
||||
sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.7.2"
|
||||
version: "0.7.0"
|
||||
typed_data:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1009,10 +1009,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vm_service
|
||||
sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d"
|
||||
sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "14.2.5"
|
||||
version: "14.2.1"
|
||||
web:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
||||
Reference in New Issue
Block a user