refactor: drop editState from video/picture/file feed cards

These feed events (VideoEvent, PictureEvent, FileHeaderEvent) don't
support editing, so there's no editState to observe. Remove the
observeEdits calls and the editState parameter from UserCardHeader,
and make ReactionsRow's editState parameter nullable so these screens
can pass null.

https://claude.ai/code/session_01DrsvnguWHdZMgsRqNS8BUz
This commit is contained in:
Claude
2026-04-15 12:07:46 +00:00
parent 8a276d6f1d
commit 3147e39aa4
5 changed files with 12 additions and 22 deletions
@@ -197,7 +197,7 @@ fun ReactionsRow(
baseNote: Note, baseNote: Note,
showReactionDetail: Boolean, showReactionDetail: Boolean,
addPadding: Boolean, addPadding: Boolean,
editState: State<GenericLoadable<EditState>>, editState: State<GenericLoadable<EditState>>?,
accountViewModel: AccountViewModel, accountViewModel: AccountViewModel,
nav: INav, nav: INav,
) { ) {
@@ -219,7 +219,7 @@ private fun InnerReactionRow(
showReactionDetail: Boolean, showReactionDetail: Boolean,
addPadding: Boolean, addPadding: Boolean,
wantsToSeeReactions: MutableState<Boolean>, wantsToSeeReactions: MutableState<Boolean>,
editState: State<GenericLoadable<EditState>>, editState: State<GenericLoadable<EditState>>?,
accountViewModel: AccountViewModel, accountViewModel: AccountViewModel,
nav: INav, nav: INav,
) { ) {
@@ -666,7 +666,7 @@ private fun WatchZapAndRenderGallery(
@Composable @Composable
private fun BoostWithDialog( private fun BoostWithDialog(
baseNote: Note, baseNote: Note,
editState: State<GenericLoadable<EditState>>, editState: State<GenericLoadable<EditState>>?,
grayTint: Color, grayTint: Color,
accountViewModel: AccountViewModel, accountViewModel: AccountViewModel,
nav: INav, nav: INav,
@@ -682,7 +682,7 @@ private fun BoostWithDialog(
Route.NewShortNote( Route.NewShortNote(
quote = baseNote.idHex, quote = baseNote.idHex,
version = version =
(editState.value as? GenericLoadable.Loaded) (editState?.value as? GenericLoadable.Loaded)
?.loaded ?.loaded
?.modificationToShow ?.modificationToShow
?.value ?.value
@@ -704,7 +704,7 @@ private fun BoostWithDialog(
baseReplyTo = replyTo?.idHex, baseReplyTo = replyTo?.idHex,
fork = baseNote.idHex, fork = baseNote.idHex,
version = version =
(editState.value as? GenericLoadable.Loaded) (editState?.value as? GenericLoadable.Loaded)
?.loaded ?.loaded
?.modificationToShow ?.modificationToShow
?.value ?.value
@@ -45,7 +45,6 @@ import com.vitorpamplona.amethyst.ui.components.SensitivityWarning
import com.vitorpamplona.amethyst.ui.components.ZoomableContentView import com.vitorpamplona.amethyst.ui.components.ZoomableContentView
import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.navs.INav
import com.vitorpamplona.amethyst.ui.note.ReactionsRow import com.vitorpamplona.amethyst.ui.note.ReactionsRow
import com.vitorpamplona.amethyst.ui.note.observeEdits
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
import com.vitorpamplona.amethyst.ui.screen.loggedIn.video.UserCardHeader import com.vitorpamplona.amethyst.ui.screen.loggedIn.video.UserCardHeader
import com.vitorpamplona.quartz.nip68Picture.PictureEvent import com.vitorpamplona.quartz.nip68Picture.PictureEvent
@@ -59,13 +58,12 @@ fun PictureCardCompose(
) { ) {
val event = (baseNote.event as? PictureEvent) ?: return val event = (baseNote.event as? PictureEvent) ?: return
val backgroundColor = remember { mutableStateOf(Color.Transparent) } val backgroundColor = remember { mutableStateOf(Color.Transparent) }
val editState = observeEdits(baseNote = baseNote, accountViewModel = accountViewModel)
Column( Column(
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
) { ) {
// Author header row // Author header row
UserCardHeader(baseNote, accountViewModel, nav, editState) UserCardHeader(baseNote, accountViewModel, nav)
// Image content // Image content
PictureCardImage(baseNote, event, backgroundColor, accountViewModel) PictureCardImage(baseNote, event, backgroundColor, accountViewModel)
@@ -75,7 +73,7 @@ fun PictureCardCompose(
baseNote = baseNote, baseNote = baseNote,
showReactionDetail = true, showReactionDetail = true,
addPadding = true, addPadding = true,
editState = editState, editState = null,
accountViewModel = accountViewModel, accountViewModel = accountViewModel,
nav = nav, nav = nav,
) )
@@ -47,7 +47,6 @@ import com.vitorpamplona.amethyst.ui.components.SensitivityWarning
import com.vitorpamplona.amethyst.ui.components.ZoomableContentView import com.vitorpamplona.amethyst.ui.components.ZoomableContentView
import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.navs.INav
import com.vitorpamplona.amethyst.ui.note.ReactionsRow import com.vitorpamplona.amethyst.ui.note.ReactionsRow
import com.vitorpamplona.amethyst.ui.note.observeEdits
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
import com.vitorpamplona.amethyst.ui.screen.loggedIn.video.UserCardHeader import com.vitorpamplona.amethyst.ui.screen.loggedIn.video.UserCardHeader
import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.core.Event
@@ -63,13 +62,12 @@ fun VideoCardCompose(
) { ) {
val event = (baseNote.event as? VideoEvent) ?: return val event = (baseNote.event as? VideoEvent) ?: return
val backgroundColor = remember { mutableStateOf(Color.Transparent) } val backgroundColor = remember { mutableStateOf(Color.Transparent) }
val editState = observeEdits(baseNote = baseNote, accountViewModel = accountViewModel)
Column( Column(
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
) { ) {
// Author header row // Author header row
UserCardHeader(baseNote, accountViewModel, nav, editState) UserCardHeader(baseNote, accountViewModel, nav)
// Image content // Image content
VideoCardImage(baseNote, event, backgroundColor, accountViewModel) VideoCardImage(baseNote, event, backgroundColor, accountViewModel)
@@ -79,7 +77,7 @@ fun VideoCardCompose(
baseNote = baseNote, baseNote = baseNote,
showReactionDetail = true, showReactionDetail = true,
addPadding = true, addPadding = true,
editState = editState, editState = null,
accountViewModel = accountViewModel, accountViewModel = accountViewModel,
nav = nav, nav = nav,
) )
@@ -47,7 +47,6 @@ import com.vitorpamplona.amethyst.ui.components.SensitivityWarning
import com.vitorpamplona.amethyst.ui.components.ZoomableContentView import com.vitorpamplona.amethyst.ui.components.ZoomableContentView
import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.navs.INav
import com.vitorpamplona.amethyst.ui.note.ReactionsRow import com.vitorpamplona.amethyst.ui.note.ReactionsRow
import com.vitorpamplona.amethyst.ui.note.observeEdits
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip31Alts.alt import com.vitorpamplona.quartz.nip31Alts.alt
@@ -62,13 +61,12 @@ fun FileHeaderCardCompose(
) { ) {
val event = (baseNote.event as? FileHeaderEvent) ?: return val event = (baseNote.event as? FileHeaderEvent) ?: return
val backgroundColor = remember { mutableStateOf(Color.Transparent) } val backgroundColor = remember { mutableStateOf(Color.Transparent) }
val editState = observeEdits(baseNote = baseNote, accountViewModel = accountViewModel)
Column( Column(
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
) { ) {
// Author header row // Author header row
UserCardHeader(baseNote, accountViewModel, nav, editState) UserCardHeader(baseNote, accountViewModel, nav)
// Image content // Image content
FileHeaderCardImage(baseNote, event, backgroundColor, accountViewModel) FileHeaderCardImage(baseNote, event, backgroundColor, accountViewModel)
@@ -78,7 +76,7 @@ fun FileHeaderCardCompose(
baseNote = baseNote, baseNote = baseNote,
showReactionDetail = true, showReactionDetail = true,
addPadding = true, addPadding = true,
editState = editState, editState = null,
accountViewModel = accountViewModel, accountViewModel = accountViewModel,
nav = nav, nav = nav,
) )
@@ -27,19 +27,16 @@ import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.State
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import com.vitorpamplona.amethyst.model.Note import com.vitorpamplona.amethyst.model.Note
import com.vitorpamplona.amethyst.ui.components.GenericLoadable
import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.navs.INav
import com.vitorpamplona.amethyst.ui.navigation.routes.routeFor import com.vitorpamplona.amethyst.ui.navigation.routes.routeFor
import com.vitorpamplona.amethyst.ui.note.NoteAuthorPicture import com.vitorpamplona.amethyst.ui.note.NoteAuthorPicture
import com.vitorpamplona.amethyst.ui.note.NoteUsernameDisplay import com.vitorpamplona.amethyst.ui.note.NoteUsernameDisplay
import com.vitorpamplona.amethyst.ui.note.elements.MoreOptionsButton import com.vitorpamplona.amethyst.ui.note.elements.MoreOptionsButton
import com.vitorpamplona.amethyst.ui.note.elements.TimeAgo import com.vitorpamplona.amethyst.ui.note.elements.TimeAgo
import com.vitorpamplona.amethyst.ui.note.types.EditState
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
import com.vitorpamplona.amethyst.ui.theme.Size35dp import com.vitorpamplona.amethyst.ui.theme.Size35dp
@@ -48,7 +45,6 @@ fun UserCardHeader(
baseNote: Note, baseNote: Note,
accountViewModel: AccountViewModel, accountViewModel: AccountViewModel,
nav: INav, nav: INav,
editState: State<GenericLoadable<EditState>>? = null,
) { ) {
Row( Row(
modifier = modifier =
@@ -82,7 +78,7 @@ fun UserCardHeader(
MoreOptionsButton( MoreOptionsButton(
baseNote = baseNote, baseNote = baseNote,
editState = editState, editState = null,
accountViewModel = accountViewModel, accountViewModel = accountViewModel,
nav = nav, nav = nav,
) )