import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart'; import 'package:diplomaticquarterapp/pages/MyAppointments/models/DoctorScheduleResponse.dart'; import 'package:diplomaticquarterapp/pages/MyAppointments/widgets/indicator.dart'; import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:flutter/material.dart'; import 'package:hexcolor/hexcolor.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/medical_view_model.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; class SchedulePage extends StatefulWidget { final DoctorList doctorList; SchedulePage(this.doctorList); @override _SchedulePageState createState() => _SchedulePageState(); } class _SchedulePageState extends State { DoctorsListService service; PageController _pageController = PageController(); double currentPage = 0; int selectedindex = 0; bool isLoading = true; List doctorScheduleResponse = []; final List introWidgetsList = [ Text('Hello'), Text('Hi'), Text('hey') ]; @override void initState() { //getSchedule(widget.doctorList, context); // _pageController.addListener(() { // setState(() { // currentPage = _pageController.page; // }); // }); super.initState(); } @override Widget build(BuildContext context) { return BaseView( onModelReady: (model) => model.getDoctorSchedule(widget.doctorList), builder: (_, model, widget) => AppScaffold( appBarTitle: TranslationBase.of(context).schedule, isShowAppBar: true, baseViewModel: model, body: SizedBox( height: MediaQuery.of(context).size.height, child: Stack( children: [ Container( child: PageView.builder( controller: _pageController, itemCount: 3, onPageChanged: (index) { setState(() { this.currentPage = index.toDouble(); }); }, itemBuilder: (context, index) { return Container( child: ListView.builder( itemCount: model.getDoctorScheduleList.length, itemBuilder: (context, index) => ClipRRect( borderRadius: const BorderRadius.all( Radius.circular(20.0)), child: Container( padding: EdgeInsets.only( left: 10, right: 10, top: 20, bottom: 20), margin: EdgeInsets.only( left: 20, right: 20, top: 7, bottom: 7), decoration: BoxDecoration( boxShadow: [ BoxShadow( color: Colors.green, offset: Offset(-10, 0)), ], borderRadius: const BorderRadius.all( Radius.circular(10.0)), color: Colors.white), child: Row( children: [ Expanded( child: Row(children: [ Column( children: [ Texts( model .getDoctorScheduleList[ index] .dayName, color: HexColor('#0bb690'), ), Texts( DateUtil .getDayMonthYearDateFormatted( DateUtil .convertStringToDate( model .getDoctorScheduleList[ index] .date, ), ), color: HexColor('#0bb690'), ) ], ) ]), ), Expanded( child: Texts( model .getDoctorScheduleList[ index] .workingHours, color: HexColor('#0bb690'), ), ) ], ))))); }, )), PageViewIndicator( isActive: true, currentPage: this.currentPage, length: introWidgetsList.length, ) ], )))); } //getSchedule(DoctorList doctor, BuildContext context) { //GifLoaderDialogUtils.showMyDialog(context); //service = new DoctorsListService(); // service.getSchedule(doctor).then((value) { // doctorScheduleResponse.clear(); // setState(() { // value['List_DoctorWorkingHoursTable'].forEach((item) => { // doctorScheduleResponse.add(DoctorScheduleResponse.fromJson(item)) // }); // GifLoaderDialogUtils.hideDialog(context); // }); // }); // } }