Solian/lib/widgets/account/account_avatar.dart

42 lines
1.1 KiB
Dart
Raw Normal View History

2024-05-18 10:17:16 +00:00
import 'package:flutter/material.dart';
import 'package:solian/services.dart';
class AccountAvatar extends StatelessWidget {
final dynamic content;
2024-05-18 10:17:16 +00:00
final Color? color;
final double? radius;
const AccountAvatar(
{super.key, required this.content, this.color, this.radius});
2024-05-18 10:17:16 +00:00
@override
Widget build(BuildContext context) {
bool direct = false;
bool isEmpty = content == null;
if (content is String) {
direct = content.startsWith('http');
2024-05-25 16:11:00 +00:00
if (!isEmpty) isEmpty = content.isEmpty;
if (!isEmpty) isEmpty = content.endsWith('/api/attachments/0');
}
2024-05-18 10:17:16 +00:00
return CircleAvatar(
2024-05-19 10:01:00 +00:00
key: Key('a$content'),
2024-05-18 10:17:16 +00:00
radius: radius,
backgroundColor: color,
backgroundImage: !isEmpty
? NetworkImage(
direct
? content
: '${ServiceFinder.services['paperclip']}/api/attachments/$content',
)
: null,
child: isEmpty
? Icon(
Icons.account_circle,
size: radius != null ? radius! * 1.2 : 24,
)
: null,
2024-05-18 10:17:16 +00:00
);
}
}