medora-provider/lib/screens/patientDashboard/registrationScreens/patient_family_members_screen.dart
DhanshCOSQ ec433190c4 UI complete (#2)
UI complete for patient registration

Co-authored-by: Benoy Bose <benoybose@gmail.com>
Reviewed-on: cosqnet/telemednet#2
Reviewed-by: Benoy Bose <benoybose@cosq.net>
Co-authored-by: DhanshCOSQ <dhanshas@cosq.net>
Co-committed-by: DhanshCOSQ <dhanshas@cosq.net>
2024-10-31 06:04:36 +00:00

154 lines
3.9 KiB
Dart

import 'package:flutter/material.dart';
import 'package:telemednet/screens/patientDashboard/registrationScreens/family_members_edit_screen.dart';
class FamilyMember {
final String name;
final String gender;
final String dateOfBirth;
final String relation;
FamilyMember({
required this.name,
required this.gender,
required this.dateOfBirth,
required this.relation,
});
}
class PatientFamilyMembersScreen extends StatefulWidget {
const PatientFamilyMembersScreen({super.key});
@override
State<PatientFamilyMembersScreen> createState() =>
_PatientFamilyMembersScreenState();
}
class _PatientFamilyMembersScreenState
extends State<PatientFamilyMembersScreen> {
List<FamilyMember> familyMembers = [
FamilyMember(
name: "Dhansh A S",
gender: "Male",
dateOfBirth: "18/12/2001",
relation: "Father",
),
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Family members'),
actions: [
TextButton(
onPressed: () {
// Handle 'Done' action
},
child: Text('Done', style: TextStyle(color: Colors.blue)),
),
],
),
body: ListView.builder(
itemCount: familyMembers.length,
itemBuilder: (context, index) {
return FamilyMemberCard(
familyMember: familyMembers[index],
onEdit: () => _editFamilyMember(index),
onDelete: () => _deleteFamilyMember(index),
);
},
),
floatingActionButton: FloatingActionButton(
onPressed: _addFamilyMember,
child: Icon(Icons.add),
backgroundColor: Colors.blue,
),
);
}
void _addFamilyMember() {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => const FamilyMembersEditScreen()),
).then((newMember) {
if (newMember != null) {
setState(() {
familyMembers.add(newMember);
});
}
});
}
void _editFamilyMember(int index) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
FamilyMembersEditScreen(familyMember: familyMembers[index]),
),
).then((editedMember) {
if (editedMember != null) {
setState(() {
familyMembers[index] = editedMember;
});
}
});
}
void _deleteFamilyMember(int index) {
setState(() {
familyMembers.removeAt(index);
});
}
}
class FamilyMemberCard extends StatelessWidget {
final FamilyMember familyMember;
final VoidCallback onEdit;
final VoidCallback onDelete;
const FamilyMemberCard({
super.key,
required this.familyMember,
required this.onEdit,
required this.onDelete,
});
@override
Widget build(BuildContext context) {
return Card(
margin: EdgeInsets.symmetric(horizontal: 16, vertical: 8),
child: Padding(
padding: EdgeInsets.all(16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('Name: ${familyMember.name}',
style: TextStyle(fontWeight: FontWeight.bold)),
SizedBox(height: 4),
Text('Gender: ${familyMember.gender}'),
SizedBox(height: 4),
Text('Date of Birth: ${familyMember.dateOfBirth}'),
SizedBox(height: 4),
Text('Relation: ${familyMember.relation}'),
SizedBox(height: 8),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
IconButton(
icon: Icon(Icons.edit, color: Colors.blue),
onPressed: onEdit,
),
IconButton(
icon: Icon(Icons.delete, color: Colors.red),
onPressed: onDelete,
),
],
),
],
),
),
);
}
}