perf: use drawBehind for background color to avoid recomposition
Replace background(backgroundColor.value) with drawBehind { drawRect() }
so the color state is read during the draw phase, not composition.
This prevents NoteComposeLayout from recomposing when the "new item"
background color changes after 5 seconds.
https://claude.ai/code/session_01Fam5VHNaNkKBBafg1gRfFS
This commit is contained in:
@@ -51,6 +51,7 @@ import androidx.compose.runtime.remember
|
|||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Alignment.Companion.CenterVertically
|
import androidx.compose.ui.Alignment.Companion.CenterVertically
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.draw.drawBehind
|
||||||
import androidx.compose.ui.graphics.Brush
|
import androidx.compose.ui.graphics.Brush
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.graphics.compositeOver
|
import androidx.compose.ui.graphics.compositeOver
|
||||||
@@ -638,7 +639,10 @@ fun InnerNoteWithReactions(
|
|||||||
val showSecondRow = isNotRepost && notBoostedNorQuote && accountViewModel.settings.isCompleteUIMode()
|
val showSecondRow = isNotRepost && notBoostedNorQuote && accountViewModel.settings.isCompleteUIMode()
|
||||||
|
|
||||||
NoteComposeLayout(
|
NoteComposeLayout(
|
||||||
modifier = clickModifier.background(backgroundColor.value).fillMaxWidth(),
|
modifier =
|
||||||
|
clickModifier
|
||||||
|
.drawBehind { drawRect(backgroundColor.value) }
|
||||||
|
.fillMaxWidth(),
|
||||||
addPadding = !isBoostedNote,
|
addPadding = !isBoostedNote,
|
||||||
showAuthorColumn = notBoostedNorQuote,
|
showAuthorColumn = notBoostedNorQuote,
|
||||||
showSecondRow = showSecondRow,
|
showSecondRow = showSecondRow,
|
||||||
|
|||||||
Reference in New Issue
Block a user