2019-04-27 12:19:39 +00:00
|
|
|
import 'package:cached_network_image/cached_network_image.dart';
|
|
|
|
import 'package:comunic/models/user.dart';
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
|
|
|
/// Account image widget
|
|
|
|
///
|
|
|
|
/// This widget is intended to only show a user account image
|
|
|
|
///
|
|
|
|
/// @author Pierre HUBERT
|
|
|
|
|
|
|
|
class AccountImageWidget extends StatelessWidget {
|
|
|
|
final User user;
|
|
|
|
final double width;
|
|
|
|
|
2020-04-25 12:45:43 +00:00
|
|
|
const AccountImageWidget({
|
2022-03-10 18:39:57 +00:00
|
|
|
Key? key,
|
|
|
|
required this.user,
|
2020-04-25 12:45:43 +00:00
|
|
|
this.width = 35.0,
|
|
|
|
}) : assert(user != null),
|
2019-04-27 12:19:39 +00:00
|
|
|
super(key: key);
|
|
|
|
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
return Material(
|
|
|
|
child: CachedNetworkImage(
|
2022-03-10 18:39:57 +00:00
|
|
|
imageUrl: user.accountImageURL!,
|
2019-04-27 12:19:39 +00:00
|
|
|
width: width,
|
|
|
|
height: width,
|
|
|
|
fit: BoxFit.cover,
|
|
|
|
placeholder: (c, s) => Container(
|
2020-04-25 12:45:43 +00:00
|
|
|
color: Colors.grey,
|
|
|
|
width: width,
|
|
|
|
height: width,
|
|
|
|
child: CircularProgressIndicator(
|
|
|
|
strokeWidth: 7.0,
|
|
|
|
),
|
|
|
|
),
|
2019-04-27 12:19:39 +00:00
|
|
|
errorWidget: (c, s, o) => Container(
|
2020-04-25 12:45:43 +00:00
|
|
|
color: Colors.red,
|
|
|
|
width: width,
|
|
|
|
height: width,
|
|
|
|
child: Icon(
|
|
|
|
Icons.error,
|
|
|
|
color: Colors.white,
|
|
|
|
),
|
|
|
|
),
|
2019-04-27 12:19:39 +00:00
|
|
|
),
|
|
|
|
borderRadius: BorderRadius.all(
|
|
|
|
Radius.circular(18.0),
|
|
|
|
),
|
|
|
|
clipBehavior: Clip.hardEdge,
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|