You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cloudsolutions-atoms/lib/views/widgets/notifications/notification_item.dart

73 lines
2.8 KiB
Dart

import 'package:flutter/material.dart';
import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/system_notification_model.dart';
import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart';
class NotificationItem extends StatelessWidget {
final SystemNotificationModel notification;
final Function(SystemNotificationModel) onPressed;
final bool isLoading;
const NotificationItem({Key key, this.notification, this.onPressed, this.isLoading = false}) : super(key: key);
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
if (notification.priorityName != null)
StatusLabel(
label: notification.priorityName,
textColor: AppColor.getRequestStatusTextColorByName(context, notification.priorityName),
backgroundColor: AppColor.getRequestStatusColorByName(context, notification.priorityName),
).toShimmer(isShow: isLoading),
8.width,
if((notification.statusName ?? "").isNotEmpty && notification.sourceName!="Asset Transfer")
StatusLabel(
label: notification.statusName ?? "",
textColor: AppColor.getRequestStatusTextColorByName(context, notification.statusName ?? ""),
backgroundColor: AppColor.getRequestStatusColorByName(context, notification.statusName ?? ""),
).toShimmer(isShow: isLoading),
],
),
8.height,
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
notification.title ?? "",
style: AppTextStyles.heading6.copyWith(
color: context.isDark ? AppColor.neutral30 : AppColor.neutral50,
),
).toShimmer(isShow: isLoading).expanded,
8.width,
Text(
notification.createdOn.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.right,
style: AppTextStyles.tinyFont.copyWith(
color: context.isDark ? AppColor.neutral20 : AppColor.neutral50,
),
).toShimmer(isShow: isLoading),
],
),
Text(
notification.text ?? "",
style: AppTextStyles.bodyText2.copyWith(
color: context.isDark ? AppColor.neutral10 : Color(0xFF757575),
),
).toShimmer(isShow: isLoading),
],
).onPress(() {
onPressed(notification);
});
}
}