@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import ' package:mc_common_app/classes/consts.dart ' ;
import ' package:mc_common_app/classes/consts.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/generated/locale_keys.g.dart ' ;
import ' package:mc_common_app/models/general_models/widgets_models.dart ' ;
import ' package:mc_common_app/models/general_models/widgets_models.dart ' ;
import ' package:mc_common_app/theme/colors.dart ' ;
import ' package:mc_common_app/theme/colors.dart ' ;
import ' package:mc_common_app/view_models/ad_view_model.dart ' ;
import ' package:mc_common_app/view_models/ad_view_model.dart ' ;
@ -13,6 +14,7 @@ import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart';
import ' package:mc_common_app/widgets/extensions/extensions_widget.dart ' ;
import ' package:mc_common_app/widgets/extensions/extensions_widget.dart ' ;
import ' package:mc_common_app/widgets/txt_field.dart ' ;
import ' package:mc_common_app/widgets/txt_field.dart ' ;
import ' package:provider/provider.dart ' ;
import ' package:provider/provider.dart ' ;
import ' package:easy_localization/easy_localization.dart ' ;
class VehicleDetails extends StatelessWidget {
class VehicleDetails extends StatelessWidget {
const VehicleDetails ( { Key ? key } ) : super ( key: key ) ;
const VehicleDetails ( { Key ? key } ) : super ( key: key ) ;
@ -23,7 +25,7 @@ class VehicleDetails extends StatelessWidget {
return Column (
return Column (
crossAxisAlignment: CrossAxisAlignment . start ,
crossAxisAlignment: CrossAxisAlignment . start ,
children: [
children: [
" Vehicle Detail " . toText ( fontSize: 18 , isBold: true ) ,
LocaleKeys . vehicleDetail . tr ( ) . toText ( fontSize: 18 , isBold: true ) ,
8. height ,
8. height ,
Builder ( builder: ( context ) {
Builder ( builder: ( context ) {
List < DropValue > vehicleBrandsDrop = [ ] ;
List < DropValue > vehicleBrandsDrop = [ ] ;
@ -34,7 +36,7 @@ class VehicleDetails extends StatelessWidget {
( DropValue value ) = > adVM . updateSelectionVehicleBrandId ( SelectionModel ( selectedId: value . id , selectedOption: value . value ) ) ,
( DropValue value ) = > adVM . updateSelectionVehicleBrandId ( SelectionModel ( selectedId: value . id , selectedOption: value . value ) ) ,
list: vehicleBrandsDrop ,
list: vehicleBrandsDrop ,
dropdownValue: adVM . vehicleBrandId . selectedId ! = - 1 ? DropValue ( adVM . vehicleBrandId . selectedId , adVM . vehicleBrandId . selectedOption , " " ) : null ,
dropdownValue: adVM . vehicleBrandId . selectedId ! = - 1 ? DropValue ( adVM . vehicleBrandId . selectedId , adVM . vehicleBrandId . selectedOption , " " ) : null ,
hint: " Vehicle Brand " ,
hint: LocaleKeys . vehicleBrand . tr ( ) ,
errorValue: adVM . vehicleBrandId . errorValue ,
errorValue: adVM . vehicleBrandId . errorValue ,
) ;
) ;
} ) ,
} ) ,
@ -57,7 +59,7 @@ class VehicleDetails extends StatelessWidget {
( DropValue value ) = > adVM . updateSelectionVehicleModelId ( SelectionModel ( selectedId: value . id , selectedOption: value . value ) ) ,
( DropValue value ) = > adVM . updateSelectionVehicleModelId ( SelectionModel ( selectedId: value . id , selectedOption: value . value ) ) ,
list: vehicleModelsDrop ,
list: vehicleModelsDrop ,
dropdownValue: adVM . vehicleModelId . selectedId ! = - 1 ? DropValue ( adVM . vehicleModelId . selectedId , adVM . vehicleModelId . selectedOption , " " ) : null ,
dropdownValue: adVM . vehicleModelId . selectedId ! = - 1 ? DropValue ( adVM . vehicleModelId . selectedId , adVM . vehicleModelId . selectedOption , " " ) : null ,
hint: " Vehicle Model " ,
hint: LocaleKeys . vehicleModel . tr ( ) ,
errorValue: adVM . vehicleModelId . errorValue ,
errorValue: adVM . vehicleModelId . errorValue ,
) ;
) ;
} ) ,
} ) ,
@ -72,7 +74,7 @@ class VehicleDetails extends StatelessWidget {
( DropValue value ) = > adVM . updateSelectionVehicleModelYearId ( SelectionModel ( selectedId: value . id , selectedOption: value . value ) ) ,
( DropValue value ) = > adVM . updateSelectionVehicleModelYearId ( SelectionModel ( selectedId: value . id , selectedOption: value . value ) ) ,
list: vehicleYearModelsDrop ,
list: vehicleYearModelsDrop ,
dropdownValue: adVM . vehicleModelYearId . selectedId ! = - 1 ? DropValue ( adVM . vehicleModelYearId . selectedId , adVM . vehicleModelYearId . selectedOption , " " ) : null ,
dropdownValue: adVM . vehicleModelYearId . selectedId ! = - 1 ? DropValue ( adVM . vehicleModelYearId . selectedId , adVM . vehicleModelYearId . selectedOption , " " ) : null ,
hint: " Vehicle Model Year " ,
hint: LocaleKeys . vehicleModelYear . tr ( ) ,
errorValue: adVM . vehicleModelYearId . errorValue ,
errorValue: adVM . vehicleModelYearId . errorValue ,
) ;
) ;
} ) ,
} ) ,
@ -85,7 +87,7 @@ class VehicleDetails extends StatelessWidget {
return DropdownField (
return DropdownField (
( DropValue value ) = > adVM . updateSelectionVehicleColorId ( SelectionModel ( selectedId: value . id , selectedOption: value . value ) ) ,
( DropValue value ) = > adVM . updateSelectionVehicleColorId ( SelectionModel ( selectedId: value . id , selectedOption: value . value ) ) ,
list: vehicleColorsDrop ,
list: vehicleColorsDrop ,
hint: " Vehicle Color " ,
hint: LocaleKeys . vehicleColor . tr ( ) ,
dropdownValue: adVM . vehicleColorId . selectedId ! = - 1 ? DropValue ( adVM . vehicleColorId . selectedId , adVM . vehicleColorId . selectedOption , " " ) : null ,
dropdownValue: adVM . vehicleColorId . selectedId ! = - 1 ? DropValue ( adVM . vehicleColorId . selectedId , adVM . vehicleColorId . selectedOption , " " ) : null ,
errorValue: adVM . vehicleColorId . errorValue ,
errorValue: adVM . vehicleColorId . errorValue ,
) ;
) ;
@ -100,7 +102,7 @@ class VehicleDetails extends StatelessWidget {
( DropValue value ) = > adVM . updateSelectionVehicleConditionId ( SelectionModel ( selectedId: value . id , selectedOption: value . value ) ) ,
( DropValue value ) = > adVM . updateSelectionVehicleConditionId ( SelectionModel ( selectedId: value . id , selectedOption: value . value ) ) ,
list: vehicleConditionsDrop ,
list: vehicleConditionsDrop ,
dropdownValue: adVM . vehicleConditionId . selectedId ! = - 1 ? DropValue ( adVM . vehicleConditionId . selectedId , adVM . vehicleConditionId . selectedOption , " " ) : null ,
dropdownValue: adVM . vehicleConditionId . selectedId ! = - 1 ? DropValue ( adVM . vehicleConditionId . selectedId , adVM . vehicleConditionId . selectedOption , " " ) : null ,
hint: " Vehicle Condition " ,
hint: LocaleKeys . vehicleCondition . tr ( ) ,
errorValue: adVM . vehicleConditionId . errorValue ,
errorValue: adVM . vehicleConditionId . errorValue ,
) ;
) ;
} ) ,
} ) ,
@ -113,7 +115,7 @@ class VehicleDetails extends StatelessWidget {
return DropdownField (
return DropdownField (
( DropValue value ) = > adVM . updateSelectionVehicleCategoryId ( SelectionModel ( selectedId: value . id , selectedOption: value . value ) ) ,
( DropValue value ) = > adVM . updateSelectionVehicleCategoryId ( SelectionModel ( selectedId: value . id , selectedOption: value . value ) ) ,
list: vehicleCategoriesDrop ,
list: vehicleCategoriesDrop ,
hint: " Vehicle Category " ,
hint: LocaleKeys . vehicleCategory . tr ( ) ,
dropdownValue: adVM . vehicleCategoryId . selectedId ! = - 1 ? DropValue ( adVM . vehicleCategoryId . selectedId , adVM . vehicleCategoryId . selectedOption , " " ) : null ,
dropdownValue: adVM . vehicleCategoryId . selectedId ! = - 1 ? DropValue ( adVM . vehicleCategoryId . selectedId , adVM . vehicleCategoryId . selectedOption , " " ) : null ,
errorValue: adVM . vehicleCategoryId . errorValue ,
errorValue: adVM . vehicleCategoryId . errorValue ,
) ;
) ;
@ -128,7 +130,7 @@ class VehicleDetails extends StatelessWidget {
( DropValue value ) = > adVM . updateSelectionVehicleMileageId ( SelectionModel ( selectedId: value . id , selectedOption: value . value ) ) ,
( DropValue value ) = > adVM . updateSelectionVehicleMileageId ( SelectionModel ( selectedId: value . id , selectedOption: value . value ) ) ,
list: vehicleMileageDrop ,
list: vehicleMileageDrop ,
dropdownValue: adVM . vehicleMileageId . selectedId ! = - 1 ? DropValue ( adVM . vehicleMileageId . selectedId , adVM . vehicleMileageId . selectedOption , " " ) : null ,
dropdownValue: adVM . vehicleMileageId . selectedId ! = - 1 ? DropValue ( adVM . vehicleMileageId . selectedId , adVM . vehicleMileageId . selectedOption , " " ) : null ,
hint: " Vehicle Mileage " ,
hint: LocaleKeys . vehicleMileage . tr ( ) ,
errorValue: adVM . vehicleMileageId . errorValue ,
errorValue: adVM . vehicleMileageId . errorValue ,
) ;
) ;
} ) ,
} ) ,
@ -141,7 +143,7 @@ class VehicleDetails extends StatelessWidget {
return DropdownField (
return DropdownField (
( DropValue value ) = > adVM . updateSelectionVehicleTransmissionId ( SelectionModel ( selectedId: value . id , selectedOption: value . value ) ) ,
( DropValue value ) = > adVM . updateSelectionVehicleTransmissionId ( SelectionModel ( selectedId: value . id , selectedOption: value . value ) ) ,
list: vehicleTransmissionsDrop ,
list: vehicleTransmissionsDrop ,
hint: " Vehicle Transmission " ,
hint: LocaleKeys . vehicleTransmission . tr ( ) ,
dropdownValue: adVM . vehicleTransmissionId . selectedId ! = - 1 ? DropValue ( adVM . vehicleTransmissionId . selectedId , adVM . vehicleTransmissionId . selectedOption , " " ) : null ,
dropdownValue: adVM . vehicleTransmissionId . selectedId ! = - 1 ? DropValue ( adVM . vehicleTransmissionId . selectedId , adVM . vehicleTransmissionId . selectedOption , " " ) : null ,
errorValue: adVM . vehicleTransmissionId . errorValue ,
errorValue: adVM . vehicleTransmissionId . errorValue ,
) ;
) ;
@ -156,7 +158,7 @@ class VehicleDetails extends StatelessWidget {
( DropValue value ) = > adVM . updateSelectionVehicleSellerTypeId ( SelectionModel ( selectedId: value . id , selectedOption: value . value ) ) ,
( DropValue value ) = > adVM . updateSelectionVehicleSellerTypeId ( SelectionModel ( selectedId: value . id , selectedOption: value . value ) ) ,
list: vehicleSellerTypesDrop ,
list: vehicleSellerTypesDrop ,
dropdownValue: adVM . vehicleSellerTypeId . selectedId ! = - 1 ? DropValue ( adVM . vehicleSellerTypeId . selectedId , adVM . vehicleSellerTypeId . selectedOption , " " ) : null ,
dropdownValue: adVM . vehicleSellerTypeId . selectedId ! = - 1 ? DropValue ( adVM . vehicleSellerTypeId . selectedId , adVM . vehicleSellerTypeId . selectedOption , " " ) : null ,
hint: " Vehicle Seller Type " ,
hint: LocaleKeys . vehicleSellerType . tr ( ) ,
errorValue: adVM . vehicleSellerTypeId . errorValue ,
errorValue: adVM . vehicleSellerTypeId . errorValue ,
) ;
) ;
} ) ,
} ) ,
@ -170,7 +172,7 @@ class VehicleDetails extends StatelessWidget {
( DropValue value ) = > adVM . updateSelectionVehicleCountryId ( SelectionModel ( selectedOption: value . value , selectedId: value . id ) ) ,
( DropValue value ) = > adVM . updateSelectionVehicleCountryId ( SelectionModel ( selectedOption: value . value , selectedId: value . id ) ) ,
list: vehicleCountriesDrop ,
list: vehicleCountriesDrop ,
dropdownValue: adVM . vehicleCountryId . selectedId ! = - 1 ? DropValue ( adVM . vehicleCountryId . selectedId , adVM . vehicleCountryId . selectedOption , " " ) : null ,
dropdownValue: adVM . vehicleCountryId . selectedId ! = - 1 ? DropValue ( adVM . vehicleCountryId . selectedId , adVM . vehicleCountryId . selectedOption , " " ) : null ,
hint: " Vehicle Country " ,
hint: LocaleKeys . vehicleCountry . tr ( ) ,
errorValue: adVM . vehicleCountryId . errorValue ,
errorValue: adVM . vehicleCountryId . errorValue ,
) ;
) ;
} ) ,
} ) ,
@ -191,7 +193,7 @@ class VehicleDetails extends StatelessWidget {
( DropValue value ) = > adVM . updateSelectionVehicleCityId ( SelectionModel ( selectedId: value . id , selectedOption: value . value ) ) ,
( DropValue value ) = > adVM . updateSelectionVehicleCityId ( SelectionModel ( selectedId: value . id , selectedOption: value . value ) ) ,
list: vehicleCitiesDrop ,
list: vehicleCitiesDrop ,
dropdownValue: adVM . vehicleCityId . selectedId ! = - 1 ? DropValue ( adVM . vehicleCityId . selectedId , adVM . vehicleCityId . selectedOption , " " ) : null ,
dropdownValue: adVM . vehicleCityId . selectedId ! = - 1 ? DropValue ( adVM . vehicleCityId . selectedId , adVM . vehicleCityId . selectedOption , " " ) : null ,
hint: " Vehicle City " ,
hint: LocaleKeys . vehicleCity . tr ( ) ,
errorValue: adVM . vehicleCityId . errorValue ,
errorValue: adVM . vehicleCityId . errorValue ,
) ;
) ;
} ) ,
} ) ,
@ -202,7 +204,7 @@ class VehicleDetails extends StatelessWidget {
value: adVM . vehicleDemandAmount ,
value: adVM . vehicleDemandAmount ,
errorValue: adVM . demandAmountError ,
errorValue: adVM . demandAmountError ,
keyboardType: TextInputType . number ,
keyboardType: TextInputType . number ,
hint: " Demand Amount " ,
hint: LocaleKeys . demandAmount . tr ( ) ,
onChanged: ( v ) = > adVM . updateVehicleDemandAmount ( v ) ,
onChanged: ( v ) = > adVM . updateVehicleDemandAmount ( v ) ,
) ,
) ,
8. height ,
8. height ,
@ -210,14 +212,14 @@ class VehicleDetails extends StatelessWidget {
value: adVM . vehicleVin ,
value: adVM . vehicleVin ,
errorValue: adVM . vehicleVinError ,
errorValue: adVM . vehicleVinError ,
keyboardType: TextInputType . number ,
keyboardType: TextInputType . number ,
hint: " Vehicle VIN " ,
hint: LocaleKeys . vehicleVIN . tr ( ) ,
onChanged: ( v ) = > adVM . updateVehicleVin ( v ) ,
onChanged: ( v ) = > adVM . updateVehicleVin ( v ) ,
) ,
) ,
8. height ,
8. height ,
TxtField (
TxtField (
value: adVM . vehicleTitle ,
value: adVM . vehicleTitle ,
errorValue: adVM . vehicleTitleError ,
errorValue: adVM . vehicleTitleError ,
hint: " Vehicle Title " ,
hint: LocaleKeys . vehicleTitle . tr ( ) ,
onChanged: ( v ) = > adVM . updateVehicleTitle ( v ) ,
onChanged: ( v ) = > adVM . updateVehicleTitle ( v ) ,
) ,
) ,
8. height ,
8. height ,
@ -225,19 +227,19 @@ class VehicleDetails extends StatelessWidget {
value: adVM . warrantyDuration ,
value: adVM . warrantyDuration ,
errorValue: adVM . warrantyError ,
errorValue: adVM . warrantyError ,
keyboardType: TextInputType . number ,
keyboardType: TextInputType . number ,
hint: " Warranty Available (No. of Years) " ,
hint: LocaleKeys . warrantyAvailableYears . tr ( ) ,
onChanged: ( v ) = > adVM . updateVehicleWarrantyDuration ( v ) ,
onChanged: ( v ) = > adVM . updateVehicleWarrantyDuration ( v ) ,
) ,
) ,
8. height ,
8. height ,
TxtField (
TxtField (
value: adVM . vehicleDescription ,
value: adVM . vehicleDescription ,
hint: " Vehicle Description " ,
hint: LocaleKeys . vehicleDescription . tr ( ) ,
maxLines: 5 ,
maxLines: 5 ,
errorValue: adVM . vehicleDescError ,
errorValue: adVM . vehicleDescError ,
onChanged: ( v ) = > adVM . updateVehicleDescription ( v ) ,
onChanged: ( v ) = > adVM . updateVehicleDescription ( v ) ,
) ,
) ,
22. height ,
22. height ,
" Finance Available " . toText ( fontSize: 16 ) ,
LocaleKeys . financeAvailable . tr ( ) . toText ( fontSize: 16 ) ,
8. height ,
8. height ,
Container (
Container (
width: 50 ,
width: 50 ,
@ -261,11 +263,11 @@ class VehicleDetails extends StatelessWidget {
) ,
) ,
) ,
) ,
28. height ,
28. height ,
" Vehicle Pictures " . toText ( fontSize: 18 , isBold: true ) ,
LocaleKeys . vehiclePictures . tr ( ) . toText ( fontSize: 18 , isBold: true ) ,
8. height ,
8. height ,
DottedRectContainer (
DottedRectContainer (
onTap: ( ) = > context . read < AdVM > ( ) . pickMultipleImages ( ) ,
onTap: ( ) = > context . read < AdVM > ( ) . pickMultipleImages ( ) ,
text: " Attach Image " ,
text: LocaleKeys . attachImage . tr ( ) ,
icon: MyAssets . attachmentIcon . buildSvg ( ) ,
icon: MyAssets . attachmentIcon . buildSvg ( ) ,
) ,
) ,
if ( adVM . vehicleImageError ! = " " ) . . . [
if ( adVM . vehicleImageError ! = " " ) . . . [