import 'package:flutter/material.dart'; import 'package:get/get.dart'; import '../../../Controller/More/Notification/Notificationcontroller.dart'; import '../../../Helper/Constants/Assetconstants.dart'; import '../../../Helper/Constants/Colorconstants.dart'; class NotificationView extends StatelessWidget { NotificationView({super.key}); final NotificationController controller = Get.put(NotificationController()); @override Widget build(BuildContext context) { return Scaffold( backgroundColor: ColorConstants.lightColor, appBar: AppBar( leading: Row( children: [ IconButton(onPressed: (){ Navigator.pop(context); }, icon: Icon(Icons.arrow_back,color: Colors.black,)), Text( "Notification", style: TextStyle(color: Colors.black,fontSize: 20), ), ], ), leadingWidth: 400, elevation: 0, backgroundColor:ColorConstants.lightColor, automaticallyImplyLeading: true, ), body: Obx(() { // Loading state if (controller.isLoading.value) { return const Center(child: CircularProgressIndicator()); } // Empty state if (controller.notifications.isEmpty) { return Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Image( height: 160, width: 160, image: AssetImage(AssetConstants.NoRecords), ), const SizedBox(height: 10), Text( "No notification at this moment", style: TextStyle(color: Colors.grey[600], fontSize: 18), ), ], ), ); } // Notification List return ListView.builder( padding: const EdgeInsets.all(12), itemCount: controller.notifications.length, itemBuilder: (context, index) { final NotificationModel item = controller.notifications[index]; return Card( elevation: 2, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(12), ), child: ListTile( title: Text( item.title, style: TextStyle( fontWeight: FontWeight.bold, color: Colors.black, ), ), subtitle: Text( item.message, maxLines: 1, overflow: TextOverflow.ellipsis, ), trailing: Text( item.notificationdate.split("T")[0], // YYYY-MM-DD style: const TextStyle(fontSize: 12, color: Colors.grey), ), ), ); }, ); }), ); } }