import 'package:car_provider_app/view_models/items_view_model.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/extensions/int_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/services_models/item_model.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/widgets/button/show_fill_button.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 '../../settings/schedule/widgets/chips_picker_item.dart'; import 'package:easy_localization/easy_localization.dart'; class SelectItemsSheet extends StatelessWidget { int serviceId; Function(List) onSelectItems; List? list; SelectItemsSheet( {Key? key, required this.serviceId, required this.onSelectItems, this.list}) : super(key: key); @override Widget build(BuildContext context) { context.read().getServiceItems(serviceId,list: list); return SizedBox( width: double.infinity, height: MediaQuery.of(context).size.height / 1.4, child: Column( children: [ Expanded( child: Consumer( builder: (_, model, child) { return Padding( padding: const EdgeInsets.only(left: 20, right: 20, top: 6), child: Column( children: [ Row( children: [ Expanded( child: LocaleKeys.selectItems.tr() .toText(fontSize: 24, isBold: true), ), Center( child: (model.serviceItems == null ? "0" : model.serviceItems!.data! .where((element) => element.isUpdateOrSelected == true) .toList() .length .toString()) .toText( fontSize: 10, isBold: true, color: Colors.white, ), ).toContainer( borderRadius: 100, width: 24, height: 24, paddingAll: 0, backgroundColor: MyColors.darkPrimaryColor, ), ], ), 12.height, TxtField( hint: LocaleKeys.searchItems.tr(), onChanged: (v) {}, ), 12.height, Expanded( child: model.serviceItems?.data == null ? const Center(child: CircularProgressIndicator()) : model.serviceItems?.data!.length == 0 ? Center(child: "No Item Found".toText()) : ListView.separated( itemBuilder: (BuildContext context, int index) { return Row( children: [ Checkbox( value: model .serviceItems! .data![index] .isUpdateOrSelected, onChanged: (bool? v) { model.serviceItems!.data![index] .isUpdateOrSelected = v; model.notifyListeners(); }, ), 12.width, Expanded( child: model.serviceItems! .data![index].name! .toText(), ), ], ); }, separatorBuilder: (BuildContext context, int index) { return const Divider( height: 1, ); }, itemCount: model.serviceItems?.data?.length ?? 0, ), ), ], ), ); }, ), ), ShowFillButton( title: LocaleKeys.addSelectedItems.tr(), maxWidth: double.infinity, margin: const EdgeInsets.all(20), onPressed: () { if (context.read().serviceItems != null) { List list = []; context.read().serviceItems!.data!.forEach((element) { if (element.isUpdateOrSelected ?? false) { list.add(element); } }); onSelectItems(list); } Navigator.pop(context); }, ) ], ), ); } }