import 'package:car_customer_app/main.dart'; import 'package:car_customer_app/view_models/ad_view_model.dart'; import 'package:car_customer_app/views/advertisement/create_ad_progress_steps.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/extensions/int_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/enums.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/dropdown/dropdow_field.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:mc_common_app/widgets/txt_field.dart'; import 'package:provider/provider.dart'; import 'package:mc_common_app/widgets/common_widgets/dotted_rect.dart'; class CreateAdView extends StatelessWidget { CreateAdView({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( appBar: CustomAppBar( title: "Create Ad", isRemoveBackButton: false, isDrawerEnabled: false, ), body: SingleChildScrollView( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ CreateAdProgressSteps(), 22.height, //TODO: Need to add a Widget Builder here, based on the Enums VehicleDetails().toWhiteContainer(width: double.infinity, allPading: 12, margin: EdgeInsets.symmetric(horizontal: 21, vertical: 10)), 10.height, SizedBox( width: double.infinity, child: ShowFillButton( title: "Next", onPressed: () { context.read().updateCurrentStep(AdCreationStepsEnum.damageParts); }, )), 10.height, ], ), ), ); } } class VehicleDetails extends StatelessWidget { const VehicleDetails({Key? key}) : super(key: key); @override Widget build(BuildContext context) { List dropList = [ DropValue(0, "Maintenance", ""), DropValue(1, "Car Wash", ""), DropValue(2, "Monthly Checkup", ""), DropValue(3, "Friendly Visit", ""), DropValue(4, "Muftaa", ""), ]; return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ "Vehicle Detail".toText(fontSize: 18, isBold: true), 8.height, DropdownField( (DropValue value) {}, list: dropList, hint: "Vehicle Type", ), 8.height, DropdownField( (DropValue value) {}, list: dropList, hint: "Vehicle Model", ), 8.height, DropdownField( (DropValue value) {}, list: dropList, hint: "Vehicle Model Year", ), 8.height, DropdownField( (DropValue value) {}, list: dropList, hint: "Vehicle Color", ), 8.height, DropdownField( (DropValue value) {}, list: dropList, hint: "Vehicle Condition", ), 8.height, DropdownField( (DropValue value) {}, list: dropList, hint: "Vehicle Category", ), 8.height, TxtField( hint: "Vehicle Mileage", // onChanged: (v) => email = v, ), 8.height, DropdownField( (DropValue value) {}, list: dropList, hint: "Vehicle Transmission", ), 8.height, DropdownField( (DropValue value) {}, list: dropList, hint: "Vehicle Seller Type", ), 8.height, DropdownField( (DropValue value) {}, list: dropList, hint: "Vehicle Country", ), 8.height, DropdownField( (DropValue value) {}, list: dropList, hint: "Vehicle City", ), 8.height, TxtField( hint: "Demand Amount", // onChanged: (v) => email = v, ), 8.height, TxtField( hint: "Vehicle VIN", // onChanged: (v) => email = v, ), 8.height, TxtField( hint: "Vehicle Title", // onChanged: (v) => email = v, ), 8.height, TxtField( hint: "Warranty Available (No. of Years)", // onChanged: (v) => email = v, ), 8.height, TxtField( hint: "Vehicle Description", maxLines: 5, // onChanged: (v) => email = v, ), 22.height, "Finance Available".toText(fontSize: 16), 8.height, Consumer(builder: (BuildContext context, AdVM adVm, Widget? child) { return Container( width: 65, height: 37, decoration: BoxDecoration( color: adVm.financeAvailableStatus ? MyColors.darkPrimaryColor : MyColors.white, borderRadius: BorderRadius.circular(25.0), border: Border.all(color: MyColors.black, width: 1.5), ), child: CupertinoSwitch( activeColor: MyColors.darkPrimaryColor, trackColor: MyColors.white, thumbColor: MyColors.grey98Color, value: adVm.financeAvailableStatus, onChanged: (value) { adVm.updateFinanceAvailableStatus(value); }, ), ); }), 28.height, "Vehicle Pictures".toText(fontSize: 18, isBold: true), 8.height, InkWell( onTap: () { context.read().pickImageFromPhone(1); }, child: Container( height: 46, width: double.infinity, color: MyColors.white, child: DashedRect( color: MyColors.lightIconColor, strokeWidth: 2.0, gap: 4.0, child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ MyAssets.attachmentIcon.buildSvg(), "Attach Image".toText( fontSize: 15, isBold: true, color: MyColors.darkPrimaryColor, ), ], ), ), ), ), 20.height, ], ); } }