diff --git a/lib/controllers/power_level_controller.dart b/lib/controllers/power_level_controller.dart index b165d9c..93e4ba3 100644 --- a/lib/controllers/power_level_controller.dart +++ b/lib/controllers/power_level_controller.dart @@ -13,6 +13,13 @@ class PowerLevelController extends Notifier { @override bool build() { + if (config case EventPowerLevelConfig(:final eventType)) { + assert( + eventType != EventType.redaction, + "Checking power level for a redaction should use [PowerLevelConfig.redaction].", + ); + } + final room = ref.watch(SelectedRoomController.provider); final event = room?.events.firstWhereOrNull( (event) => event.rowId == room.state[EventType.powerLevels.type]?[""], @@ -45,7 +52,7 @@ class PowerLevelController extends Notifier { StatePowerLevelConfig(:final eventType) => userLevel > (content.events[eventType.type] ?? content.stateDefault), - RedactPowerLevelConfig(:final targetUser) => + RedactionPowerLevelConfig(:final targetUser) => userLevel >= (targetUser == user ? (content.events[EventType.redaction.type] ?? diff --git a/lib/models/configs/power_level_config.dart b/lib/models/configs/power_level_config.dart index a4bb9c1..2ae7804 100644 --- a/lib/models/configs/power_level_config.dart +++ b/lib/models/configs/power_level_config.dart @@ -16,6 +16,6 @@ sealed class PowerLevelConfig with _$PowerLevelConfig { const factory PowerLevelConfig.state({required EventType eventType}) = StatePowerLevelConfig; - const factory PowerLevelConfig.redact({required String targetUser}) = - RedactPowerLevelConfig; + const factory PowerLevelConfig.redaction({required String targetUser}) = + RedactionPowerLevelConfig; } diff --git a/lib/widgets/chat_page/composer/relation_preview.dart b/lib/widgets/chat_page/composer/relation_preview.dart index d4d3649..5992bfc 100644 --- a/lib/widgets/chat_page/composer/relation_preview.dart +++ b/lib/widgets/chat_page/composer/relation_preview.dart @@ -53,14 +53,8 @@ class RelationPreview extends ConsumerWidget { ), ), Expanded( - child: Text(switch (relatedEvent?.content) { - - _ => "" - } - - relatedEvent?.metadata?["body"] ?? - relatedEvent?.metadata?["eventType"] ?? - "", + child: Text( + switch (relatedEvent?.content) {}, maxLines: 1, overflow: TextOverflow.ellipsis, softWrap: false, diff --git a/lib/widgets/chat_page/room_chat.dart b/lib/widgets/chat_page/room_chat.dart index 48d1784..e47fc46 100644 --- a/lib/widgets/chat_page/room_chat.dart +++ b/lib/widgets/chat_page/room_chat.dart @@ -168,7 +168,7 @@ class RoomChat extends HookConsumerWidget { ), if (ref.watch( PowerLevelController.provider( - PowerLevelConfig.redact(targetUser: message.authorId), + PowerLevelConfig.redaction(targetUser: message.authorId), ), )) PopupMenuItem(