Skip to content

Commit 1bd9335

Browse files
committed
Filter count 0 reactions from FlyerChatReactionsRow
1 parent 756c26a commit 1bd9335

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

packages/flyer_chat_reactions/lib/src/widgets/flyer_chat_reactions_row.dart

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,8 @@ class _FlyerChatReactionsRowState extends State<FlyerChatReactionsRow> {
132132

133133
@override
134134
Widget build(BuildContext context) {
135-
if (widget.reactions.isEmpty) {
135+
final validReactions = widget.reactions.where((r) => r.count > 0).toList();
136+
if (validReactions.isEmpty) {
136137
return const SizedBox.shrink();
137138
}
138139
final theme = context.read<ChatTheme>();
@@ -165,14 +166,14 @@ class _FlyerChatReactionsRowState extends State<FlyerChatReactionsRow> {
165166

166167
final stackWidth = constraints.maxWidth;
167168
var maxCapacity = calculateSizesAndMaxCapacity(
168-
reactions: widget.reactions,
169+
reactions: validReactions,
169170
stackWidth: stackWidth,
170171
emojiTextStyle: emojiTextStyle,
171172
countTextStyle: countTextStyle,
172173
extraTextStyle: extraTextStyle,
173174
);
174175
var visibleItemsCount = reactionsSizes.length;
175-
var hiddenCount = widget.reactions.length - maxCapacity;
176+
var hiddenCount = validReactions.length - maxCapacity;
176177
final souldDisplaySurplus = hiddenCount > 0;
177178

178179
Size? surplusWidgetSize;
@@ -184,37 +185,37 @@ class _FlyerChatReactionsRowState extends State<FlyerChatReactionsRow> {
184185
extraText: '+$hiddenCount',
185186
);
186187
maxCapacity = calculateSizesAndMaxCapacity(
187-
reactions: widget.reactions,
188+
reactions: validReactions,
188189
stackWidth: stackWidth - surplusWidgetSize.width - widget.spacing,
189190
emojiTextStyle: emojiTextStyle,
190191
countTextStyle: countTextStyle,
191192
extraTextStyle: extraTextStyle,
192193
);
193194

194195
visibleItemsCount = reactionsSizes.length;
195-
hiddenCount = widget.reactions.length - visibleItemsCount;
196+
hiddenCount = validReactions.length - visibleItemsCount;
196197
}
197198

198199
final children = <Widget>[];
199200

200201
for (var i = 0; i < visibleItemsCount; i++) {
201202
children.add(
202203
ReactionTile(
203-
key: ValueKey(widget.reactions[i].emoji),
204+
key: ValueKey(validReactions[i].emoji),
204205
width: reactionsSizes[i].width,
205-
emoji: widget.reactions[i].emoji,
206-
count: widget.reactions[i].count,
206+
emoji: validReactions[i].emoji,
207+
count: validReactions[i].count,
207208
countTextStyle: countTextStyle,
208209
emojiTextStyle: emojiTextStyle,
209210
borderColor: theme.reactionBorderColor,
210211
backgroundColor: backgroundColor,
211212
reactedBackgroundColor: reactedBackgroundColor,
212-
reactedByUser: widget.reactions[i].isReactedByUser,
213+
reactedByUser: validReactions[i].isReactedByUser,
213214
onTap: () {
214-
widget.onReactionTap?.call(widget.reactions[i].emoji);
215+
widget.onReactionTap?.call(validReactions[i].emoji);
215216
},
216217
onLongPress: () {
217-
widget.onReactionLongPress?.call(widget.reactions[i].emoji);
218+
widget.onReactionLongPress?.call(validReactions[i].emoji);
218219
},
219220
removeOrAddLocallyOnTap: widget.removeOrAddLocallyOnTap,
220221
),

0 commit comments

Comments
 (0)