53 lines
1.1 KiB
Dart
53 lines
1.1 KiB
Dart
import 'package:cached_network_image/cached_network_image.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
// ignore: must_be_immutable
|
|
class CustomAvatar extends StatelessWidget {
|
|
String? avtarUrl;
|
|
double size;
|
|
double radius;
|
|
|
|
CustomAvatar(
|
|
this.avtarUrl, {
|
|
Key? key,
|
|
this.size = 44,
|
|
this.radius = 4,
|
|
}) : super(key: key);
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
if (avtarUrl == null || avtarUrl == '') {
|
|
avtarUrl = 'assets/chats/default_avatar.png';
|
|
}
|
|
|
|
avtarUrl = avtarUrl!.trim();
|
|
|
|
return SizedBox(
|
|
width: size,
|
|
height: size,
|
|
child: ClipRRect(
|
|
borderRadius: BorderRadius.circular(radius),
|
|
child: _image(),
|
|
),
|
|
);
|
|
}
|
|
|
|
Widget _image() {
|
|
if (avtarUrl!.contains('http') || avtarUrl!.contains('https')) {
|
|
return CachedNetworkImage(
|
|
imageUrl: avtarUrl!,
|
|
width: size,
|
|
height: size,
|
|
fit: BoxFit.cover,
|
|
);
|
|
} else {
|
|
return Image.asset(
|
|
avtarUrl!,
|
|
width: size,
|
|
height: size,
|
|
fit: BoxFit.cover,
|
|
);
|
|
}
|
|
}
|
|
}
|