import 'package:diplomaticquarterapp/core/model/notifications/get_notifications_request_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/notifications_view_model.dart'; import 'package:diplomaticquarterapp/pages/DrawerPages/notifications/notification_details_page.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; // ignore: must_be_immutable class NotificationsPage extends StatelessWidget { getDateForm(String date) { DateTime d = DateUtil.convertStringToDate(date); String monthName = DateUtil.getMonth(d.month).toString(); TimeOfDay timeOfDay = TimeOfDay(hour: d.hour, minute: d.minute); String minute = timeOfDay.minute < 10 ? timeOfDay.minute.toString().padLeft(2, '0') : timeOfDay.minute.toString(); String hour = '${timeOfDay.hourOfPeriod}:$minute'; if (timeOfDay.period == DayPeriod.am) { hour = hour + "AM"; } else { { hour = hour + "PM"; } } //DayPeriod.am return monthName + ',${d.day},${d.year}, $hour'; } int currentIndex = 0; @override Widget build(BuildContext context) { var prescriptionReport; return BaseView( onModelReady: (model) { GetNotificationsRequestModel getNotificationsRequestModel = new GetNotificationsRequestModel( currentPage: currentIndex, pagingSize: 14, notificationStatusID: 2); model.getNotifications(getNotificationsRequestModel, context); }, builder: (_, model, widget) => AppScaffold( isShowAppBar: true, appBarTitle: TranslationBase.of(context).notifications, baseViewModel: model, body: ListView( children: model.notifications .map( (notification) => InkWell( onTap: () async { if(!notification.isRead) model.markAsRead(notification.id); Navigator.push( context, MaterialPageRoute( builder: (BuildContext context) => NotificationsDetailsPage( notification: notification, ))); }, child: Container( width: double.infinity, margin: EdgeInsets.only( top: 5, left: 10, right: 10, bottom: 5), padding: EdgeInsets.all(8.0), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.all( Radius.circular(10.0), ), border: Border.all( color: notification.isRead ? Colors.grey[200] : Theme.of(context).primaryColor, width: 0.5), ), child: Row( children: [ Expanded( child: Padding( padding: const EdgeInsets.all(8.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Texts(getDateForm(notification.createdOn)), SizedBox( height: 5, ), Row( children: [ Expanded( child: Texts(notification.message)), if (notification.messageType == "image") Icon(FontAwesomeIcons.images) ], ), SizedBox( height: 5, ), ], ), ), ), SizedBox( width: 15, ), ], ), ), ), ) .toList() ..add( InkWell( onTap: () async { GifLoaderDialogUtils.showMyDialog( context); currentIndex++; GetNotificationsRequestModel getNotificationsRequestModel = new GetNotificationsRequestModel( currentPage: currentIndex, pagingSize: 14, notificationStatusID: 2); await model.getNotifications(getNotificationsRequestModel,context); GifLoaderDialogUtils.hideDialog( context); }, child: Center( child: Image.asset('assets/images/notf.png'), ), ), )), ), ); } }