import 'package:diplomaticquarterapp/core/model/er/PatientER.dart'; import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart'; import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; enum HaveAppointment { YES, NO } class PickupLocation extends StatefulWidget { final Function changeCurrentTab; final PatientER patientER; PickupLocation( {Key key, this.changeCurrentTab, this.patientER, this.amRequestViewModel}); final AmRequestViewModel amRequestViewModel; @override _PickupLocationState createState() => _PickupLocationState(); } class _PickupLocationState extends State { bool _isInsideHome = false; HaveAppointment _haveAppointment = HaveAppointment.NO; @override Widget build(BuildContext context) { return SingleChildScrollView( physics: BouncingScrollPhysics(), child: Container( margin: EdgeInsets.only(left: 12, right: 12), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ if (widget.patientER.direction == 1) Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Texts('Pickup Location'), SizedBox( height: 15, ), Container( padding: EdgeInsets.all(12), decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(8), border: Border.all(color: Colors.grey, width: 0.5), color: Colors.white, ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Texts('Select From Map'), Icon( FontAwesomeIcons.mapMarkerAlt, size: 24, color: Colors.black, ) ], ), ), SizedBox( height: 12, ), Texts('Pickup Spot'), SizedBox( height: 5, ), InkWell( onTap: () { setState(() { _isInsideHome = !_isInsideHome; }); }, child: Container( decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(8), border: Border.all(color: Colors.grey, width: 0.5), color: Colors.white, ), child: ListTile( title: Texts('Inside Home'), leading: Checkbox( activeColor: Colors.red[800], value: _isInsideHome, onChanged: (value) { setState(() { _isInsideHome = value; }); }, ), ), ), ), SizedBox( height: 12, ), Texts('Do you have an appointment ?'), SizedBox( height: 5, ), Row( children: [ Expanded( child: InkWell( onTap: () { setState(() { _haveAppointment = HaveAppointment.YES; }); }, child: Container( decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(8), border: Border.all(color: Colors.grey, width: 0.5), color: Colors.white, ), child: ListTile( title: Text('Yes'), leading: Radio( value: HaveAppointment.YES, groupValue: _haveAppointment, activeColor: Colors.red[800], onChanged: (value) { setState(() { _haveAppointment = value; }); }, ), ), ), ), ), Expanded( child: InkWell( onTap: () { setState(() { _haveAppointment = HaveAppointment.NO; }); }, child: Container( decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(8), border: Border.all(color: Colors.grey, width: 0.5), color: Colors.white, ), child: ListTile( title: Text('No'), leading: Radio( value: HaveAppointment.NO, groupValue: _haveAppointment, activeColor: Colors.red[800], onChanged: (value) { setState(() { _haveAppointment = value; }); }, ), ), ), ), ), ], ), SizedBox( height: 12, ), Texts('Drop off Location'), SizedBox( height: 8, ), Container( padding: EdgeInsets.all(12), decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(8), border: Border.all(color: Colors.grey, width: 0.5), color: Colors.white, ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Texts('Pickup Location'), Icon( Icons.arrow_drop_down, size: 24, color: Colors.black, ) ], ), ), ], ), if (widget.patientER.direction == 2) Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Texts('Pickup Location'), SizedBox( height: 15, ), Container( padding: EdgeInsets.all(12), decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(8), border: Border.all(color: Colors.grey, width: 0.5), color: Colors.white, ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Texts('Pickup Location'), Icon( Icons.arrow_drop_down, size: 24, color: Colors.black, ) ], ), ), SizedBox( height: 12, ), Texts('Drop off Location'), SizedBox( height: 8, ), Container( padding: EdgeInsets.all(12), decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(8), border: Border.all(color: Colors.grey, width: 0.5), color: Colors.white, ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Texts('Select From Map'), Icon( FontAwesomeIcons.mapMarkerAlt, size: 24, color: Colors.black, ) ], ), ), ], ), //TODO show dialog projects SizedBox( height: 45, ), Container( padding: EdgeInsets.all(15), width: double.maxFinite, height: 76, child: SecondaryButton( color: Colors.grey[800], textColor: Colors.white, onTap: () => widget.changeCurrentTab(2), label: 'Next', ), ) ], ), ), ); } }