import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:provider/provider.dart'; import 'package:tm_app/core/constants/assets.dart'; import 'package:tm_app/core/theme/colors.dart'; import 'package:tm_app/core/utils/size_config.dart'; import 'package:tm_app/data/services/model/notification_data/notification_data.dart'; import 'package:tm_app/view_models/notification_view_model.dart'; class NotificationCard extends StatelessWidget { final NotificationItem notification; const NotificationCard({required this.notification, super.key}); @override Widget build(BuildContext context) { final viewModel = context.read(); return Container( width: double.infinity, margin: EdgeInsets.symmetric(horizontal: 24.0.w()), padding: const EdgeInsets.all(16.0), decoration: BoxDecoration( color: notification.type == 'reject' ? AppColors.orange10 : notification.type == 'info' ? AppColors.primary10Light : AppColors.green0, borderRadius: BorderRadius.circular(4), border: Border.all( color: notification.type! == 'reject' ? AppColors.warningColor : notification.type == 'info' ? AppColors.primary20 : AppColors.green20, ), ), child: Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( padding: EdgeInsets.only(top: 3.0.h()), child: SvgPicture.asset( notification.type! == 'info' ? AssetsManager.notification : notification.type! == 'reject' ? AssetsManager.danger : AssetsManager.tickCircle, ), ), SizedBox(width: 5.0.w()), Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( notification.title!, style: TextStyle( fontSize: 16.0.sp(), fontWeight: FontWeight.w600, color: AppColors.grey80, ), ), SizedBox(height: 8.0.h()), Text( notification.message!, maxLines: 1, overflow: TextOverflow.ellipsis, style: TextStyle( fontSize: 14.0.sp(), fontWeight: FontWeight.w400, color: AppColors.grey70, ), ), SizedBox(height: 8.0.h()), Row( children: [ SvgPicture.asset(AssetsManager.calendar), SizedBox(width: 4.0.w()), Text( viewModel.timeAgo(notification.createdAt!), style: TextStyle( fontSize: 12.0.sp(), fontWeight: FontWeight.w400, color: AppColors.grey60, ), ), ], ), ], ), ], ), ); } }