From 7019440cc105ffec2daa9e84886e7a89e6c4876d Mon Sep 17 00:00:00 2001 From: yaso Date: Mon, 7 Oct 2024 14:29:44 +0200 Subject: [PATCH] create notification Object --- .../mih_layout/mih_notification_drawer.dart | 63 +++++++++++++++++-- 1 file changed, 59 insertions(+), 4 deletions(-) diff --git a/Frontend/patient_manager/lib/mih_components/mih_layout/mih_notification_drawer.dart b/Frontend/patient_manager/lib/mih_components/mih_layout/mih_notification_drawer.dart index bdda7ae4..083a034b 100644 --- a/Frontend/patient_manager/lib/mih_components/mih_layout/mih_notification_drawer.dart +++ b/Frontend/patient_manager/lib/mih_components/mih_layout/mih_notification_drawer.dart @@ -1,15 +1,17 @@ import 'package:flutter/material.dart'; import 'package:patient_manager/main.dart'; import 'package:patient_manager/mih_objects/app_user.dart'; +import 'package:patient_manager/mih_objects/notification.dart'; class MIHNotificationDrawer extends StatefulWidget { final AppUser signedInUser; - final ImageProvider? propicFile; + final List notifications; + //final ImageProvider? propicFile; const MIHNotificationDrawer({ super.key, required this.signedInUser, - required this.propicFile, + required this.notifications, }); @override @@ -34,7 +36,7 @@ class _MIHNotificationDrawerState extends State { return temp; } - Widget displayNotifications(int index) { + Widget displayTempNotifications(int index) { String title = notificationList[index][0]; String subtitle = notificationList[index][1]; return ListTile( @@ -56,6 +58,59 @@ class _MIHNotificationDrawerState extends State { ); } + Widget displayNotifications(int index) { + String title = widget.notifications[index].notification_type; + String subtitle = widget.notifications[index].notification_message; + Widget notificationTitle; + if (widget.notifications[index].notification_read == "No") { + notificationTitle = Row( + children: [ + const Icon(Icons.circle_notifications), + const SizedBox( + width: 5, + ), + Flexible( + child: Text( + title, + style: TextStyle( + color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), + ), + ), + ), + ], + ); + } else { + notificationTitle = Row( + children: [ + //const Icon(Icons.circle_notifications), + Flexible( + child: Text( + title, + style: TextStyle( + color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), + ), + ), + ), + ], + ); + } + return ListTile( + title: notificationTitle, + subtitle: Text( + subtitle, + style: TextStyle( + color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), + ), + ), + onTap: () { + Navigator.of(context).pushNamed( + widget.notifications[index].action_path, + arguments: widget.signedInUser, + ); + }, + ); + } + @override void dispose() { super.dispose(); @@ -106,7 +161,7 @@ class _MIHNotificationDrawerState extends State { color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), ); }, - itemCount: notificationList.length, + itemCount: widget.notifications.length, itemBuilder: (context, index) { //final patient = widget.patients[index].id_no.contains(widget.searchString); //print(index);