import 'package:cheminova/provider/notification_provider.dart'; import 'package:cheminova/utils/string_extension.dart'; import 'package:cheminova/widgets/common_app_bar.dart'; import 'package:cheminova/widgets/common_background.dart'; import 'package:cheminova/widgets/common_drawer.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; class AnnouncementScreen extends StatefulWidget { const AnnouncementScreen({super.key}); @override State createState() => _AnnouncementScreenState(); } class _AnnouncementScreenState extends State { @override void initState() { super.initState(); WidgetsBinding.instance.addPostFrameCallback((_) { context.read().getAnnouncement(); }); } @override Widget build(BuildContext context) { final notificationProvider = context.watch(); return CommonBackground( child: Scaffold( backgroundColor: Colors.transparent, appBar: CommonAppBar( actions: [ IconButton( onPressed: () { Navigator.pop(context); }, icon: Image.asset('assets/Back_attendance.png'), padding: const EdgeInsets.only(right: 20), ), ], title: const Text('Announcement', style: TextStyle( fontSize: 20, color: Colors.black, fontWeight: FontWeight.w400, fontFamily: 'Anek')), backgroundColor: Colors.transparent, elevation: 0, ), drawer: const CommonDrawer(), body: Stack( children: [ ListView.builder( itemCount: notificationProvider.announcementList.length, itemBuilder: (context, index) { return Container( margin: const EdgeInsets.only( bottom: 10, left: 10, right: 10, ), decoration: const BoxDecoration( color: Colors.white, borderRadius: BorderRadius.all(Radius.circular(10))), child: ListTile( title: const Text('Message:'), subtitle: Text( '${notificationProvider.announcementList[index].message.capitalize()}\nDate: ${DateFormat("dd/MM/yyyy").format( DateTime.parse(notificationProvider .announcementList[index].date), )}', ), ), ); }), if (notificationProvider.isLoading) Container( height: MediaQuery.of(context).size.height, width: MediaQuery.of(context).size.width, decoration: BoxDecoration( color: Colors.black.withOpacity(0.2), ), child: const Center( child: CircularProgressIndicator(), ), ), ], ), ), ); } }