From fa85e3222bf19fabde0ebdc51b6ad6e4c2e7416e Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Tue, 29 Sep 2026 20:56:03 -0400 Subject: [PATCH] feat(concord): show the community description to members MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The description (CORD-02 §6) only appeared in the admin Edit screen, so a member never saw what the community is about. It now heads the channel list. Co-Authored-By: Claude Opus 5.5 --- .../concord/ConcordChannelListScreen.kt | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/commonsUI/src/commonMain/kotlin/com/vitorpamplona/amethyst/commons/ui/screen/loggedIn/chats/publicChannels/concord/ConcordChannelListScreen.kt b/commonsUI/src/commonMain/kotlin/com/vitorpamplona/amethyst/commons/ui/screen/loggedIn/chats/publicChannels/concord/ConcordChannelListScreen.kt index 64d6723d32..053a008493 100644 --- a/commonsUI/src/commonMain/kotlin/com/vitorpamplona/amethyst/commons/ui/screen/loggedIn/chats/publicChannels/concord/ConcordChannelListScreen.kt +++ b/commonsUI/src/commonMain/kotlin/com/vitorpamplona/amethyst/commons/ui/screen/loggedIn/chats/publicChannels/concord/ConcordChannelListScreen.kt @@ -462,6 +462,26 @@ fun ConcordChannelListScreen( Modifier.fillMaxSize().padding(padding), contentPadding = PaddingValues(bottom = if (canManageChannels) FAB_CLEARANCE else 0.dp), ) { + // The community's description (CORD-02 §6). Only the Edit screen showed it, so a member + // never saw what the community is about. + state + ?.metadata + ?.description + ?.trim() + ?.takeIf { it.isNotEmpty() } + ?.let { description -> + item(key = "concord-community-description") { + Text( + description, + style = MaterialTheme.typography.bodyMedium, + color = MaterialTheme.colorScheme.onSurfaceVariant, + maxLines = 4, + overflow = TextOverflow.Ellipsis, + modifier = Modifier.fillMaxWidth().padding(horizontal = 16.dp, vertical = 10.dp), + ) + HorizontalDivider(thickness = 0.25.dp, color = MaterialTheme.colorScheme.outlineVariant) + } + } items(channels, key = { it.key }) { entry -> val def = entry.value.definition val name = def.name.ifBlank { entry.key }