Browse Source

Merge pull request #209 from provokateurin/feature/emoji-status

neon: Display emojis for status
pull/201/head
Kate 2 years ago committed by GitHub
parent
commit
2051b30cb0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 25
      packages/neon/lib/src/widgets/account_avatar.dart

25
packages/neon/lib/src/widgets/account_avatar.dart

@ -41,15 +41,18 @@ class AccountAvatar extends StatelessWidget {
), ),
ResultBuilder<UserStatusBloc, NextcloudUserStatusStatus?>( ResultBuilder<UserStatusBloc, NextcloudUserStatusStatus?>(
stream: Provider.of<AccountsBloc>(context, listen: false).getUserStatusBloc(account).userStatus, stream: Provider.of<AccountsBloc>(context, listen: false).getUserStatusBloc(account).userStatus,
builder: (final context, final userStatus) => SizedBox( builder: (final context, final userStatus) {
final hasEmoji = userStatus.data?.icon != null;
final factor = hasEmoji ? 2 : 3;
return SizedBox(
height: kAvatarSize, height: kAvatarSize,
width: kAvatarSize, width: kAvatarSize,
child: Align( child: Align(
alignment: Alignment.bottomRight, alignment: Alignment.bottomRight,
child: Container( child: Container(
height: kAvatarSize / 3, height: kAvatarSize / factor,
width: kAvatarSize / 3, width: kAvatarSize / factor,
decoration: userStatus.loading || userStatus.error != null || userStatus.data == null decoration: userStatus.loading || userStatus.error != null || userStatus.data == null || hasEmoji
? null ? null
: BoxDecoration( : BoxDecoration(
shape: BoxShape.circle, shape: BoxShape.circle,
@ -63,15 +66,23 @@ class AccountAvatar extends StatelessWidget {
: userStatus.error != null && : userStatus.error != null &&
(userStatus.error is! NextcloudApiException || (userStatus.error is! NextcloudApiException ||
(userStatus.error! as NextcloudApiException).statusCode != 404) (userStatus.error! as NextcloudApiException).statusCode != 404)
? const Icon( ? Icon(
Icons.error_outline, Icons.error_outline,
size: kAvatarSize / 3, size: kAvatarSize / factor,
color: Colors.red, color: Colors.red,
) )
: null, : hasEmoji
? Text(
userStatus.data!.icon!,
style: const TextStyle(
fontSize: 16,
), ),
)
: null,
), ),
), ),
);
},
), ),
], ],
); );

Loading…
Cancel
Save