Merge branch 'master' into aamir_dev

# Conflicts:
#	lib/api/api_client.dart
localization_aamir
Aamir.Muhammad 2 years ago
commit 603fa08c42

@ -75,8 +75,8 @@ class ApiClientImp implements ApiClient {
headers0.addAll(headers); headers0.addAll(headers);
} }
if (!kReleaseMode) { if (!kReleaseMode) {
logger.i("Url:$url"); logger.i(url);
logger.i("body:$jsonObject"); logger.i(jsonEncode(jsonObject.toString()));
} }
var response = await postJsonForResponse(url, jsonObject, token: token, queryParameters: queryParameters, headers: headers0, retryTimes: retryTimes); var response = await postJsonForResponse(url, jsonObject, token: token, queryParameters: queryParameters, headers: headers0, retryTimes: retryTimes);
try { try {
@ -240,8 +240,8 @@ class ApiClientImp implements ApiClient {
} }
if (!kReleaseMode) { if (!kReleaseMode) {
logger.i("Url:$url"); logger.i(url);
logger.i("queryParameters:$queryParameters"); logger.i("$queryParameters");
} }
var response = await _get(Uri.parse(url), headers: headers0).timeout(const Duration(seconds: 60)); var response = await _get(Uri.parse(url), headers: headers0).timeout(const Duration(seconds: 60));

@ -247,10 +247,10 @@ class VehiclePostingImages {
return data; return data;
} }
// @override @override
// String toString() { String toString() {
// return 'VehiclePostingImages{id: $id, imageName: $imageName, imageUrl: $imageUrl, imageStr: $imageStr, vehiclePostingID: $vehiclePostingID, vehiclePosting: $vehiclePosting}'; return 'VehiclePostingImages{id: $id, imageName: $imageName, imageUrl: $imageUrl, imageStr: $imageStr, vehiclePostingID: $vehiclePostingID, vehiclePosting: $vehiclePosting}';
// } }
} }
class RequestPostingImages { class RequestPostingImages {
@ -268,9 +268,9 @@ class RequestPostingImages {
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{}; final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = id; data['id'] = id ?? 0;
data['requestImage'] = requestImage; data['requestImage'] = requestImage;
data['requestID'] = requestID; data['requestID'] = requestID ?? 0;
return data; return data;
} }
@ -310,8 +310,8 @@ class VehiclePostingDamageParts {
return data; return data;
} }
// @override // @override
// String toString() { // String toString() {
// return 'VehiclePostingDamageParts{id: $id, comment: $comment, vehicleImageBase64: $vehicleImageBase64, vehicleDamagePartID: $vehicleDamagePartID, vehiclePostingID: $vehiclePostingID, isActive: $isActive}'; // return 'VehiclePostingDamageParts{id: $id, comment: $comment, vehicleImageBase64: $vehicleImageBase64, vehicleDamagePartID: $vehicleDamagePartID, vehiclePostingID: $vehiclePostingID, isActive: $isActive}';
// } // }
} }

@ -1,3 +1,4 @@
import 'dart:convert';
import 'dart:developer'; import 'dart:developer';
import 'package:mc_common_app/api/api_client.dart'; import 'package:mc_common_app/api/api_client.dart';
@ -5,6 +6,7 @@ import 'package:mc_common_app/classes/app_state.dart';
import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/classes/consts.dart';
import 'package:mc_common_app/config/dependencies.dart'; import 'package:mc_common_app/config/dependencies.dart';
import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/main.dart';
import 'package:mc_common_app/models/advertisment_models/ad_details_model.dart'; import 'package:mc_common_app/models/advertisment_models/ad_details_model.dart';
import 'package:mc_common_app/models/advertisment_models/ads_bank_details_model.dart'; import 'package:mc_common_app/models/advertisment_models/ads_bank_details_model.dart';
import 'package:mc_common_app/models/advertisment_models/ads_duration_model.dart'; import 'package:mc_common_app/models/advertisment_models/ads_duration_model.dart';
@ -16,8 +18,6 @@ import 'package:mc_common_app/models/general_models/generic_resp_model.dart';
import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/utils/enums.dart';
abstract class AdsRepo { abstract class AdsRepo {
Future<List<AdsDurationModel>> getAdsDuration(); Future<List<AdsDurationModel>> getAdsDuration();
Future<List<SpecialServiceModel>> getSpecialServices({required int specialServiceId}); Future<List<SpecialServiceModel>> getSpecialServices({required int specialServiceId});
@ -53,7 +53,7 @@ class AdsRepoImp implements AdsRepo {
Future<List<AdsDurationModel>> getAdsDuration() async { Future<List<AdsDurationModel>> getAdsDuration() async {
GenericRespModel adsGenericModel = await apiClient.getJsonForObject( GenericRespModel adsGenericModel = await apiClient.getJsonForObject(
token: appState.getUser.data!.accessToken, token: appState.getUser.data!.accessToken,
(json) => GenericRespModel.fromJson(json), (json) => GenericRespModel.fromJson(json),
ApiConsts.vehicleAdsDurationGet, ApiConsts.vehicleAdsDurationGet,
); );
List<AdsDurationModel> vehicleAdsDuration = List.generate(adsGenericModel.data.length, (index) => AdsDurationModel.fromJson(adsGenericModel.data[index])); List<AdsDurationModel> vehicleAdsDuration = List.generate(adsGenericModel.data.length, (index) => AdsDurationModel.fromJson(adsGenericModel.data[index]));
@ -66,7 +66,7 @@ class AdsRepoImp implements AdsRepo {
"SpecialServiceType": specialServiceId.toString(), "SpecialServiceType": specialServiceId.toString(),
}; };
GenericRespModel adsGenericModel = GenericRespModel adsGenericModel =
await apiClient.getJsonForObject(token: appState.getUser.data!.accessToken, (json) => GenericRespModel.fromJson(json), ApiConsts.vehicleAdsSpecialServicesGet, queryParameters: params); await apiClient.getJsonForObject(token: appState.getUser.data!.accessToken, (json) => GenericRespModel.fromJson(json), ApiConsts.vehicleAdsSpecialServicesGet, queryParameters: params);
List<SpecialServiceModel> vehicleAdsDuration = List.generate(adsGenericModel.data.length, (index) => SpecialServiceModel.fromJson(adsGenericModel.data[index])); List<SpecialServiceModel> vehicleAdsDuration = List.generate(adsGenericModel.data.length, (index) => SpecialServiceModel.fromJson(adsGenericModel.data[index]));
return vehicleAdsDuration; return vehicleAdsDuration;
} }
@ -134,7 +134,7 @@ class AdsRepoImp implements AdsRepo {
} }
}; };
log("posting this ads: ${postParams.toString()}"); logger.i(jsonEncode(postParams.toString()));
String token = appState.getUser.data!.accessToken ?? ""; String token = appState.getUser.data!.accessToken ?? "";
GenericRespModel adsGenericModel = await apiClient.postJsonForObject( GenericRespModel adsGenericModel = await apiClient.postJsonForObject(
(json) => GenericRespModel.fromJson(json), (json) => GenericRespModel.fromJson(json),

@ -239,35 +239,34 @@ class RequestsVM extends BaseVM {
description = v; description = v;
} }
Future<VehiclePostingImages> convertFileToRequestPostingImages({required File file}) async { Future<RequestPostingImages> convertFileToRequestPostingImages({required File file}) async {
List<int> imageBytes = await file.readAsBytes(); List<int> imageBytes = await file.readAsBytes();
String image = base64Encode(imageBytes); String image = base64Encode(imageBytes);
String fileName = file.path.split('/').last; RequestPostingImages vehiclePostingImages = RequestPostingImages(requestImage: image);
VehiclePostingImages vehiclePostingImages = VehiclePostingImages(
imageName: fileName,
imageStr: image,
imageUrl: file.path,
);
return vehiclePostingImages; return vehiclePostingImages;
} }
Future<List<VehiclePostingImages>> getVehiclePostingImageList() async { Future<List<RequestPostingImages>> getVehiclePostingImageList() async {
List<VehiclePostingImages> vehicleImages = []; List<RequestPostingImages> requestImages = [];
log("vehicleImages: ${pickedVehicleImages.length}"); log("requestImages: ${pickedVehicleImages.length}");
for (var image in pickedVehicleImages) { for (var image in pickedVehicleImages) {
var value = await convertFileToRequestPostingImages(file: image); var value = await convertFileToRequestPostingImages(file: image);
vehicleImages.add(value); requestImages.add(value);
} }
return vehicleImages; return requestImages;
} }
Future<void> onCreateRequestTapped(BuildContext context) async { Future<void> onCreateRequestTapped(BuildContext context) async {
if (validateCreateRequestForm()) { if (validateCreateRequestForm()) {
Utils.showLoading(context); Utils.showLoading(context);
List<VehiclePostingImages> vehicleImages = await getVehiclePostingImageList(); List<RequestPostingImages> vehicleImages = await getVehiclePostingImageList();
List requestImages = [];
vehicleImages.forEach((element) {
requestImages.add(element.toJson());
});
Map<String, dynamic> body = { Map<String, dynamic> body = {
"customerID": AppState().getUser.data!.userInfo!.customerId ?? 0, "customerID": AppState().getUser.data!.userInfo!.customerId ?? 0,
"requestType": requestTypeId.selectedId, "requestType": requestTypeId.selectedId,
@ -281,7 +280,7 @@ class RequestsVM extends BaseVM {
"price": price, "price": price,
"description": description, "description": description,
"isSpecialServiceNeeded": false, "isSpecialServiceNeeded": false,
"requestImages": vehicleImages, "requestImages": requestImages,
}; };
try { try {
GenericRespModel respModel = await requestRepo.createRequest(body); GenericRespModel respModel = await requestRepo.createRequest(body);

@ -1,14 +1,11 @@
import 'dart:ui'; import 'dart:ui';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:image_picker/image_picker.dart'; import 'package:mc_common_app/classes/app_state.dart';
import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/classes/consts.dart';
import 'package:mc_common_app/config/routes.dart';
import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/theme/colors.dart';
import 'package:mc_common_app/utils/navigator.dart';
import 'package:mc_common_app/utils/utils.dart';
import 'package:mc_common_app/views/setting_options/widgets/custom_setting_options_tile.dart'; import 'package:mc_common_app/views/setting_options/widgets/custom_setting_options_tile.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
@ -56,6 +53,7 @@ class ProfileScreen extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
extendBody: true, extendBody: true,
backgroundColor: const Color(0xffefefef), backgroundColor: const Color(0xffefefef),
@ -111,7 +109,7 @@ class ProfileScreen extends StatelessWidget {
], ],
).horPaddingMain(), ).horPaddingMain(),
10.height, 10.height,
"Muhammad Ahmad".toText(fontSize: 20).paddingOnly(left: 25), "${AppState().getUser.data!.userInfo!.firstName} ${AppState().getUser.data!.userInfo!.lastName ?? ""}".toText(fontSize: 20).paddingOnly(left: 25),
Column( Column(
children: [ children: [
CustomProfileOptionsTile( CustomProfileOptionsTile(
@ -122,13 +120,13 @@ class ProfileScreen extends StatelessWidget {
), ),
CustomProfileOptionsTile( CustomProfileOptionsTile(
titleText: "Email", titleText: "Email",
subtitleText: "mail@gmail.com", subtitleText: "${AppState().getUser.data!.userInfo!.email}",
needBorderBelow: true, needBorderBelow: true,
onTap: () {}, onTap: () {},
), ),
CustomProfileOptionsTile( CustomProfileOptionsTile(
titleText: "Phone Number", titleText: "Phone Number",
subtitleText: "0504278212", subtitleText: "${AppState().getUser.data!.userInfo!.email}",
needBorderBelow: true, needBorderBelow: true,
onTap: () {}, onTap: () {},
), ),

@ -37,185 +37,192 @@ class CreateRequestPage extends StatelessWidget {
const Center( const Center(
child: CircularProgressIndicator(), child: CircularProgressIndicator(),
), ),
] else ...[ ] else
Builder(builder: (context) { ...[
List<DropValue> requestTypeDrop = [];
for (var element in requestsVM.myRequestsTypeEnum) {
requestTypeDrop.add(DropValue(element.enumValue.toInt() ?? 0, element.enumValueStr ?? "", ""));
}
return DropdownField(
(DropValue value) => requestsVM.updateSelectionRequestTypeId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
list: requestTypeDrop,
dropdownValue: requestsVM.requestTypeId.selectedId != -1 ? DropValue(requestsVM.requestTypeId.selectedId, requestsVM.requestTypeId.selectedOption, "") : null,
hint: "Request Type",
errorValue: requestsVM.requestTypeId.errorValue,
);
}),
],
8.height,
if (requestsVM.requestTypeId.selectedId != -1)
if (requestsVM.isFetchingVehicleType) ...[
const Center(
child: CircularProgressIndicator(),
),
] else ...[
Builder(builder: (context) { Builder(builder: (context) {
List<DropValue> vehicleTypeDrop = []; List<DropValue> requestTypeDrop = [];
for (var element in requestsVM.vehicleTypes) { for (var element in requestsVM.myRequestsTypeEnum) {
vehicleTypeDrop.add(DropValue(element.id?.toInt() ?? 0, element.vehicleTypeName ?? "", "")); requestTypeDrop.add(DropValue(element.enumValue.toInt() ?? 0, element.enumValueStr ?? "", ""));
} }
return DropdownField( return DropdownField(
(DropValue value) => requestsVM.updateSelectionVehicleTypeId(SelectionModel(selectedId: value.id, selectedOption: value.value)), (DropValue value) => requestsVM.updateSelectionRequestTypeId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
list: vehicleTypeDrop, list: requestTypeDrop,
dropdownValue: requestsVM.vehicleTypeId.selectedId != -1 ? DropValue(requestsVM.vehicleTypeId.selectedId, requestsVM.vehicleTypeId.selectedOption, "") : null, dropdownValue: requestsVM.requestTypeId.selectedId != -1 ? DropValue(requestsVM.requestTypeId.selectedId, requestsVM.requestTypeId.selectedOption, "") : null,
hint: "Vehicle Type", hint: "Request Type",
errorValue: requestsVM.vehicleTypeId.errorValue, errorValue: requestsVM.requestTypeId.errorValue,
); );
}), }),
], ],
8.height, 8.height,
if (requestsVM.requestTypeId.selectedId != -1)
if (requestsVM.isFetchingVehicleType) ...[
const Center(
child: CircularProgressIndicator(),
),
] else
...[
Builder(builder: (context) {
List<DropValue> vehicleTypeDrop = [];
for (var element in requestsVM.vehicleTypes) {
vehicleTypeDrop.add(DropValue(element.id?.toInt() ?? 0, element.vehicleTypeName ?? "", ""));
}
return DropdownField(
(DropValue value) => requestsVM.updateSelectionVehicleTypeId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
list: vehicleTypeDrop,
dropdownValue: requestsVM.vehicleTypeId.selectedId != -1 ? DropValue(requestsVM.vehicleTypeId.selectedId, requestsVM.vehicleTypeId.selectedOption, "") : null,
hint: "Vehicle Type",
errorValue: requestsVM.vehicleTypeId.errorValue,
);
}),
],
8.height,
if (requestsVM.vehicleTypeId.selectedId != -1) if (requestsVM.vehicleTypeId.selectedId != -1)
if (requestsVM.isFetchingVehicleDetail) ...[ if (requestsVM.isFetchingVehicleDetail) ...[
const Center( const Center(
child: CircularProgressIndicator(), child: CircularProgressIndicator(),
), ),
] else ...[ ] else
Column( ...[
children: [ Column(
Builder(builder: (context) { children: [
List<DropValue> vehicleBrandsDrop = []; Builder(builder: (context) {
for (var element in requestsVM.vehicleBrands) { List<DropValue> vehicleBrandsDrop = [];
vehicleBrandsDrop.add(DropValue(element.id?.toInt() ?? 0, element.vehicleBrandDescription ?? "", "")); for (var element in requestsVM.vehicleBrands) {
} vehicleBrandsDrop.add(DropValue(element.id?.toInt() ?? 0, element.vehicleBrandDescription ?? "", ""));
return DropdownField( }
(DropValue value) => requestsVM.updateSelectionVehicleBrandId(SelectionModel(selectedId: value.id, selectedOption: value.value)), return DropdownField(
list: vehicleBrandsDrop, (DropValue value) => requestsVM.updateSelectionVehicleBrandId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
dropdownValue: requestsVM.vehicleBrandId.selectedId != -1 ? DropValue(requestsVM.vehicleBrandId.selectedId, requestsVM.vehicleBrandId.selectedOption, "") : null, list: vehicleBrandsDrop,
hint: "Brand", dropdownValue: requestsVM.vehicleBrandId.selectedId != -1 ? DropValue(requestsVM.vehicleBrandId.selectedId, requestsVM.vehicleBrandId.selectedOption, "") : null,
errorValue: requestsVM.vehicleBrandId.errorValue, hint: "Brand",
); errorValue: requestsVM.vehicleBrandId.errorValue,
}), );
8.height, }),
Builder(builder: (context) { 8.height,
List<DropValue> vehicleModelsDrop = []; Builder(builder: (context) {
for (var element in requestsVM.vehicleModels) { List<DropValue> vehicleModelsDrop = [];
if (requestsVM.vehicleBrandId.selectedId == element.vehicleBrandID) vehicleModelsDrop.add(DropValue(element.id?.toInt() ?? 0, element.model ?? "", "")); for (var element in requestsVM.vehicleModels) {
} if (requestsVM.vehicleBrandId.selectedId == element.vehicleBrandID) vehicleModelsDrop.add(DropValue(element.id?.toInt() ?? 0, element.model ?? "", ""));
return DropdownField( }
(DropValue value) => requestsVM.updateSelectionVehicleModelId(SelectionModel(selectedId: value.id, selectedOption: value.value)), return DropdownField(
list: vehicleModelsDrop, (DropValue value) => requestsVM.updateSelectionVehicleModelId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
dropdownValue: requestsVM.vehicleModelId.selectedId != -1 ? DropValue(requestsVM.vehicleModelId.selectedId, requestsVM.vehicleModelId.selectedOption, "") : null, list: vehicleModelsDrop,
hint: "Model", dropdownValue: requestsVM.vehicleModelId.selectedId != -1 ? DropValue(requestsVM.vehicleModelId.selectedId, requestsVM.vehicleModelId.selectedOption, "") : null,
errorValue: requestsVM.vehicleModelId.errorValue, hint: "Model",
); errorValue: requestsVM.vehicleModelId.errorValue,
}), );
8.height, }),
Builder(builder: (context) { 8.height,
List<DropValue> vehicleYearModelsDrop = []; Builder(builder: (context) {
for (var element in requestsVM.vehicleModelYears) { List<DropValue> vehicleYearModelsDrop = [];
vehicleYearModelsDrop.add(DropValue(element.id?.toInt() ?? 0, element.modelYear ?? "", "")); for (var element in requestsVM.vehicleModelYears) {
} vehicleYearModelsDrop.add(DropValue(element.id?.toInt() ?? 0, element.modelYear ?? "", ""));
}
return DropdownField( return DropdownField(
(DropValue value) => requestsVM.updateSelectionVehicleModelYearId(SelectionModel(selectedId: value.id, selectedOption: value.value)), (DropValue value) => requestsVM.updateSelectionVehicleModelYearId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
list: vehicleYearModelsDrop, list: vehicleYearModelsDrop,
dropdownValue: dropdownValue:
requestsVM.vehicleModelYearId.selectedId != -1 ? DropValue(requestsVM.vehicleModelYearId.selectedId, requestsVM.vehicleModelYearId.selectedOption, "") : null, requestsVM.vehicleModelYearId.selectedId != -1 ? DropValue(requestsVM.vehicleModelYearId.selectedId, requestsVM.vehicleModelYearId.selectedOption, "") : null,
hint: "Year", hint: "Year",
errorValue: requestsVM.vehicleModelYearId.errorValue, errorValue: requestsVM.vehicleModelYearId.errorValue,
); );
}), }),
8.height, 8.height,
Builder(builder: (context) { Builder(builder: (context) {
List<DropValue> vehicleCountriesDrop = []; List<DropValue> vehicleCountriesDrop = [];
for (var element in requestsVM.vehicleCountries) { for (var element in requestsVM.vehicleCountries) {
vehicleCountriesDrop.add(DropValue(element.id?.toInt() ?? 0, element.countryName ?? "", "")); vehicleCountriesDrop.add(DropValue(element.id?.toInt() ?? 0, element.countryName ?? "", ""));
} }
return DropdownField( return DropdownField(
(DropValue value) => requestsVM.updateSelectionVehicleCountryId(SelectionModel(selectedOption: value.value, selectedId: value.id)), (DropValue value) => requestsVM.updateSelectionVehicleCountryId(SelectionModel(selectedOption: value.value, selectedId: value.id)),
list: vehicleCountriesDrop, list: vehicleCountriesDrop,
dropdownValue: requestsVM.vehicleCountryId.selectedId != -1 ? DropValue(requestsVM.vehicleCountryId.selectedId, requestsVM.vehicleCountryId.selectedOption, "") : null, dropdownValue: requestsVM.vehicleCountryId.selectedId != -1
hint: "Country", ? DropValue(requestsVM.vehicleCountryId.selectedId, requestsVM.vehicleCountryId.selectedOption, "")
errorValue: requestsVM.vehicleCountryId.errorValue, : null,
); hint: "Country",
}), errorValue: requestsVM.vehicleCountryId.errorValue,
if (requestsVM.vehicleCountryId.selectedId != -1) ...[ );
if (requestsVM.isCountryFetching) ...[ }),
if (requestsVM.vehicleCountryId.selectedId != -1) ...[
if (requestsVM.isCountryFetching) ...[
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [const CircularProgressIndicator().paddingAll(10)],
),
] else
...[
8.height,
Builder(builder: (context) {
List<DropValue> vehicleCitiesDrop = [];
for (var element in requestsVM.vehicleCities) {
vehicleCitiesDrop.add(DropValue(element.id?.toInt() ?? 0, element.cityName ?? "", ""));
}
return DropdownField(
(DropValue value) => requestsVM.updateSelectionVehicleCityId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
list: vehicleCitiesDrop,
dropdownValue: requestsVM.vehicleCityId.selectedId != -1 ? DropValue(requestsVM.vehicleCityId.selectedId, requestsVM.vehicleCityId.selectedOption, "") : null,
hint: "City",
errorValue: requestsVM.vehicleCityId.errorValue,
);
}),
],
],
8.height,
TxtField(
hint: "Price",
value: requestsVM.price,
keyboardType: TextInputType.number,
onChanged: (e) => requestsVM.updatePrice(e),
),
8.height,
TxtField(
hint: "Description",
maxLines: 5,
value: requestsVM.description,
onChanged: (e) => requestsVM.updateDescription(e),
),
8.height,
DottedRectContainer(
onTap: () => context.read<RequestsVM>().pickMultipleImages(),
text: "Attach Image",
icon: MyAssets.attachmentIcon.buildSvg(),
),
if (requestsVM.vehicleImageError != "") ...[
10.height,
Row( Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.end,
children: [const CircularProgressIndicator().paddingAll(10)], children: [
requestsVM.vehicleImageError.toText(fontSize: 14, color: Colors.red),
],
).paddingOnly(right: 10)
],
if (requestsVM.pickedVehicleImages.isNotEmpty) ...[
16.height,
PickedFilesContainer(
pickedFiles: requestsVM.pickedVehicleImages,
onCrossPressedPrimary: requestsVM.removeImageFromList,
onAddFilePressed: () {
context.read<RequestsVM>().pickMultipleImages();
},
), ),
] else ...[
8.height,
Builder(builder: (context) {
List<DropValue> vehicleCitiesDrop = [];
for (var element in requestsVM.vehicleCities) {
vehicleCitiesDrop.add(DropValue(element.id?.toInt() ?? 0, element.cityName ?? "", ""));
}
return DropdownField(
(DropValue value) => requestsVM.updateSelectionVehicleCityId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
list: vehicleCitiesDrop,
dropdownValue: requestsVM.vehicleCityId.selectedId != -1 ? DropValue(requestsVM.vehicleCityId.selectedId, requestsVM.vehicleCityId.selectedOption, "") : null,
hint: "City",
errorValue: requestsVM.vehicleCityId.errorValue,
);
}),
], ],
], 16.height,
8.height,
TxtField(
hint: "Price",
value: requestsVM.price,
onChanged: (e) => requestsVM.updatePrice(e),
),
8.height,
TxtField(
hint: "Description",
maxLines: 5,
value: requestsVM.description,
onChanged: (e) => requestsVM.updateDescription(e),
),
8.height,
DottedRectContainer(
onTap: () => context.read<RequestsVM>().pickMultipleImages(),
text: "Attach Image",
icon: MyAssets.attachmentIcon.buildSvg(),
),
if (requestsVM.vehicleImageError != "") ...[
10.height,
Row( Row(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
requestsVM.vehicleImageError.toText(fontSize: 14, color: Colors.red), Checkbox(
value: requestsVM.isShippingDeliveryEnabled,
onChanged: null,
),
"Shipping/Delivery".toText(color: MyColors.darkPrimaryColor, isBold: true, fontSize: 18)
], ],
).paddingOnly(right: 10) ).onPress(() {
requestsVM.updateShippingDeliverEnabled(!requestsVM.isShippingDeliveryEnabled);
}),
], ],
if (requestsVM.pickedVehicleImages.isNotEmpty) ...[ ),
16.height, ]
PickedFilesContainer(
pickedFiles: requestsVM.pickedVehicleImages,
onCrossPressedPrimary: requestsVM.removeImageFromList,
onAddFilePressed: () {
context.read<RequestsVM>().pickMultipleImages();
},
),
],
16.height,
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Checkbox(
value: requestsVM.isShippingDeliveryEnabled,
onChanged: null,
),
"Shipping/Delivery".toText(color: MyColors.darkPrimaryColor, isBold: true, fontSize: 18)
],
).onPress(() {
requestsVM.updateShippingDeliverEnabled(!requestsVM.isShippingDeliveryEnabled);
}),
],
),
]
], ],
).toContainer(isShadowEnabled: true, marginAll: 16, paddingAll: 12), ).toContainer(isShadowEnabled: true, marginAll: 16, paddingAll: 12),
), ),

@ -1,10 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:mc_common_app/config/routes.dart';
import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/theme/colors.dart';
import 'package:mc_common_app/utils/navigator.dart';
import 'package:mc_common_app/views/setting_options/widgets/custom_setting_options_tile.dart'; import 'package:mc_common_app/views/setting_options/widgets/custom_setting_options_tile.dart';
import 'package:mc_common_app/widgets/button/show_fill_button.dart';
import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';

@ -35,7 +35,7 @@ class _LoginWithPasswordState extends State<LoginWithPassword> {
//TODO: ONLY FOR DEVELOPMENT PURPOSE //TODO: ONLY FOR DEVELOPMENT PURPOSE
// String phoneNum = "966504278212", password = "Fa@1234"; // String phoneNum = "966504278212", password = "Fa@1234";
// String phoneNum = "966504278213", password = "Fa@1234"; // String phoneNum = "966504278213", password = "Fa@1234";
String phoneNum = "966504278214", password = "Fa@1234"; String phoneNum = "966504278213", password = "Fa@1234";
String email = ""; String email = "";
String countryCode = ""; String countryCode = "";
Country? _country; Country? _country;

Loading…
Cancel
Save