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.
mohemm-flutter-app/lib/home/home_screen_components.dart

93 lines
3.2 KiB
Dart

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:queuing_system/core/config/config.dart';
import 'package:queuing_system/core/config/size_config.dart';
import 'package:queuing_system/core/response_model/patient_call.dart';
import 'package:queuing_system/home/priority_calls.dart';
import 'package:queuing_system/utils/call_type.dart';
import 'package:queuing_system/widget/data_display/app_texts_widget.dart';
Widget noPatientInQueue(){
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Center(
child: AppText("Awaiting Patients Arrival",
fontFamily: 'Poppins-SemiBold.ttf',
fontSize: SizeConfig.getWidthMultiplier() * 9),
),
],
);
}
Widget priorityTickets(List<Tickets> tickets){
return PriorityTickets(tickets);
}
Widget priorityTicketsWithSideList(List<Tickets> tickets){
final priorityTickets = tickets.sublist(0,3);
final otherTickets = tickets.sublist(3,tickets.length);
return Row(
children: [
Expanded(
flex: 3,
child: PriorityTickets(priorityTickets)
),
Container(color: Colors.grey.withOpacity(0.1), width: 10, margin: const EdgeInsets.symmetric(horizontal: 20, vertical: 50)),
Expanded(
flex: 2,
child: ListView.builder(
padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 50),
itemCount: otherTickets.length,
itemBuilder: (ctx,idx){
final itm = otherTickets[idx];
final isDoctor = itm.callType == 1;
final icon = "assets/images/${isDoctor ? 'doctoricon' : 'nurseicon'}.svg";
final title = "Please Visit ${isDoctor ? 'Doctor' : 'Nurse'}";
final color = isDoctor ? AppGlobal.appRedColor : AppGlobal.appGreenColor;
return ListTile(
contentPadding: const EdgeInsets.all(8),
title: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
width: 140,
child: AppText(
itm.callNo.toString(),
letterSpacing: -2.32,
fontWeight: FontWeight.bold,
fontSize: SizeConfig.getWidthMultiplier() * 5,
textAlign: TextAlign.end,
),
),
Row(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
itm.getCallType().icon(SizeConfig.getHeightMultiplier()*2.5),
const SizedBox(width: 10),
AppText(
itm.getCallType().message('en'),
color: itm.getCallType().color(),
letterSpacing: -1.5,
fontSize: SizeConfig.getWidthMultiplier() * 3.3,
fontWeight: FontWeight.w600,
fontHeight: 0.5,
),
],
)
],
),
);
},
),
)
],
);
}