From cd4dd42bc4c9225bbed2ea8714ae7490f88f0eb5 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 24 Apr 2026 15:14:08 +0000 Subject: [PATCH] fix(desktop): clip card ripples to card shape via Card(onClick = ...) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Material3 Card has a built-in onClick parameter that handles the ripple with proper rounded-corner clipping. Using Modifier.clickable on the Card's modifier bypasses that — the ripple renders as a rectangle and gets awkwardly cut off at the card corners. Converted to the onClick-parameter form on: - LongFormCard (Reads) - DraftCard (Drafts) - RelayMetricCard (Relay Dashboard / Monitor tab) NoteCard intentionally left unchanged: its inner clickable covers only the header+text region (not the action-buttons row), so a full-card onClick would conflict with the per-action handlers. https://claude.ai/code/session_01NufduPfZvYQVYwLkbCjCUo --- .../com/vitorpamplona/amethyst/desktop/ui/DraftsScreen.kt | 4 ++-- .../com/vitorpamplona/amethyst/desktop/ui/ReadsScreen.kt | 6 ++---- .../amethyst/desktop/ui/relay/RelayMetricCard.kt | 5 ++--- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/ui/DraftsScreen.kt b/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/ui/DraftsScreen.kt index 5668a93a6..d5d9c062f 100644 --- a/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/ui/DraftsScreen.kt +++ b/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/ui/DraftsScreen.kt @@ -20,7 +20,6 @@ */ package com.vitorpamplona.amethyst.desktop.ui -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues @@ -152,7 +151,8 @@ private fun DraftCard( onDelete: () -> Unit, ) { Card( - modifier = Modifier.fillMaxWidth().clickable(onClick = onClick), + onClick = onClick, + modifier = Modifier.fillMaxWidth(), colors = CardDefaults.cardColors( containerColor = MaterialTheme.colorScheme.surface, diff --git a/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/ui/ReadsScreen.kt b/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/ui/ReadsScreen.kt index 9b015f0b9..b286fc35e 100644 --- a/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/ui/ReadsScreen.kt +++ b/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/ui/ReadsScreen.kt @@ -98,10 +98,8 @@ fun LongFormCard( val publishedAt = event.publishedAt() ?: event.createdAt Card( - modifier = - Modifier - .fillMaxWidth() - .clickable(onClick = onClick), + onClick = onClick, + modifier = Modifier.fillMaxWidth(), colors = CardDefaults.cardColors( containerColor = MaterialTheme.colorScheme.surface, diff --git a/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/ui/relay/RelayMetricCard.kt b/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/ui/relay/RelayMetricCard.kt index 4ae586b88..072131bdd 100644 --- a/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/ui/relay/RelayMetricCard.kt +++ b/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/ui/relay/RelayMetricCard.kt @@ -21,7 +21,6 @@ package com.vitorpamplona.amethyst.desktop.ui.relay import androidx.compose.animation.AnimatedVisibility -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -63,9 +62,9 @@ fun RelayMetricCard( value = nip11Fetcher.fetch(status.url) } - Card(modifier = modifier.fillMaxWidth()) { + Card(onClick = onToggleExpand, modifier = modifier.fillMaxWidth()) { Column( - modifier = Modifier.clickable { onToggleExpand() }.padding(12.dp), + modifier = Modifier.padding(12.dp), ) { Row( modifier = Modifier.fillMaxWidth(),