buildEmoji method

Widget buildEmoji(
  1. Emoji emoji,
  2. double emojiSize,
  3. double emojiBoxSize
)

Build emoji cell

Implementation

Widget buildEmoji(Emoji emoji, double emojiSize, double emojiBoxSize) {
  // Apply a remembered skin tone for display and selection.
  // Falls back to the base glyph when no tone is remembered.
  final displayEmoji = utils.applyDisplaySkinTone(
    emoji,
    widget.config.skinToneConfig,
    _rememberedSkinTone,
  );
  return addSkinToneTargetIfAvailable(
    hasSkinTone: displayEmoji.hasSkinTone,
    linkKey: displayEmoji.emoji,
    child: EmojiCell.fromConfig(
      emoji: displayEmoji,
      emojiSize: emojiSize,
      emojiBoxSize: emojiBoxSize,
      onEmojiSelected: widget.state.onEmojiSelected,
      config: widget.config,
      onSkinToneDialogRequested:
          (emojiBoxPosition, emoji, emojiSize, category) {
            closeSkinToneOverlay();
            if (!emoji.hasSkinTone || !widget.config.skinToneConfig.enabled) {
              return;
            }
            showSkinToneOverlay(
              emojiBoxPosition,
              emoji,
              emojiSize,
              null, // Todo: check if we can provide the category
              widget.config,
              _onSkinTonedEmojiSelected,
              links[emoji.emoji]!,
            );
          },
    ),
  );
}