небольшие изменения

This commit is contained in:
Jganenokk
2026-07-05 19:07:27 +07:00
parent 26f0094705
commit 9f9b0e0734
214 changed files with 27592 additions and 15353 deletions
+45
View File
@@ -0,0 +1,45 @@
class ReactionCounter {
final String reaction;
final int count;
const ReactionCounter({required this.reaction, required this.count});
}
class ReactionInfo {
final List<ReactionCounter> counters;
final String? yourReaction;
final int totalCount;
const ReactionInfo({
this.counters = const [],
this.yourReaction,
this.totalCount = 0,
});
static ReactionInfo? fromMap(Map? map) {
if (map == null) return null;
final rawCounters = map['counters'];
if (rawCounters is! List || rawCounters.isEmpty) return null;
final counters = <ReactionCounter>[];
for (final c in rawCounters) {
if (c is! Map) continue;
final reaction = c['reaction']?.toString();
if (reaction == null || reaction.isEmpty) continue;
final rawCount = c['count'];
counters.add(
ReactionCounter(
reaction: reaction,
count: rawCount is int ? rawCount : 0,
),
);
}
if (counters.isEmpty) return null;
final total = map['totalCount'];
return ReactionInfo(
counters: counters,
yourReaction: map['yourReaction']?.toString(),
totalCount: total is int ? total : 0,
);
}
bool get isEmpty => counters.isEmpty;
}