fix: avatar displays error (#7403)

This commit is contained in:
Morn 2025-02-21 14:28:24 +08:00 committed by GitHub
parent fd12d3a0b0
commit 58f7659d55
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,13 +1,13 @@
import 'package:appflowy/plugins/document/application/document_awareness_metadata.dart';
import 'package:appflowy/plugins/document/application/document_collaborators_bloc.dart';
import 'package:appflowy/plugins/document/presentation/collaborator_avater_stack.dart';
import 'package:appflowy/workspace/presentation/widgets/user_avatar.dart';
import 'package:appflowy_backend/protobuf/flowy-folder/view.pb.dart';
import 'package:appflowy_editor/appflowy_editor.dart';
import 'package:avatar_stack/avatar_stack.dart';
import 'package:flowy_infra_ui/flowy_infra_ui.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:string_validator/string_validator.dart';
import 'package:universal_platform/universal_platform.dart';
class DocumentCollaborators extends StatelessWidget {
const DocumentCollaborators({
@ -93,39 +93,14 @@ class _UserAvatar extends StatelessWidget {
@override
Widget build(BuildContext context) {
final Widget child;
if (isURL(user.userAvatar)) {
child = _buildUrlAvatar(context);
} else {
child = _buildNameAvatar(context);
}
return FlowyTooltip(
message: user.userName,
child: child,
);
}
Widget _buildNameAvatar(BuildContext context) {
return CircleAvatar(
backgroundColor: user.cursorColor.tryToColor(),
child: FlowyText(
user.userName.characters.firstOrNull ?? ' ',
fontSize: fontSize,
color: Colors.black,
),
);
}
Widget _buildUrlAvatar(BuildContext context) {
return ClipRRect(
borderRadius: BorderRadius.circular(width),
child: CircleAvatar(
backgroundColor: user.cursorColor.tryToColor(),
child: Image.network(
user.userAvatar,
fit: BoxFit.cover,
errorBuilder: (context, error, stackTrace) =>
_buildNameAvatar(context),
child: IgnorePointer(
child: UserAvatar(
iconUrl: user.userAvatar,
name: user.userName,
size: 30.0,
fontSize: fontSize ?? (UniversalPlatform.isMobile ? 14 : 12),
),
),
);