FurryChat/lib/components/avatar.dart

45 lines
1.3 KiB
Dart
Raw Normal View History

2020-01-01 18:10:13 +00:00
import 'package:cached_network_image/cached_network_image.dart';
import 'package:famedlysdk/famedlysdk.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'matrix.dart';
class Avatar extends StatelessWidget {
final MxContent mxContent;
final double size;
final Function onTap;
2020-01-01 18:10:13 +00:00
const Avatar(this.mxContent, {this.size = 40, this.onTap, Key key})
: super(key: key);
2020-01-01 18:10:13 +00:00
@override
Widget build(BuildContext context) {
final String src = mxContent.getThumbnail(
Matrix.of(context).client,
width: size * MediaQuery.of(context).devicePixelRatio,
height: size * MediaQuery.of(context).devicePixelRatio,
method: ThumbnailMethod.scale,
);
return InkWell(
onTap: onTap,
child: CircleAvatar(
radius: size / 2,
backgroundImage: mxContent.mxc?.isNotEmpty ?? false
? kIsWeb
? NetworkImage(
src,
)
: CachedNetworkImageProvider(
src,
)
: null,
backgroundColor: Theme.of(context).secondaryHeaderColor,
child: mxContent.mxc.isEmpty
? Text("@", style: TextStyle(color: Colors.blueGrey))
: null,
),
2020-01-01 18:10:13 +00:00
);
}
}