mirror of
https://gitlab.com/comunic/comunicmobile
synced 2024-11-23 05:19:22 +00:00
51 lines
1.2 KiB
Dart
51 lines
1.2 KiB
Dart
|
import 'package:cached_network_image/cached_network_image.dart';
|
||
|
import 'package:comunic/models/group.dart';
|
||
|
import 'package:flutter/material.dart';
|
||
|
|
||
|
/// Custom group icon
|
||
|
///
|
||
|
/// @author Pierre Hubert
|
||
|
class GroupIcon extends StatelessWidget {
|
||
|
final Group group;
|
||
|
final double width;
|
||
|
|
||
|
const GroupIcon({
|
||
|
Key key,
|
||
|
@required this.group,
|
||
|
this.width = 50,
|
||
|
}) : assert(group != null),
|
||
|
assert(width != null),
|
||
|
super(key: key);
|
||
|
|
||
|
@override
|
||
|
Widget build(BuildContext context) {
|
||
|
return Material(
|
||
|
child: CachedNetworkImage(
|
||
|
imageUrl: group.iconURL,
|
||
|
width: width,
|
||
|
height: width,
|
||
|
placeholder: (c, s) => Container(
|
||
|
color: Colors.grey,
|
||
|
width: width,
|
||
|
height: width,
|
||
|
child: Padding(
|
||
|
padding: const EdgeInsets.all(8.0),
|
||
|
child: CircularProgressIndicator(
|
||
|
strokeWidth: 4.0,
|
||
|
),
|
||
|
),
|
||
|
),
|
||
|
errorWidget: (c, s, o) => Container(
|
||
|
color: Colors.red,
|
||
|
width: width,
|
||
|
height: width,
|
||
|
child: Icon(
|
||
|
Icons.error,
|
||
|
color: Colors.white,
|
||
|
),
|
||
|
),
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
}
|