import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:onemd/model/ac_doctor_model.dart'; import 'fx_data_mitra.dart'; import 'provider/doctor_address_lookup_provider.dart'; import 'provider/doctor_lookup_provider.dart'; import 'provider/selectedDoctorProvider.dart'; class FxDoctorAddress extends HookConsumerWidget { final double? width; const FxDoctorAddress({ Key? key, this.width, }) : super(key: key); @override Widget build(BuildContext context, WidgetRef ref) { final listAddress = useState>(List.empty()); final doctorModel = ref.watch(selectedAcDoctorProvider); String doctorName = doctorModel?.fullName ?? ""; ref.listen(doctorAddressLookupProvider, (prev, next) { if (next is DoctorAddressLookupStateDone) { for (int idx = 0; idx < next.list.length; idx++) { next.list[idx].isCheck = false; } listAddress.value = next.list; } }); return Container( width: double.infinity, decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), border: Border.all(color: Colors.blue.shade700), color: Colors.blue.shade100.withOpacity(0.3), ), child: ConstrainedBox( constraints: BoxConstraints.loose(const Size(double.infinity, 150)), child: Padding( padding: const EdgeInsets.all(8.0), child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ FxNormalBlueText( title: "Alamat dari $doctorName", isBold: true, ), const SizedBox(height: 10), if (listAddress.value.isNotEmpty) ConstrainedBox( constraints: BoxConstraints.loose(const Size(double.infinity, 100)), child: ListView.builder( shrinkWrap: true, itemCount: listAddress.value.length, itemBuilder: (context, idx) { final model = listAddress.value[idx]; return Row( children: [ Checkbox( value: model.isCheck, onChanged: ((val) { final List list = List.empty(growable: true); list.addAll(listAddress.value); list[idx].isCheck = val ?? false; listAddress.value = list; }), ), const SizedBox(width: 10), Expanded( child: FxNormalBlueText( title: model.mDoctorAddressDescription), ), ], ); }, ), ), ], ), ), )); } }