diff --git a/Frontend/lib/mih_components/medicine_search.dart b/Frontend/lib/mih_components/medicine_search.dart deleted file mode 100644 index 8db4b912..00000000 --- a/Frontend/lib/mih_components/medicine_search.dart +++ /dev/null @@ -1,202 +0,0 @@ -import 'dart:convert'; - -import 'package:flutter/material.dart'; -import '../mih_components/mih_layout/mih_window.dart'; -import '../mih_packages/patient_profile/builder/build_med_list.dart'; -import '../mih_components/mih_pop_up_messages/mih_loading_circle.dart'; -import '../mih_components/mih_pop_up_messages/mih_error_message.dart'; -import '../mih_env/env.dart'; -import '../mih_objects/medicine.dart'; -import 'package:supertokens_flutter/http.dart' as http; - -class MedicineSearch extends StatefulWidget { - final TextEditingController searchVlaue; - const MedicineSearch({ - super.key, - required this.searchVlaue, - }); - - @override - State createState() => _MedicineSearchState(); -} - -class _MedicineSearchState extends State { - final String endpointMeds = "${AppEnviroment.baseApiUrl}/users/medicine/"; - - //TextEditingController searchController = TextEditingController(); - - late Future> futueMeds; - //String searchString = ""; - - Future> getMedList(String endpoint) async { - final response = await http.get(Uri.parse(endpoint)); - if (response.statusCode == 200) { - Iterable l = jsonDecode(response.body); - List medicines = - List.from(l.map((model) => Medicine.fromJson(model))); - // List meds = []; - // medicines.forEach((element) => meds.add(element.name)); - return medicines; - } else { - internetConnectionPopUp(); - throw Exception('failed to load medicine'); - } - } - - void internetConnectionPopUp() { - showDialog( - context: context, - builder: (context) { - return const MIHErrorMessage(errorType: "Internet Connection"); - }, - ); - } - - @override - void dispose() { - super.dispose(); - } - - @override - void initState() { - futueMeds = getMedList(endpointMeds + widget.searchVlaue.text); - super.initState(); - } - - @override - Widget build(BuildContext context) { - return MIHWindow( - fullscreen: false, - windowTitle: "Select Medicine", - windowTools: [], - onWindowTapClose: () { - Navigator.pop(context); - }, - windowBody: [ - FutureBuilder( - future: futueMeds, - builder: (context, snapshot) { - if (snapshot.connectionState == ConnectionState.waiting) { - return const SizedBox( - height: 400, - child: Mihloadingcircle(), - ); - } else if (snapshot.hasData && snapshot.data!.isNotEmpty) { - final medsList = snapshot.data!; - return SizedBox( - height: 400, - child: BuildMedicinesList( - contoller: widget.searchVlaue, - medicines: medsList, - //searchString: searchString, - ), - ); - } else { - return const SizedBox( - height: 400, - child: Center( - child: Text( - "No Match Found\nPlease close and manually capture medicine", - style: TextStyle(fontSize: 25, color: Colors.grey), - textAlign: TextAlign.center, - ), - ), - ); - } - }, - ), - ], - ); - // return Dialog( - // child: Stack( - // children: [ - // Container( - // padding: const EdgeInsets.all(10.0), - // width: 700.0, - // //height: 475.0, - // decoration: BoxDecoration( - // color: MzanziInnovationHub.of(context)!.theme.primaryColor(), - // borderRadius: BorderRadius.circular(25.0), - // border: Border.all( - // color: - // MzanziInnovationHub.of(context)!.theme.secondaryColor(), - // width: 5.0), - // ), - // child: SingleChildScrollView( - // padding: const EdgeInsets.symmetric(horizontal: 10), - // child: Column( - // crossAxisAlignment: CrossAxisAlignment.center, - // mainAxisAlignment: MainAxisAlignment.center, - // mainAxisSize: MainAxisSize.min, - // children: [ - // Text( - // "Select Medicine", - // textAlign: TextAlign.center, - // style: TextStyle( - // color: MzanziInnovationHub.of(context)! - // .theme - // .secondaryColor(), - // fontSize: 35.0, - // fontWeight: FontWeight.bold, - // ), - // ), - // const SizedBox(height: 25.0), - // FutureBuilder( - // future: futueMeds, - // builder: (context, snapshot) { - // if (snapshot.connectionState == ConnectionState.waiting) { - // return const SizedBox( - // height: 400, - // child: Mihloadingcircle(), - // ); - // } else if (snapshot.hasData && - // snapshot.data!.isNotEmpty) { - // final medsList = snapshot.data!; - // return SizedBox( - // height: 400, - // child: BuildMedicinesList( - // contoller: widget.searchVlaue, - // medicines: medsList, - // //searchString: searchString, - // ), - // ); - // } else { - // return const SizedBox( - // height: 400, - // child: Center( - // child: Text( - // "No Match Found\nPlease close and manually capture medicine", - // style: - // TextStyle(fontSize: 25, color: Colors.grey), - // textAlign: TextAlign.center, - // ), - // ), - // ); - // } - // }, - // ), - // ], - // ), - // ), - // ), - // Positioned( - // top: 5, - // right: 5, - // width: 50, - // height: 50, - // child: IconButton( - // onPressed: () { - // Navigator.pop(context); - // }, - // icon: const Icon( - // Icons.close, - // color: Colors.red, - // size: 35, - // ), - // ), - // ), - // ], - // ), - // ); - } -} diff --git a/Frontend/lib/mih_packages/patient_profile/pat_profile/components/medicine_search.dart b/Frontend/lib/mih_packages/patient_profile/pat_profile/components/medicine_search.dart new file mode 100644 index 00000000..af9c00c6 --- /dev/null +++ b/Frontend/lib/mih_packages/patient_profile/pat_profile/components/medicine_search.dart @@ -0,0 +1,112 @@ +import 'dart:convert'; + +import 'package:Mzansi_Innovation_Hub/mih_components/mih_layout/mih_window.dart'; +import 'package:Mzansi_Innovation_Hub/mih_components/mih_pop_up_messages/mih_error_message.dart'; +import 'package:Mzansi_Innovation_Hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart'; +import 'package:Mzansi_Innovation_Hub/mih_env/env.dart'; +import 'package:Mzansi_Innovation_Hub/mih_objects/medicine.dart'; +import 'package:Mzansi_Innovation_Hub/mih_packages/patient_profile/pat_profile/list_builders/build_med_list.dart'; +import 'package:flutter/material.dart'; + +import 'package:supertokens_flutter/http.dart' as http; + +class MedicineSearch extends StatefulWidget { + final TextEditingController searchVlaue; + const MedicineSearch({ + super.key, + required this.searchVlaue, + }); + + @override + State createState() => _MedicineSearchState(); +} + +class _MedicineSearchState extends State { + final String endpointMeds = "${AppEnviroment.baseApiUrl}/users/medicine/"; + + //TextEditingController searchController = TextEditingController(); + + late Future> futueMeds; + //String searchString = ""; + + Future> getMedList(String endpoint) async { + final response = await http.get(Uri.parse(endpoint)); + if (response.statusCode == 200) { + Iterable l = jsonDecode(response.body); + List medicines = + List.from(l.map((model) => Medicine.fromJson(model))); + // List meds = []; + // medicines.forEach((element) => meds.add(element.name)); + return medicines; + } else { + internetConnectionPopUp(); + throw Exception('failed to load medicine'); + } + } + + void internetConnectionPopUp() { + showDialog( + context: context, + builder: (context) { + return const MIHErrorMessage(errorType: "Internet Connection"); + }, + ); + } + + @override + void dispose() { + super.dispose(); + } + + @override + void initState() { + futueMeds = getMedList(endpointMeds + widget.searchVlaue.text); + super.initState(); + } + + @override + Widget build(BuildContext context) { + return MIHWindow( + fullscreen: false, + windowTitle: "Select Medicine", + windowTools: [], + onWindowTapClose: () { + Navigator.pop(context); + }, + windowBody: [ + FutureBuilder( + future: futueMeds, + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return const SizedBox( + height: 400, + child: Mihloadingcircle(), + ); + } else if (snapshot.hasData && snapshot.data!.isNotEmpty) { + final medsList = snapshot.data!; + return SizedBox( + height: 400, + child: BuildMedicinesList( + contoller: widget.searchVlaue, + medicines: medsList, + //searchString: searchString, + ), + ); + } else { + return const SizedBox( + height: 400, + child: Center( + child: Text( + "No Match Found\nPlease close and manually capture medicine", + style: TextStyle(fontSize: 25, color: Colors.grey), + textAlign: TextAlign.center, + ), + ), + ); + } + }, + ), + ], + ); + } +}