- {aggregated.map((reaction) => (
-
- {reaction.customEmoji ? (
-

- ) : (
-
{reaction.emoji}
- )}
-
- {reaction.pubkeys.map((pk, i) => (
-
- {i > 0 &&
- (i === reaction.pubkeys.length - 1 ? (
- and
+
+
+ {aggregated.map((reaction) => {
+ const hasReacted = activeAccount?.pubkey
+ ? reaction.pubkeys.includes(activeAccount.pubkey)
+ : false;
+ const emojiKey = reaction.customEmoji
+ ? `:${reaction.customEmoji.shortcode}:`
+ : reaction.emoji;
+ const isSending = sendingEmoji === emojiKey;
+ const isTappable = canSign && !hasReacted && !isSending;
+
+ return (
+
+
+ {isTappable ? (
+
- ))}
+
{reaction.emoji}
+ )}
+
+ ) : reaction.customEmoji ? (
+

+ ) : (
+
+ {reaction.emoji}
+
+ )}
+
+ {reaction.count}
+
+
+
+ {reaction.pubkeys.map((pk) => (
+
+ ))}
+
+
+ );
+ })}
);
}
-function ReactionBadge({ reaction }: { reaction: ReactionSummary }) {
- const activeAccount = use$(accountManager.active$);
- const hasUserReacted = activeAccount?.pubkey
- ? reaction.pubkeys.includes(activeAccount.pubkey)
- : false;
-
+function ReactionBadge({
+ reaction,
+ hasUserReacted,
+}: {
+ reaction: ReactionSummary;
+ hasUserReacted: boolean;
+}) {
return (
-
+
{reaction.customEmoji ? (
) : (
-
- {reaction.emoji}
-
+ {reaction.emoji}
)}