Post reactions

This commit is contained in:
2025-05-05 13:13:42 +08:00
parent db7fef4a72
commit e4e562918c
21 changed files with 1054 additions and 919 deletions

View File

@ -14,7 +14,7 @@ abstract class SnPost with _$SnPost {
required DateTime? editedAt,
required DateTime publishedAt,
required int visibility,
required List<dynamic>? content,
required String? content,
required int type,
required Map<String, dynamic>? meta,
required int viewsUnique,
@ -29,6 +29,7 @@ abstract class SnPost with _$SnPost {
required dynamic forwardedPost,
required List<SnCloudFile> attachments,
required SnPublisher publisher,
@Default({}) Map<String, int> reactionsCount,
required List<dynamic> reactions,
required List<dynamic> tags,
required List<dynamic> categories,
@ -62,3 +63,23 @@ abstract class SnPublisher with _$SnPublisher {
factory SnPublisher.fromJson(Map<String, dynamic> json) =>
_$SnPublisherFromJson(json);
}
@freezed
abstract class ReactInfo with _$ReactInfo {
const factory ReactInfo({required String icon, required int attitude}) =
_ReactInfo;
}
const Map<String, ReactInfo> kReactionTemplates = {
'thumb_up': ReactInfo(icon: '👍', attitude: 0),
'thumb_down': ReactInfo(icon: '👎', attitude: 2),
'just_okay': ReactInfo(icon: '😅', attitude: 1),
'cry': ReactInfo(icon: '😭', attitude: 1),
'confuse': ReactInfo(icon: '🧐', attitude: 1),
'clap': ReactInfo(icon: '👏', attitude: 0),
'laugh': ReactInfo(icon: '😂', attitude: 0),
'angry': ReactInfo(icon: '😡', attitude: 2),
'party': ReactInfo(icon: '🎉', attitude: 0),
'pray': ReactInfo(icon: '🙏', attitude: 0),
'heart': ReactInfo(icon: '❤️', attitude: 0),
};