diff --git a/shared/src/commonMain/kotlin/su/reya/coop/Extensions.kt b/shared/src/commonMain/kotlin/su/reya/coop/Extensions.kt index 4850b96..5d5151e 100644 --- a/shared/src/commonMain/kotlin/su/reya/coop/Extensions.kt +++ b/shared/src/commonMain/kotlin/su/reya/coop/Extensions.kt @@ -20,3 +20,7 @@ fun String.isImageUrl(): Boolean { val extension = this.substringAfterLast('.', "").lowercase() return extension in imageExtensions } + +fun String.sanitizeName(): String { + return this.replace("\n", " ").replace("\r", " ").trim() +} diff --git a/shared/src/commonMain/kotlin/su/reya/coop/Profile.kt b/shared/src/commonMain/kotlin/su/reya/coop/Profile.kt index 8b40cd1..9dde03c 100644 --- a/shared/src/commonMain/kotlin/su/reya/coop/Profile.kt +++ b/shared/src/commonMain/kotlin/su/reya/coop/Profile.kt @@ -10,8 +10,8 @@ data class Profile( private val record by lazy { metadata.asRecord() } val name: String - get() = record.displayName ?: record.name ?: publicKey.short() - + get() = record.displayName?.sanitizeName() ?: record.name ?: publicKey.short() + val picture: String? get() = record.picture diff --git a/shared/src/commonMain/kotlin/su/reya/coop/Room.kt b/shared/src/commonMain/kotlin/su/reya/coop/Room.kt index 5b7d8eb..e61a691 100644 --- a/shared/src/commonMain/kotlin/su/reya/coop/Room.kt +++ b/shared/src/commonMain/kotlin/su/reya/coop/Room.kt @@ -99,11 +99,13 @@ fun Room.uiStateFlow( val displayMembers = if (isGroup()) members.take(2) else members.take(1) if (!subject.isNullOrBlank()) { - return flowOf(RoomUiState(name = subject, isGroup = isGroup())) + return flowOf(RoomUiState(name = subject.sanitizeName(), isGroup = isGroup())) } return combine(displayMembers.map { nostrViewModel.getMetadata(it) }) { profiles -> - val names = profiles.mapIndexed { i, profile -> profile?.name ?: displayMembers[i].short() } + val names = profiles.mapIndexed { i, profile -> + profile?.name?.sanitizeName() ?: displayMembers[i].short() + } val name = when { isGroup() -> {