diff --git a/lib/src/core/moderation/moderated_content.dart b/lib/src/core/moderation/moderated_content.dart index 404c5d16..e0f399c4 100644 --- a/lib/src/core/moderation/moderated_content.dart +++ b/lib/src/core/moderation/moderated_content.dart @@ -443,6 +443,10 @@ class _ModerationDetailsState extends State<_ModerationDetails> { Builder( builder: (context) { final strings = cause.localizedStrings(l10n); + final source = switch (cause.sourceHandle) { + final handle? => '@$handle', + null => cause.sourceDid, + }; return Card( child: Padding( padding: const EdgeInsets.all(16), @@ -458,9 +462,7 @@ class _ModerationDetailsState extends State<_ModerationDetails> { Text(description), ], const SizedBox(height: 8), - SelectableText( - '${l10n.moderationAppliedBy}: ${cause.sourceDid}', - ), + SelectableText('${l10n.moderationAppliedBy}: $source'), if (cause.label.exp case final expires?) Text( '${l10n.moderationExpires}: ${expires.toLocal()}', diff --git a/lib/src/core/moderation/moderation_engine.dart b/lib/src/core/moderation/moderation_engine.dart index b18715d9..0530dd69 100644 --- a/lib/src/core/moderation/moderation_engine.dart +++ b/lib/src/core/moderation/moderation_engine.dart @@ -3,17 +3,19 @@ import 'package:spark/src/core/moderation/moderation_definitions.dart'; import 'package:spark/src/core/moderation/moderation_models.dart'; final class ModerationEngine { - const ModerationEngine({ + ModerationEngine({ required this.definitions, required this.preferences, this.currentUserDid, this.selfLabelerDid, - }); + Map labelerHandles = const {}, + }) : _labelerHandles = Map.unmodifiable(labelerHandles); final ModerationLabelDefinitions definitions; final ModerationPreferences preferences; final String? currentUserDid; final String? selfLabelerDid; + final Map _labelerHandles; ModerationDecision evaluate( Iterable