You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
doctor_app_flutter/lib/widgets/patients/profile/PatientProfileButton.dart

139 lines
4.0 KiB
Dart

import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/dr_app_circular_progress_Indeicator.dart';
import 'package:flutter/material.dart';
class PatientProfileButton extends StatelessWidget {
final String nameLine1;
final String nameLine2;
final String icon;
final dynamic route;
final PatiantInformtion patient;
final String patientType;
String arrivalType;
final bool isInPatient;
String from;
String to;
final String url = "assets/images/";
final bool isDisable;
final bool isLoading;
final Function onTap;
final bool isDischargedPatient;
PatientProfileButton(
{Key key,
this.patient,
this.patientType,
this.arrivalType,
this.nameLine1,
this.nameLine2,
this.icon,
this.route,
this.isDisable = false,
this.onTap,
this.isLoading = false,
this.from,
this.to,
this.isInPatient = false, this.isDischargedPatient=false,
})
: super(key: key);
@override
Widget build(BuildContext context) {
return new Container(
margin: new EdgeInsets.symmetric(horizontal: 4.0),
padding: EdgeInsets.fromLTRB(10, 10, 10, 5),
child: InkWell(
onTap: isDisable
? null
: onTap != null
? onTap
: () {
navigator(context, this.route);
},
child: Column(children: <Widget>[
Container(
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Container(
child: new Image.asset(
url + icon,
width: 50,
height: 50,
))
],
)),
Container(
alignment: Alignment.topLeft,
padding: EdgeInsets.all(5),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppText(
this.nameLine1,
color: Colors.black,
/*Color(0xFFB9382C),*/
fontWeight: FontWeight.w600,
textAlign: TextAlign.left,
fontSize: SizeConfig.textMultiplier * 1.5,
),
AppText(
this.nameLine2,
color: Colors.black,
fontWeight: FontWeight.w600,
textAlign: TextAlign.left,
fontSize: SizeConfig.textMultiplier * 1.5,
),
if (isLoading) DrAppCircularProgressIndeicator()
],
),
),
]),
),
decoration: BoxDecoration(
// border: Border.all(),
color: isDisable ? Colors.grey.withOpacity(0.4) : Colors.white,
borderRadius: BorderRadius.all(Radius.circular(10)),
border: Border.fromBorderSide(BorderSide(
color: Color(0xffBBBBBB),
width: 1,
)),
/*boxShadow: [
BoxShadow(
color: Colors.grey.withOpacity(0.2),
spreadRadius: 5,
blurRadius: 7,
offset: Offset(0, 3), // changes position of shadow
),
],*/
),
);
}
void navigator(BuildContext context, route) {
if(route == null)
return;
if (from == null) {
from = DateUtils.convertDateToFormat(DateTime.now(), 'yyyy-MM-dd');
}
if (to == null) {
to = DateUtils.convertDateToFormat(DateTime.now(), 'yyyy-MM-dd');
}
if(arrivalType == null){
arrivalType = "0";
}
Navigator.of(context).pushNamed(route, arguments: {
'patient': patient,
'from': from,
'to': to,
'patientType': patientType,
'arrivalType': arrivalType,
'isInpatient': isInPatient,
'isDischargedPatient': isDischargedPatient,
});
}
}