mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2025-09-27 20:46:32 +02:00
removes derived states and some remember functions for performance.
This commit is contained in:
@@ -31,7 +31,7 @@ import com.vitorpamplona.quartz.events.ReportEvent
|
|||||||
import com.vitorpamplona.quartz.events.StatusEvent
|
import com.vitorpamplona.quartz.events.StatusEvent
|
||||||
|
|
||||||
object NostrSingleUserDataSource : NostrDataSource("SingleUserFeed") {
|
object NostrSingleUserDataSource : NostrDataSource("SingleUserFeed") {
|
||||||
var usersToWatch = setOf<User>()
|
private var usersToWatch = setOf<User>()
|
||||||
|
|
||||||
fun createUserMetadataFilter(): List<TypedFilter>? {
|
fun createUserMetadataFilter(): List<TypedFilter>? {
|
||||||
if (usersToWatch.isEmpty()) return null
|
if (usersToWatch.isEmpty()) return null
|
||||||
@@ -83,8 +83,7 @@ object NostrSingleUserDataSource : NostrDataSource("SingleUserFeed") {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
}
|
}.flatten()
|
||||||
.flatten()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val userChannel =
|
val userChannel =
|
||||||
@@ -110,8 +109,7 @@ object NostrSingleUserDataSource : NostrDataSource("SingleUserFeed") {
|
|||||||
listOfNotNull(
|
listOfNotNull(
|
||||||
createUserMetadataFilter(),
|
createUserMetadataFilter(),
|
||||||
createUserMetadataStatusReportFilter(),
|
createUserMetadataStatusReportFilter(),
|
||||||
)
|
).flatten()
|
||||||
.flatten()
|
|
||||||
.ifEmpty { null }
|
.ifEmpty { null }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -35,7 +35,6 @@ import androidx.compose.material3.NavigationBarItem
|
|||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.DisposableEffect
|
import androidx.compose.runtime.DisposableEffect
|
||||||
import androidx.compose.runtime.State
|
import androidx.compose.runtime.State
|
||||||
import androidx.compose.runtime.derivedStateOf
|
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
@@ -146,12 +145,16 @@ private fun RowScope.HasNewItemsIcon(
|
|||||||
navEntryState: State<NavBackStackEntry?>,
|
navEntryState: State<NavBackStackEntry?>,
|
||||||
nav: (Route, Boolean) -> Unit,
|
nav: (Route, Boolean) -> Unit,
|
||||||
) {
|
) {
|
||||||
val selected by
|
val selected =
|
||||||
remember(navEntryState.value) {
|
(
|
||||||
derivedStateOf { navEntryState.value?.destination?.route?.substringBefore("?") == route.base }
|
navEntryState.value
|
||||||
}
|
?.destination
|
||||||
|
?.route
|
||||||
|
?.indexOf(route.base) ?: -1
|
||||||
|
) > -1
|
||||||
|
|
||||||
NavigationBarItem(
|
NavigationBarItem(
|
||||||
|
alwaysShowLabel = false,
|
||||||
icon = {
|
icon = {
|
||||||
NotifiableIcon(
|
NotifiableIcon(
|
||||||
selected,
|
selected,
|
||||||
|
@@ -47,7 +47,6 @@ import androidx.compose.material3.TextFieldDefaults
|
|||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
import androidx.compose.runtime.MutableState
|
import androidx.compose.runtime.MutableState
|
||||||
import androidx.compose.runtime.derivedStateOf
|
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
@@ -405,11 +404,9 @@ private fun FullBleedNoteCompose(
|
|||||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||||
NoteUsernameDisplay(baseNote, Modifier.weight(1f))
|
NoteUsernameDisplay(baseNote, Modifier.weight(1f))
|
||||||
|
|
||||||
val isCommunityPost by
|
val isCommunityPost =
|
||||||
remember(baseNote) {
|
remember(baseNote) {
|
||||||
derivedStateOf {
|
baseNote.event?.isTaggedAddressableKind(CommunityDefinitionEvent.KIND) == true
|
||||||
baseNote.event?.isTaggedAddressableKind(CommunityDefinitionEvent.KIND) == true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isCommunityPost) {
|
if (isCommunityPost) {
|
||||||
|
@@ -143,7 +143,7 @@ open class Event(
|
|||||||
|
|
||||||
override fun isSensitive() =
|
override fun isSensitive() =
|
||||||
tags.any {
|
tags.any {
|
||||||
(it.size > 0 && it[0].equals("content-warning")) ||
|
(it.size > 0 && it[0] == "content-warning") ||
|
||||||
(it.size > 1 && it[0] == "t" && (it[1].equals("nsfw", true) || it[1].equals("nude", true)))
|
(it.size > 1 && it[0] == "t" && (it[1].equals("nsfw", true) || it[1].equals("nude", true)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user