Skip to content

Commit 156d314

Browse files
committed
user status [nfc]: Use EmojiWidget
1 parent 848a978 commit 156d314

File tree

1 file changed

+10
-15
lines changed

1 file changed

+10
-15
lines changed

lib/widgets/user.dart

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import 'package:flutter/material.dart';
33
import '../api/model/model.dart';
44
import '../model/avatar_url.dart';
55
import '../model/binding.dart';
6-
import '../model/emoji.dart';
76
import '../model/presence.dart';
87
import 'content.dart';
98
import 'emoji.dart';
@@ -349,7 +348,6 @@ class UserStatusEmoji extends StatelessWidget {
349348
final store = PerAccountStoreWidget.of(context);
350349
final effectiveEmoji = emoji ?? store.getUserStatus(userId!).emoji;
351350

352-
final placeholder = SizedBox.square(dimension: size);
353351
if (effectiveEmoji == null) return SizedBox.shrink();
354352

355353
final emojiDisplay = store.emojiDisplayFor(
@@ -362,19 +360,16 @@ class UserStatusEmoji extends StatelessWidget {
362360

363361
return Padding(
364362
padding: padding,
365-
child: switch (emojiDisplay) {
366-
UnicodeEmojiDisplay() => UnicodeEmojiWidget(size: size, emojiDisplay: emojiDisplay),
367-
ImageEmojiDisplay() => ImageEmojiWidget(
368-
size: size,
369-
emojiDisplay: emojiDisplay,
370-
neverAnimate: neverAnimate,
371-
// If image emoji fails to load, show nothing.
372-
errorBuilder: (_, _, _) => placeholder),
373-
// The user-status feature doesn't support a :text_emoji:-style display.
374-
// Also, if an image emoji's URL string doesn't parse, it'll fall back to
375-
// a :text_emoji:-style display. We show nothing for this case.
376-
TextEmojiDisplay() => placeholder,
377-
});
363+
child: EmojiWidget(
364+
emojiDisplay: emojiDisplay,
365+
squareDimension: size,
366+
neverAnimateImage: neverAnimate,
367+
buildCustomTextEmoji: () =>
368+
// Invoked when an image emoji's URL didn't parse; see
369+
// EmojiStore.emojiDisplayFor. Don't show text, just an empty square.
370+
// TODO(design) refine?; offer a visible touch target with tooltip?
371+
SizedBox.square(dimension: size),
372+
));
378373
}
379374
}
380375

0 commit comments

Comments
 (0)