add services and items widgets

merge-requests/13/head
mirza.shafique 2 years ago
parent 456aef0d41
commit a887d9733e

@ -170,6 +170,18 @@
"my_recent_providers": "مزودي الخدمة الجدد",
"my_active_ads": "إعلاناتي النشطة",
"recommended_Ads": "الإعلانات الموصى بها",
"location": "موقع"
"location": "موقع",
"address": "عنوان",
"branchName": "اسم الفرع",
"branchDescription": "وصف الفرع",
"branchInfo": "معلومات الفرع",
"defineServices": "تحديد الخدمات",
"defineBranches": "تحديد الفروع",
"defineProviders": "تحديد الموفرين",
"closeAccount": "حساب مغلق",
"selectServiceCategory": "حدد فئة الخدمة",
"selectService": "حدد الخدمة",
"selectBranch": "حدد الفرع",
"createBranch": "Create Branch",
"updateBranch": "Update Branch"
}

@ -162,8 +162,8 @@
"tapToEdit": "Tap to edit",
"myServiceBranches": "My Service Branches",
"enter_licence_detail": "Please enter the detail for commercial records and attach the license images",
"country": "country",
"city": "city",
"country": "Country",
"city": "City",
"editServices": "Edit Services",
"maintenance": "Maintenance",
"accessories_modifications": "Accessories and Modifications",
@ -171,6 +171,18 @@
"my_active_ads": "My Active Ads",
"recommended_Ads": "Recommended Ads",
"select_services": "Select services you want",
"location": "Location"
"location": "Location",
"address": "Address",
"branchName": "Branch Name",
"branchDescription": "Branch Description",
"branchInfo": "Branch Info",
"defineServices": "Define Services",
"defineBranches": "Define Branches",
"defineProviders": "Define Providers",
"closeAccount": "Close Account",
"selectServiceCategory": "Select Service Category",
"selectService": "Select Service",
"selectBranch": "Select Branch",
"createBranch": "Create Branch",
"updateBranch": "Update Branch"
}

@ -8,6 +8,7 @@ import 'package:http/io_client.dart';
import 'package:mc_common_app/classes/app_state.dart';
import 'package:mc_common_app/classes/consts.dart';
import 'package:mc_common_app/exceptions/api_exception.dart';
import 'package:mc_common_app/main.dart';
import 'package:mc_common_app/models/user/refresh_token.dart';
import 'package:mc_common_app/models/user/user.dart';
import 'package:mc_common_app/utils/shared_prefrence.dart';
@ -203,6 +204,7 @@ class ApiClientImp implements ApiClient {
}
var response = await getJsonForResponse(url, token: token, queryParameters: queryParameters, headers: headers0, retryTimes: retryTimes);
try {
logger.wtf(url);
if (!kReleaseMode) {
debugPrint("res:${response.body}");
}
@ -317,9 +319,9 @@ class ApiClientImp implements ApiClient {
SharedPrefManager.setRefreshToken(refresh.data!.refreshToken ?? "");
String mdata = await SharedPrefManager.getData();
UserInfo info = UserInfo.fromJson(jsonDecode(mdata));
User user = User();
user.data = UserData(accessToken: refresh.data!.accessToken ?? "", refreshToken: refresh.data!.refreshToken ?? "", userInfo: info);
User user = User();
user.data = UserData(accessToken: refresh.data!.accessToken ?? "", refreshToken: refresh.data!.refreshToken ?? "", userInfo: info);
AppState().setUser = user;
return refresh.data!.accessToken??"";
return refresh.data!.accessToken ?? "";
}
}

@ -50,6 +50,17 @@ class ApiConsts {
static String ServiceProviderService_Get = "${baseUrlServices}api/ServiceProviders/ServiceProviderService_Get";
static String BranchesAndServices = "${baseUrlServices}api/ServiceProviders/ServiceProviderDetail_Get";
//Services & items
static String createService = "${baseUrlServices}api/ServiceProviders/Service_Create";
static String createItems = "${baseUrlServices}api/ServiceProviders/ServiceItem_Create";
static String getServiceItems = "${baseUrlServices}api/ServiceProviders/ServiceItem_Get";
static String updateServiceItem = "${baseUrlServices}api/ServiceProviders/ServiceItem_Update";
//Schedule & Group
static String createSchedule = "${baseUrlServices}api/ServiceProviders/BranchAppointmentSchedule_Create";
static String getSchedule = "${baseUrlServices}api/ServiceProviders/BranchAppointmentSchedule_Get";
static String createGroup = "${baseUrlServices}api/ServiceProviders/BranchScheduleGroupService_Create";
//Advertisement APIs
static String vehicleTypeGet = "${baseUrlServices}api/ServiceProviders/VehicleType_Get";
static String vehicleModelGet = "${baseUrlServices}api/Master/VehicleModel_Get";
@ -68,6 +79,9 @@ class ApiConsts {
static String vehicleAdsSpecialServicesGet = "${baseUrlServices}api/Common/SpecialService_Get";
static String vehicleAdsSingleStepCreate = "${baseUrlServices}api/Advertisement/AdsSingleStep_Create";
static String vehicleAdsGet = "${baseUrlServices}api/Advertisement/Ads_Get";
//Subscription
static String getAllSubscriptions = "${baseUrlServices}api/Common/Subscription_Get";
}
class GlobalConsts {

@ -186,7 +186,18 @@ class CodegenLoader extends AssetLoader{
"my_recent_providers": "مزودي الخدمة الجدد",
"my_active_ads": "إعلاناتي النشطة",
"recommended_Ads": "الإعلانات الموصى بها",
"location": "موقع"
"location": "موقع",
"address": "عنوان",
"branchName": "اسم الفرع",
"branchDescription": "وصف الفرع",
"branchInfo": "معلومات الفرع",
"defineServices": "تحديد الخدمات",
"defineBranches": "تحديد الفروع",
"defineProviders": "تحديد الموفرين",
"closeAccount": "حساب مغلق",
"selectServiceCategory": "حدد فئة الخدمة",
"selectService": "حدد الخدمة",
"selectBranch": "حدد الفرع"
};
static const Map<String,dynamic> en_US = {
"firstTimeLogIn": "First Time Log In",
@ -352,8 +363,8 @@ static const Map<String,dynamic> en_US = {
"tapToEdit": "Tap to edit",
"myServiceBranches": "My Service Branches",
"enter_licence_detail": "Please enter the detail for commercial records and attach the license images",
"country": "country",
"city": "city",
"country": "Country",
"city": "City",
"editServices": "Edit Services",
"maintenance": "Maintenance",
"accessories_modifications": "Accessories and Modifications",
@ -361,7 +372,18 @@ static const Map<String,dynamic> en_US = {
"my_active_ads": "My Active Ads",
"recommended_Ads": "Recommended Ads",
"select_services": "Select services you want",
"location": "Location"
"location": "Location",
"address": "Address",
"branchName": "Branch Name",
"branchDescription": "Branch Description",
"branchInfo": "Branch Info",
"defineServices": "Define Services",
"defineBranches": "Define Branches",
"defineProviders": "Define Providers",
"closeAccount": "Close Account",
"selectServiceCategory": "Select Service Category",
"selectService": "Select Service",
"selectBranch": "Select Branch"
};
static const Map<String, Map<String,dynamic>> mapLocales = {"ar_SA": ar_SA, "en_US": en_US};
}

@ -151,5 +151,16 @@ abstract class LocaleKeys {
static const my_active_ads = 'my_active_ads';
static const recommended_Ads = 'recommended_Ads';
static const location = 'location';
static const address = 'address';
static const branchName = 'branchName';
static const branchDescription = 'branchDescription';
static const branchInfo = 'branchInfo';
static const defineServices = 'defineServices';
static const defineBranches = 'defineBranches';
static const defineProviders = 'defineProviders';
static const closeAccount = 'closeAccount';
static const selectServiceCategory = 'selectServiceCategory';
static const selectService = 'selectService';
static const selectBranch = 'selectBranch';
}

@ -13,16 +13,19 @@ class MResponse {
this.totalItemsCount,
this.messageStatus,
this.message,
this.data,
});
int? totalItemsCount;
int? messageStatus;
String? message;
dynamic data;
factory MResponse.fromJson(Map<String, dynamic> json) => MResponse(
totalItemsCount: json["totalItemsCount"],
messageStatus: json["messageStatus"],
message: json["message"],
data: json["data"],
);
Map<String, dynamic> toJson() => {

@ -6,8 +6,6 @@ import 'dart:convert';
import 'package:mc_common_app/models/profile/categroy.dart';
Branch2 branch2FromJson(String str) => Branch2.fromJson(json.decode(str));
String branch2ToJson(Branch2 data) => json.encode(data.toJson());
@ -155,6 +153,9 @@ class ServiceProviderService {
this.categoryId,
this.categoryName,
this.serviceStatus,
this.isAllowAppointment,
this.customerLocationRange,
this.rangePricePerKm,
});
final int? serviceId;
@ -163,6 +164,9 @@ class ServiceProviderService {
final int? categoryId;
final String? categoryName;
final int? serviceStatus;
final bool? isAllowAppointment;
final int? customerLocationRange;
final String? rangePricePerKm;
factory ServiceProviderService.fromJson(Map<String, dynamic> json) => ServiceProviderService(
serviceId: json["serviceID"] == null ? null : json["serviceID"],
@ -171,6 +175,9 @@ class ServiceProviderService {
categoryId: json["categoryID"] == null ? null : json["categoryID"],
categoryName: json["categoryName"] == null ? null : json["categoryName"],
serviceStatus: json["serviceStatus"] == null ? null : json["serviceStatus"],
isAllowAppointment: json["isAllowAppointment"] == null ? null : json["isAllowAppointment"],
customerLocationRange: json["customerLocationRange"] == null ? null : json["customerLocationRange"],
rangePricePerKm: json["rangePricePerKm"] == null ? null : json["rangePricePerKm"].toString(),
);
Map<String, dynamic> toJson() => {

@ -24,14 +24,16 @@ class Category {
int? messageStatus;
String? message;
factory Category.fromJson(Map<String, dynamic> json) => Category(
factory Category.fromJson(Map<String, dynamic> json) =>
Category(
totalItemsCount: json["totalItemsCount"] == null ? null : json["totalItemsCount"],
data: json["data"] == null ? null : List<CategoryData>.from(json["data"].map((x) => CategoryData.fromJson(x))),
messageStatus: json["messageStatus"] == null ? null : json["messageStatus"],
message: json["message"] == null ? null : json["message"],
);
Map<String, dynamic> toJson() => {
Map<String, dynamic> toJson() =>
{
"totalItemsCount": totalItemsCount == null ? null : totalItemsCount,
"data": data == null ? null : List<dynamic>.from(data!.map((x) => x.toJson())),
"messageStatus": messageStatus == null ? null : messageStatus,
@ -48,6 +50,8 @@ class CategoryData extends Equatable {
this.serviceCategoryIconUrl,
this.serviceCategoryImageUrl,
this.services,
this.branchId,
this.branchName,
});
int? id;
@ -55,9 +59,12 @@ class CategoryData extends Equatable {
String? categoryNameN;
dynamic? serviceCategoryIconUrl;
dynamic? serviceCategoryImageUrl;
String? branchId;
String? branchName;
List<ServiceProviderService>? services;
factory CategoryData.fromJson(Map<String, dynamic> json) => CategoryData(
factory CategoryData.fromJson(Map<String, dynamic> json) =>
CategoryData(
id: json["id"] == null ? null : json["id"],
categoryName: json["categoryName"] == null ? null : json["categoryName"],
categoryNameN: json["categoryNameN"] == null ? null : json["categoryNameN"],
@ -66,7 +73,8 @@ class CategoryData extends Equatable {
services: [],
);
Map<String, dynamic> toJson() => {
Map<String, dynamic> toJson() =>
{
"id": id == null ? null : id,
"categoryName": categoryName == null ? null : categoryName,
"categoryNameN": categoryNameN == null ? null : categoryNameN,

@ -20,6 +20,7 @@ class MyColors {
static const Color greyButtonColor = Color(0xffEBEBEB);
static const Color grey70Color = Color(0xff707070);
static const Color greyACColor = Color(0xffACACAC);
static const Color chipColor = Color(0xffE6E6E6);
static const Color greyShadowColor = Color(0xFFE8E7E7);
static const Color grey98Color = Color(0xff989898);
static const Color lightGreyEFColor = Color(0xffEFEFEF);

@ -0,0 +1,48 @@
import 'package:intl/intl.dart';
class DateHelper {
static DateTime parseStringToDate(String dateString) {
final formatter = DateFormat('yyyy-MM-dd');
return formatter.parse(dateString);
}
static String formatAsShortDate(DateTime date) {
final formatter = DateFormat.yMd();
return formatter.format(date);
}
static String formatAsLongDate(DateTime date) {
final formatter = DateFormat.yMMMMEEEEd();
return formatter.format(date);
}
static String formatAsTime(DateTime date) {
final formatter = DateFormat.jm();
return formatter.format(date);
}
static String formatAsYearMonthDay(DateTime date) {
final formatter = DateFormat('y-MM-d');
return date != null ? formatter.format(date) : "N/A";
}
static String formatAsCustomPattern(DateTime date, String pattern) {
final formatter = DateFormat(pattern);
return formatter.format(date);
}
static String formatAsDayMonthYear(DateTime? date) {
final formatter = DateFormat('d MMM, y');
return date != null ? formatter.format(date) : "N/A";
}
static String formatAsMonthDayYear(DateTime date) {
final formatter = DateFormat('MMMM d, y');
return formatter.format(date);
}
static String formatAsMonthYear(DateTime date) {
final formatter = DateFormat('MMMM y');
return formatter.format(date);
}
}

@ -36,3 +36,12 @@ enum LoginType {
}
enum AppType { provider, customer }
enum ServiceStatus {
pending, //1
review, //2
approvedOrActive, //3
rejected, //4
blocked, //5
deactivated, //6
}

@ -4,6 +4,7 @@ import 'dart:typed_data';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:mc_common_app/utils/date_helper.dart';
import 'package:path/path.dart' as p;
import 'package:fluttertoast/fluttertoast.dart';
@ -18,26 +19,44 @@ class Utils {
static void showToast(String message) {
Fluttertoast.showToast(
msg: message, toastLength: Toast.LENGTH_SHORT, gravity: ToastGravity.BOTTOM, timeInSecForIosWeb: 2, backgroundColor: Colors.black54, textColor: Colors.white, fontSize: 16.0);
msg: message,
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM,
timeInSecForIosWeb: 2,
backgroundColor: Colors.black54,
textColor: Colors.white,
fontSize: 16.0);
}
static Future<String> pickDateFromDatePicker(BuildContext context) async {
static Future<String> pickDateFromDatePicker(BuildContext context, {DateTime? firstDate, DateTime? lastDate}) async {
DateTime? pickedDate = await showDatePicker(
context: context,
initialDate: DateTime.now(), //get today's date
firstDate: DateTime.now(), //DateTime.now() - not to allow to choose before today.
lastDate: DateTime(2101));
firstDate: firstDate ?? DateTime.now(), //DateTime.now() - not to allow to choose before today.
lastDate: lastDate ?? DateTime(2101));
if (pickedDate == null) {
return "";
}
String formattedDate = DateFormat.yMMMMd().format(pickedDate); // format date in required form here we use yyyy-MM-dd that means time is removed
String formattedDate = DateHelper.formatAsYearMonthDay(pickedDate); // format date in required form here we use yyyy-MM-dd that means time is removed
return formattedDate;
}
static Future<String> pickTime(BuildContext context, {TimeOfDay? initialTime}) async {
TimeOfDay? timeOfDay = await showTimePicker(context: context, initialTime: initialTime ?? TimeOfDay.now());
if (timeOfDay == null) {
return "";
}
return ("${timeOfDay.hour
.toString()
.length == 1 ? "0" : ""}${timeOfDay.hour}:${timeOfDay.minute
.toString()
.length == 1 ? "0" : ""}${timeOfDay.minute}").toString();
}
static dynamic getNotNullValue(List<dynamic> list, int index) {
try {
return list[index];
@ -289,7 +308,7 @@ class Utils {
border: Border.all(
width: w, //
color: color // <--- border width here
),
),
borderRadius: BorderRadius.circular(radius),
);
}
@ -312,7 +331,7 @@ class Utils {
border: Border.all(
width: 1, //
color: color // <--- border width here
),
),
borderRadius: BorderRadius.circular(radius),
);
}

@ -28,7 +28,7 @@ class _LoginWithPasswordState extends State<LoginWithPassword> {
int otpType = 1;
ClassType type = ClassType.EMAIL;
String phoneNum = "", password = "";
String phoneNum = "580816976", password = "123@Shf";
String email = "";
String countryCode = "";
Country? _country;

@ -0,0 +1,86 @@
import 'package:flutter/material.dart';
import 'package:mc_common_app/extensions/int_extensions.dart';
void showMyBottomSheet(BuildContext context, {required Widget child, VoidCallback? callBackFunc}) {
showModalBottomSheet<String>(
context: context,
isScrollControlled: true,
backgroundColor: Colors.transparent,
builder: (BuildContext context) {
return Container(
decoration: const BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.only(
topRight: Radius.circular(25),
topLeft: Radius.circular(25),
),
),
clipBehavior: Clip.antiAlias,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
13.height,
Container(
height: 6,
width: 60,
decoration: const BoxDecoration(
color: Color(0xff9A9A9A),
borderRadius: BorderRadius.all(
Radius.circular(20),
),
),
),
8.height,
child,
],
),
);
},
).then((value) {
// print("BACK FROM DELEGATE!!!!");
// print("value: $value");
if (value == "delegate_reload") {
if (callBackFunc != null) callBackFunc();
}
});
}
class BottomSheetItem extends StatelessWidget {
final Function onTap;
final IconData icon;
final String title;
final Color color;
const BottomSheetItem({Key? key, required this.onTap, required this.title, required this.icon, this.color = Colors.black}) : super(key: key);
@override
Widget build(BuildContext context) {
return InkWell(
onTap: () {
if (onTap != null) {
Navigator.pop(context);
onTap();
}
},
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 18.0, vertical: 18.0),
child: Row(
children: <Widget>[
if (icon != null)
Icon(
icon,
color: color,
size: 18.0,
),
if (icon != null) SizedBox(width: 24.0),
Text(
title ?? "",
style: TextStyle(color: color),
),
],
),
),
);
}
}

@ -60,7 +60,7 @@ import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
// @override
// Size get preferredSize => const Size.fromHeight(kToolbarHeight);
// }
class CustomAppBar extends StatelessWidget with PreferredSizeWidget {
class CustomAppBar extends StatelessWidget implements PreferredSizeWidget {
final Color? backgroundColor;
final double? elevation;
final String? title;

@ -1,4 +1,3 @@
import 'package:flutter/material.dart';
import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/theme/colors.dart';
@ -8,8 +7,9 @@ class RoleTypeTab extends StatefulWidget {
int selectedIndex;
List<DropValue> dropList;
Function(DropValue value) onSelect;
double? width;
RoleTypeTab(this.selectedIndex, this.dropList, {required this.onSelect});
RoleTypeTab(this.selectedIndex, this.dropList, {required this.onSelect, this.width});
@override
State<RoleTypeTab> createState() => _RoleTypeTabState();
@ -31,7 +31,10 @@ class _RoleTypeTabState extends State<RoleTypeTab> {
});
},
child: Container(
width: (MediaQuery.of(context).size.width / 2)-30,
width: widget.width ?? (MediaQuery
.of(context)
.size
.width / 2) - 30,
height: 45,
decoration: BoxDecoration(
color: widget.selectedIndex == index ? MyColors.darkPrimaryColor : Colors.grey[200],
@ -43,7 +46,7 @@ class _RoleTypeTabState extends State<RoleTypeTab> {
widget.dropList[index].value,
style: TextStyle(
color: widget.selectedIndex == index ? MyColors.white : Colors.black,
fontSize: 10,
fontSize: 15,
),
),
),

@ -28,6 +28,7 @@ class TxtField extends StatelessWidget {
Function(String)? onChanged;
TextInputType? keyboardType;
bool isBackgroundEnabled = false;
Widget? postfixWidget;
TxtField({
Key? key,
@ -51,6 +52,7 @@ class TxtField extends StatelessWidget {
this.isPasswordEnabled,
this.keyboardType,
this.isBackgroundEnabled = false,
this.postfixWidget,
}) : super(key: key);
@override
@ -107,7 +109,7 @@ class TxtField extends StatelessWidget {
postfixData,
color: postFixDataColor,
)
: null,
: postfixWidget ?? null,
prefixIcon: prefixData != null ? const Icon(Icons.search, color: borderColor) : null,
labelStyle: TextStyle(color: borderColor, fontSize: 13.sp),
hintStyle: TextStyle(color: borderColor, fontSize: 9.sp),

@ -13,10 +13,10 @@ packages:
dependency: transitive
description:
name: async
sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
url: "https://pub.dev"
source: hosted
version: "2.10.0"
version: "2.11.0"
auto_size_text:
dependency: "direct main"
description:
@ -77,10 +77,10 @@ packages:
dependency: transitive
description:
name: characters
sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c
sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
url: "https://pub.dev"
source: hosted
version: "1.2.1"
version: "1.3.0"
clock:
dependency: transitive
description:
@ -93,10 +93,10 @@ packages:
dependency: transitive
description:
name: collection
sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c"
url: "https://pub.dev"
source: hosted
version: "1.17.0"
version: "1.17.1"
cross_file:
dependency: transitive
description:
@ -133,10 +133,10 @@ packages:
dependency: "direct main"
description:
name: easy_localization
sha256: "6a2e99fa0bfe5765bf4c6ca9b137d5de2c75593007178c5e4cd2ae985f870080"
sha256: f30e9b20ed4d1b890171c30241d9b9c43efe21fee55dee7bd68f94daf269ea75
url: "https://pub.dev"
source: hosted
version: "3.0.1"
version: "3.0.2-dev.2"
easy_logger:
dependency: transitive
description:
@ -425,18 +425,18 @@ packages:
dependency: transitive
description:
name: intl
sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91"
sha256: a3715e3bc90294e971cb7dc063fbf3cd9ee0ebf8604ffeafabd9e6f16abbdbe6
url: "https://pub.dev"
source: hosted
version: "0.17.0"
version: "0.18.0"
js:
dependency: transitive
description:
name: js
sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
url: "https://pub.dev"
source: hosted
version: "0.6.5"
version: "0.6.7"
lints:
dependency: transitive
description:
@ -449,10 +449,42 @@ packages:
dependency: "direct main"
description:
name: local_auth
sha256: d3fece0749101725b03206f84a7dab7aaafb702dbbd09131ff8d8173259a9b19
sha256: "0cf238be2bfa51a6c9e7e9cfc11c05ea39f2a3a4d3e5bb255d0ebc917da24401"
url: "https://pub.dev"
source: hosted
version: "2.1.6"
local_auth_android:
dependency: transitive
description:
name: local_auth_android
sha256: c5e48c4a67fc0e5dd9b5725cc8766b67e2da9a54155c82c6e2ea4a0d1cf9ef93
url: "https://pub.dev"
source: hosted
version: "1.0.28"
local_auth_ios:
dependency: transitive
description:
name: local_auth_ios
sha256: "503a938c4edde6b244c6ee3b1e2e675ddb7e37e79d5056658dbed1997cf04785"
url: "https://pub.dev"
source: hosted
version: "1.1.11"
version: "1.1.2"
local_auth_platform_interface:
dependency: transitive
description:
name: local_auth_platform_interface
sha256: "9e160d59ef0743e35f1b50f4fb84dc64f55676b1b8071e319ef35e7f3bc13367"
url: "https://pub.dev"
source: hosted
version: "1.0.7"
local_auth_windows:
dependency: transitive
description:
name: local_auth_windows
sha256: "19323b75ab781d5362dbb15dcb7e0916d2431c7a6dbdda016ec9708689877f73"
url: "https://pub.dev"
source: hosted
version: "1.0.8"
logger:
dependency: "direct main"
description:
@ -465,10 +497,10 @@ packages:
dependency: transitive
description:
name: matcher
sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb"
url: "https://pub.dev"
source: hosted
version: "0.12.13"
version: "0.12.15"
material_color_utilities:
dependency: transitive
description:
@ -481,10 +513,10 @@ packages:
dependency: transitive
description:
name: meta
sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
url: "https://pub.dev"
source: hosted
version: "1.8.0"
version: "1.9.1"
nested:
dependency: transitive
description:
@ -505,10 +537,10 @@ packages:
dependency: transitive
description:
name: path
sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
url: "https://pub.dev"
source: hosted
version: "1.8.2"
version: "1.8.3"
path_drawing:
dependency: transitive
description:
@ -830,10 +862,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb
url: "https://pub.dev"
source: hosted
version: "0.4.16"
version: "0.5.1"
typed_data:
dependency: transitive
description:
@ -955,5 +987,5 @@ packages:
source: hosted
version: "6.1.0"
sdks:
dart: ">=2.18.0 <3.0.0"
dart: ">=3.0.0-0 <4.0.0"
flutter: ">=3.3.0"

@ -28,7 +28,7 @@ dependencies:
logger: ^1.1.0
auto_size_text: any
shimmer: ^2.0.0
local_auth: ^1.1.9
local_auth: any
hexcolor: ^2.0.4
cached_network_image: any
url_launcher: ^6.1.7
@ -36,7 +36,6 @@ dependencies:
carousel_slider: ^4.2.1
dropdown_button2: ^2.0.0
# google
google_maps_flutter: ^2.1.1
geolocator: any

Loading…
Cancel
Save