Convert notifications control to use user icon

This commit is contained in:
Hank Grabowski 2022-12-27 11:08:16 -05:00
parent a2c2cc9270
commit 65c14b1e3a

View file

@ -1,3 +1,4 @@
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_widget_from_html_core/flutter_widget_from_html_core.dart'; import 'package:flutter_widget_from_html_core/flutter_widget_from_html_core.dart';
import 'package:go_router/go_router.dart'; import 'package:go_router/go_router.dart';
@ -6,6 +7,7 @@ import 'package:provider/provider.dart';
import '../globals.dart'; import '../globals.dart';
import '../models/user_notification.dart'; import '../models/user_notification.dart';
import '../routes.dart'; import '../routes.dart';
import '../services/connections_manager.dart';
import '../services/notifications_manager.dart'; import '../services/notifications_manager.dart';
import '../services/timeline_manager.dart'; import '../services/timeline_manager.dart';
import '../utils/dateutils.dart'; import '../utils/dateutils.dart';
@ -37,7 +39,20 @@ class NotificationControl extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
const iconSize = 50.0;
final manager = context.watch<NotificationsManager>(); final manager = context.watch<NotificationsManager>();
final fromIcon =
getIt<ConnectionsManager>().getById(notification.fromId).fold(
onSuccess: (connection) => CachedNetworkImage(
imageUrl: connection.avatarUrl.toString(),
width: iconSize,
height: iconSize),
onError: (error) => const SizedBox(
width: iconSize,
height: iconSize,
child: Icon(Icons.question_mark),
),
);
if (notification.type == NotificationType.reblog) { if (notification.type == NotificationType.reblog) {
print(notification); print(notification);
} }
@ -48,7 +63,7 @@ class NotificationControl extends StatelessWidget {
context.pushNamed(ScreenPaths.userProfile, context.pushNamed(ScreenPaths.userProfile,
params: {'id': notification.fromId}); params: {'id': notification.fromId});
}, },
child: Text(notification.fromName), child: fromIcon,
), ),
title: GestureDetector( title: GestureDetector(
onTap: () async { onTap: () async {