mirror of
https://github.com/LiveFastEatTrashRaccoon/RaccoonForLemmy.git
synced 2025-02-08 18:58:42 +01:00
refactor: modifiers (#414)
* refactor: remove Modifier.let calls * refactor: remove composed modifier factory
This commit is contained in:
parent
474b688dcc
commit
3caaac0b9d
@ -50,17 +50,19 @@ fun InboxCard(
|
||||
onOptionSelected: ((OptionId) -> Unit)? = null,
|
||||
) {
|
||||
Box(
|
||||
modifier = Modifier.let {
|
||||
modifier = Modifier.then(
|
||||
if (postLayout == PostLayout.Card) {
|
||||
it.padding(horizontal = Spacing.xs)
|
||||
Modifier
|
||||
.padding(horizontal = Spacing.xs)
|
||||
.background(
|
||||
color = MaterialTheme.colorScheme.surfaceColorAtElevation(5.dp),
|
||||
shape = RoundedCornerShape(CornerSize.l),
|
||||
).padding(Spacing.s)
|
||||
)
|
||||
.padding(Spacing.s)
|
||||
} else {
|
||||
it.background(MaterialTheme.colorScheme.background)
|
||||
Modifier.background(MaterialTheme.colorScheme.background)
|
||||
}
|
||||
}.onClick(
|
||||
).onClick(
|
||||
onClick = rememberCallback {
|
||||
onOpenPost(mention.post)
|
||||
},
|
||||
|
@ -25,16 +25,19 @@ fun InboxCardPlaceholder(
|
||||
postLayout: PostLayout = PostLayout.Card,
|
||||
) {
|
||||
Column(
|
||||
modifier = Modifier.let {
|
||||
modifier = Modifier.then(
|
||||
if (postLayout == PostLayout.Card) {
|
||||
it.padding(horizontal = Spacing.xs).background(
|
||||
color = MaterialTheme.colorScheme.surfaceColorAtElevation(5.dp),
|
||||
shape = RoundedCornerShape(CornerSize.l),
|
||||
).padding(Spacing.s)
|
||||
Modifier
|
||||
.padding(horizontal = Spacing.xs)
|
||||
.background(
|
||||
color = MaterialTheme.colorScheme.surfaceColorAtElevation(5.dp),
|
||||
shape = RoundedCornerShape(CornerSize.l),
|
||||
)
|
||||
.padding(Spacing.s)
|
||||
} else {
|
||||
it
|
||||
Modifier
|
||||
}
|
||||
},
|
||||
),
|
||||
verticalArrangement = Arrangement.spacedBy(Spacing.xs),
|
||||
) {
|
||||
Box(
|
||||
|
@ -3,27 +3,26 @@ package com.github.diegoberaldin.raccoonforlemmy.core.utils.compose
|
||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
||||
import androidx.compose.foundation.combinedClickable
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.composed
|
||||
|
||||
@OptIn(ExperimentalFoundationApi::class)
|
||||
@Composable
|
||||
fun Modifier.onClick(
|
||||
onClick: () -> Unit = {},
|
||||
onDoubleClick: () -> Unit = {},
|
||||
onLongClick: () -> Unit = {},
|
||||
): Modifier = composed {
|
||||
combinedClickable(
|
||||
indication = null,
|
||||
interactionSource = remember { MutableInteractionSource() },
|
||||
onClick = rememberCallback {
|
||||
onClick()
|
||||
},
|
||||
onDoubleClick = rememberCallback {
|
||||
onDoubleClick()
|
||||
},
|
||||
onLongClick = rememberCallback {
|
||||
onLongClick()
|
||||
}
|
||||
)
|
||||
}
|
||||
): Modifier = combinedClickable(
|
||||
indication = null,
|
||||
interactionSource = remember { MutableInteractionSource() },
|
||||
onClick = rememberCallback {
|
||||
onClick()
|
||||
},
|
||||
onDoubleClick = rememberCallback {
|
||||
onDoubleClick()
|
||||
},
|
||||
onLongClick = rememberCallback {
|
||||
onLongClick()
|
||||
}
|
||||
)
|
@ -6,21 +6,22 @@ import androidx.compose.animation.core.rememberInfiniteTransition
|
||||
import androidx.compose.animation.core.tween
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.composed
|
||||
import androidx.compose.ui.draw.alpha
|
||||
import androidx.compose.ui.geometry.Offset
|
||||
import androidx.compose.ui.graphics.Brush
|
||||
import androidx.compose.ui.layout.onGloballyPositioned
|
||||
import androidx.compose.ui.unit.IntSize
|
||||
|
||||
@Composable
|
||||
fun Modifier.shimmerEffect(
|
||||
duration: Int = 1000,
|
||||
): Modifier = composed {
|
||||
): Modifier {
|
||||
val c1 = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.1f)
|
||||
val c2 = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.3f)
|
||||
val colors = listOf(c1, c2, c1)
|
||||
@ -36,7 +37,7 @@ fun Modifier.shimmerEffect(
|
||||
)
|
||||
)
|
||||
|
||||
background(
|
||||
return this then background(
|
||||
brush = Brush.linearGradient(
|
||||
colors = colors,
|
||||
start = Offset(startOffsetX, 0f),
|
||||
|
@ -153,13 +153,13 @@ object InboxScreen : Tab {
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.padding(paddingValues)
|
||||
.let {
|
||||
.then(
|
||||
if (settings.hideNavigationBarWhileScrolling) {
|
||||
it.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
Modifier.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
} else {
|
||||
it
|
||||
Modifier
|
||||
}
|
||||
},
|
||||
),
|
||||
verticalArrangement = Arrangement.spacedBy(Spacing.s),
|
||||
) {
|
||||
SectionSelector(
|
||||
|
@ -149,17 +149,17 @@ internal object ProfileMainScreen : Tab {
|
||||
},
|
||||
)
|
||||
},
|
||||
) { paddinValues ->
|
||||
) { paddingValues ->
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.padding(paddinValues)
|
||||
.let {
|
||||
.padding(paddingValues)
|
||||
.then(
|
||||
if (settings.hideNavigationBarWhileScrolling) {
|
||||
it.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
Modifier.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
} else {
|
||||
it
|
||||
Modifier
|
||||
}
|
||||
},
|
||||
),
|
||||
contentAlignment = Alignment.Center,
|
||||
) {
|
||||
// wait until logging status is determined
|
||||
|
@ -275,13 +275,13 @@ class ExploreScreen : Screen {
|
||||
{ model.reduce(ExploreMviModel.Intent.Refresh) },
|
||||
)
|
||||
Box(
|
||||
modifier = Modifier.padding(Spacing.xxs).let {
|
||||
modifier = Modifier.padding(Spacing.xxs).then(
|
||||
if (settings.hideNavigationBarWhileScrolling) {
|
||||
it.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
Modifier.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
} else {
|
||||
it
|
||||
Modifier
|
||||
}
|
||||
}.nestedScroll(keyboardScrollConnection).pullRefresh(pullRefreshState),
|
||||
).nestedScroll(keyboardScrollConnection).pullRefresh(pullRefreshState),
|
||||
) {
|
||||
LazyColumn(
|
||||
state = lazyListState,
|
||||
|
@ -185,13 +185,13 @@ class AccountSettingsScreen : Screen {
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.padding(paddingValues)
|
||||
.let {
|
||||
.then(
|
||||
if (settings.hideNavigationBarWhileScrolling) {
|
||||
it.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
Modifier.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
} else {
|
||||
it
|
||||
Modifier
|
||||
}
|
||||
},
|
||||
)
|
||||
) {
|
||||
Column(
|
||||
modifier = Modifier.fillMaxSize().verticalScroll(scrollState),
|
||||
|
@ -67,13 +67,13 @@ internal fun MessageCard(
|
||||
|
||||
Box {
|
||||
Canvas(
|
||||
modifier = Modifier.size(mediumDistance).let {
|
||||
modifier = Modifier.size(mediumDistance).then(
|
||||
if (isMyMessage) {
|
||||
it.align(Alignment.TopEnd)
|
||||
Modifier.align(Alignment.TopEnd)
|
||||
} else {
|
||||
it.align(Alignment.TopStart)
|
||||
Modifier.align(Alignment.TopStart)
|
||||
}
|
||||
}
|
||||
)
|
||||
) {
|
||||
if (isMyMessage) {
|
||||
val path = Path().apply {
|
||||
@ -94,13 +94,13 @@ internal fun MessageCard(
|
||||
}
|
||||
}
|
||||
Box(
|
||||
modifier = Modifier.let {
|
||||
modifier = Modifier.then(
|
||||
if (isMyMessage) {
|
||||
it.padding(start = longDistance, end = mediumDistance)
|
||||
Modifier.padding(start = longDistance, end = mediumDistance)
|
||||
} else {
|
||||
it.padding(end = longDistance, start = mediumDistance)
|
||||
Modifier.padding(end = longDistance, start = mediumDistance)
|
||||
}
|
||||
}.background(
|
||||
).background(
|
||||
color = color, shape = RoundedCornerShape(
|
||||
topStart = if (isMyMessage) CornerSize.m else 0.dp,
|
||||
topEnd = if (isMyMessage) 0.dp else CornerSize.m,
|
||||
|
@ -497,13 +497,13 @@ class CommunityDetailScreen(
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.padding(padding)
|
||||
.let {
|
||||
.then(
|
||||
if (settings.hideNavigationBarWhileScrolling) {
|
||||
it.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
Modifier.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
} else {
|
||||
it
|
||||
Modifier
|
||||
}
|
||||
}
|
||||
)
|
||||
.nestedScroll(fabNestedScrollConnection)
|
||||
.pullRefresh(pullRefreshState),
|
||||
) {
|
||||
|
@ -159,13 +159,13 @@ class InstanceInfoScreen(
|
||||
)
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.let {
|
||||
.then(
|
||||
if (settings.hideNavigationBarWhileScrolling) {
|
||||
it.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
Modifier.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
} else {
|
||||
it
|
||||
Modifier
|
||||
}
|
||||
}
|
||||
)
|
||||
.padding(paddingValues)
|
||||
.pullRefresh(pullRefreshState),
|
||||
) {
|
||||
|
@ -113,13 +113,15 @@ class ManageBanScreen : Screen {
|
||||
},
|
||||
)
|
||||
Column(
|
||||
modifier = Modifier.padding(paddingValues).let {
|
||||
if (settings.hideNavigationBarWhileScrolling) {
|
||||
it.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
} else {
|
||||
it
|
||||
}
|
||||
},
|
||||
modifier = Modifier
|
||||
.padding(paddingValues)
|
||||
.then(
|
||||
if (settings.hideNavigationBarWhileScrolling) {
|
||||
Modifier.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
} else {
|
||||
Modifier
|
||||
}
|
||||
),
|
||||
verticalArrangement = Arrangement.spacedBy(Spacing.s),
|
||||
) {
|
||||
SectionSelector(
|
||||
@ -146,13 +148,14 @@ class ManageBanScreen : Screen {
|
||||
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.let {
|
||||
.then(
|
||||
if (settings.hideNavigationBarWhileScrolling) {
|
||||
it.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
Modifier.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
} else {
|
||||
it
|
||||
Modifier
|
||||
}
|
||||
}.pullRefresh(pullRefreshState),
|
||||
)
|
||||
.pullRefresh(pullRefreshState),
|
||||
) {
|
||||
LazyColumn(
|
||||
state = lazyListState,
|
||||
|
@ -145,13 +145,13 @@ class ManageSubscriptionsScreen : Screen {
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.padding(paddingValues)
|
||||
.let {
|
||||
.then(
|
||||
if (settings.hideNavigationBarWhileScrolling) {
|
||||
it.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
Modifier.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
} else {
|
||||
it
|
||||
Modifier
|
||||
}
|
||||
}
|
||||
)
|
||||
.nestedScroll(fabNestedScrollConnection)
|
||||
.pullRefresh(pullRefreshState),
|
||||
) {
|
||||
|
@ -124,24 +124,26 @@ class ModlogScreen(
|
||||
},
|
||||
) { paddingValues ->
|
||||
Column(
|
||||
modifier = Modifier.padding(paddingValues).let {
|
||||
if (settings.hideNavigationBarWhileScrolling) {
|
||||
it.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
} else {
|
||||
it
|
||||
}
|
||||
},
|
||||
modifier = Modifier
|
||||
.padding(paddingValues)
|
||||
.then(
|
||||
if (settings.hideNavigationBarWhileScrolling) {
|
||||
Modifier.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
} else {
|
||||
Modifier
|
||||
}
|
||||
),
|
||||
verticalArrangement = Arrangement.spacedBy(Spacing.s),
|
||||
) {
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.let {
|
||||
.then(
|
||||
if (settings.hideNavigationBarWhileScrolling) {
|
||||
it.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
Modifier.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
} else {
|
||||
it
|
||||
Modifier
|
||||
}
|
||||
}
|
||||
)
|
||||
.pullRefresh(pullRefreshState),
|
||||
) {
|
||||
LazyColumn(
|
||||
|
@ -241,13 +241,13 @@ class MultiCommunityScreen(
|
||||
modifier = Modifier
|
||||
.padding(padding)
|
||||
.fillMaxWidth()
|
||||
.let {
|
||||
.then(
|
||||
if (settings.hideNavigationBarWhileScrolling) {
|
||||
it.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
Modifier.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
} else {
|
||||
it
|
||||
Modifier
|
||||
}
|
||||
}
|
||||
)
|
||||
.nestedScroll(fabNestedScrollConnection)
|
||||
.pullRefresh(pullRefreshState),
|
||||
) {
|
||||
|
@ -281,13 +281,13 @@ class PostDetailScreen(
|
||||
},
|
||||
)
|
||||
Box(
|
||||
modifier = Modifier.padding(padding).let {
|
||||
modifier = Modifier.padding(padding).then(
|
||||
if (settings.hideNavigationBarWhileScrolling) {
|
||||
it.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
Modifier.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
} else {
|
||||
it
|
||||
Modifier
|
||||
}
|
||||
}.nestedScroll(fabNestedScrollConnection).pullRefresh(pullRefreshState),
|
||||
).nestedScroll(fabNestedScrollConnection).pullRefresh(pullRefreshState),
|
||||
) {
|
||||
LazyColumn(
|
||||
state = lazyListState
|
||||
@ -660,20 +660,19 @@ class PostDetailScreen(
|
||||
},
|
||||
content = {
|
||||
CommentCard(
|
||||
modifier = Modifier.background(MaterialTheme.colorScheme.background)
|
||||
.let {
|
||||
modifier = Modifier
|
||||
.background(MaterialTheme.colorScheme.background)
|
||||
.then(
|
||||
if (comment.id == commentIdToHighlight) {
|
||||
it.background(
|
||||
Modifier.background(
|
||||
MaterialTheme.colorScheme.surfaceColorAtElevation(
|
||||
5.dp
|
||||
).copy(
|
||||
alpha = 0.75f
|
||||
)
|
||||
).copy(alpha = 0.75f)
|
||||
)
|
||||
} else {
|
||||
it
|
||||
Modifier
|
||||
}
|
||||
},
|
||||
),
|
||||
comment = comment,
|
||||
isOp = comment.creator?.id == uiState.post.creator?.id,
|
||||
voteFormat = uiState.voteFormat,
|
||||
|
@ -121,6 +121,7 @@ class PostListScreen : Screen {
|
||||
val settings by settingsRepository.currentSettings.collectAsState()
|
||||
val keepScreenOn = rememberKeepScreenOn()
|
||||
val detailOpener = remember { getDetailOpener() }
|
||||
val connection = navigationCoordinator.getBottomBarScrollConnection()
|
||||
|
||||
LaunchedEffect(navigationCoordinator) {
|
||||
navigationCoordinator.onDoubleTabSelection.onEach { section ->
|
||||
@ -263,21 +264,19 @@ class PostListScreen : Screen {
|
||||
modifier = Modifier
|
||||
.padding(padding)
|
||||
.fillMaxWidth()
|
||||
.let {
|
||||
val connection = navigationCoordinator.getBottomBarScrollConnection()
|
||||
.then(
|
||||
if (connection != null && settings.hideNavigationBarWhileScrolling) {
|
||||
it.nestedScroll(connection)
|
||||
Modifier.nestedScroll(connection)
|
||||
} else {
|
||||
it
|
||||
Modifier
|
||||
}
|
||||
}
|
||||
.let {
|
||||
).then(
|
||||
if (settings.hideNavigationBarWhileScrolling) {
|
||||
it.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
Modifier.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
} else {
|
||||
it
|
||||
Modifier
|
||||
}
|
||||
}
|
||||
)
|
||||
.nestedScroll(fabNestedScrollConnection)
|
||||
.pullRefresh(pullRefreshState),
|
||||
) {
|
||||
|
@ -156,13 +156,13 @@ class ReportListScreen(
|
||||
},
|
||||
) { paddingValues ->
|
||||
Column(
|
||||
modifier = Modifier.padding(paddingValues).let {
|
||||
modifier = Modifier.padding(paddingValues).then(
|
||||
if (settings.hideNavigationBarWhileScrolling) {
|
||||
it.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
Modifier.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
} else {
|
||||
it
|
||||
Modifier
|
||||
}
|
||||
},
|
||||
),
|
||||
verticalArrangement = Arrangement.spacedBy(Spacing.s),
|
||||
) {
|
||||
SectionSelector(
|
||||
@ -186,13 +186,13 @@ class ReportListScreen(
|
||||
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.let {
|
||||
.then(
|
||||
if (settings.hideNavigationBarWhileScrolling) {
|
||||
it.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
Modifier.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
} else {
|
||||
it
|
||||
Modifier
|
||||
}
|
||||
}
|
||||
)
|
||||
.pullRefresh(pullRefreshState),
|
||||
) {
|
||||
LazyColumn(
|
||||
|
@ -69,17 +69,19 @@ internal fun InnerReportCard(
|
||||
onOptionSelected: ((OptionId) -> Unit)? = null,
|
||||
) {
|
||||
Box(
|
||||
modifier = modifier.let {
|
||||
modifier = modifier.then(
|
||||
if (postLayout == PostLayout.Card) {
|
||||
it.padding(horizontal = Spacing.xs)
|
||||
Modifier
|
||||
.padding(horizontal = Spacing.xs)
|
||||
.background(
|
||||
color = MaterialTheme.colorScheme.surfaceColorAtElevation(5.dp),
|
||||
shape = RoundedCornerShape(CornerSize.l),
|
||||
).padding(Spacing.s)
|
||||
)
|
||||
.padding(Spacing.s)
|
||||
} else {
|
||||
it.background(MaterialTheme.colorScheme.background)
|
||||
Modifier.background(MaterialTheme.colorScheme.background)
|
||||
}
|
||||
},
|
||||
),
|
||||
) {
|
||||
Column(
|
||||
verticalArrangement = Arrangement.spacedBy(Spacing.xs),
|
||||
|
@ -25,16 +25,19 @@ internal fun ReportCardPlaceHolder(
|
||||
postLayout: PostLayout = PostLayout.Card,
|
||||
) {
|
||||
Column(
|
||||
modifier = Modifier.let {
|
||||
modifier = Modifier.then(
|
||||
if (postLayout == PostLayout.Card) {
|
||||
it.padding(horizontal = Spacing.xs).background(
|
||||
color = MaterialTheme.colorScheme.surfaceColorAtElevation(5.dp),
|
||||
shape = RoundedCornerShape(CornerSize.l),
|
||||
).padding(Spacing.s)
|
||||
Modifier
|
||||
.padding(horizontal = Spacing.xs)
|
||||
.background(
|
||||
color = MaterialTheme.colorScheme.surfaceColorAtElevation(5.dp),
|
||||
shape = RoundedCornerShape(CornerSize.l),
|
||||
)
|
||||
.padding(Spacing.s)
|
||||
} else {
|
||||
it
|
||||
Modifier
|
||||
}
|
||||
},
|
||||
),
|
||||
verticalArrangement = Arrangement.spacedBy(Spacing.xs),
|
||||
) {
|
||||
Box(
|
||||
|
@ -166,13 +166,13 @@ class SavedItemsScreen : Screen {
|
||||
},
|
||||
) { paddingValues ->
|
||||
Column(
|
||||
modifier = Modifier.padding(paddingValues).let {
|
||||
modifier = Modifier.padding(paddingValues).then(
|
||||
if (settings.hideNavigationBarWhileScrolling) {
|
||||
it.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
Modifier.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
} else {
|
||||
it
|
||||
Modifier
|
||||
}
|
||||
}.nestedScroll(fabNestedScrollConnection),
|
||||
).nestedScroll(fabNestedScrollConnection),
|
||||
verticalArrangement = Arrangement.spacedBy(Spacing.s),
|
||||
) {
|
||||
SectionSelector(
|
||||
|
@ -365,13 +365,13 @@ class UserDetailScreen(
|
||||
},
|
||||
)
|
||||
Box(
|
||||
modifier = Modifier.padding(padding).let {
|
||||
modifier = Modifier.padding(padding).then(
|
||||
if (settings.hideNavigationBarWhileScrolling) {
|
||||
it.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
Modifier.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
} else {
|
||||
it
|
||||
Modifier
|
||||
}
|
||||
}.nestedScroll(fabNestedScrollConnection).pullRefresh(pullRefreshState),
|
||||
).nestedScroll(fabNestedScrollConnection).pullRefresh(pullRefreshState),
|
||||
) {
|
||||
LazyColumn(
|
||||
state = lazyListState,
|
||||
@ -385,7 +385,11 @@ class UserDetailScreen(
|
||||
user = uiState.user,
|
||||
autoLoadImages = uiState.autoLoadImages,
|
||||
onOpenImage = rememberCallbackArgs { url ->
|
||||
navigationCoordinator.pushScreen(ZoomableImageScreen(url))
|
||||
navigationCoordinator.pushScreen(
|
||||
ZoomableImageScreen(
|
||||
url
|
||||
)
|
||||
)
|
||||
},
|
||||
)
|
||||
SectionSelector(
|
||||
@ -402,7 +406,11 @@ class UserDetailScreen(
|
||||
1 -> UserDetailSection.Comments
|
||||
else -> UserDetailSection.Posts
|
||||
}
|
||||
model.reduce(UserDetailMviModel.Intent.ChangeSection(section))
|
||||
model.reduce(
|
||||
UserDetailMviModel.Intent.ChangeSection(
|
||||
section
|
||||
)
|
||||
)
|
||||
},
|
||||
)
|
||||
Spacer(modifier = Modifier.height(Spacing.m))
|
||||
@ -421,7 +429,9 @@ class UserDetailScreen(
|
||||
}
|
||||
}
|
||||
}
|
||||
items(uiState.posts, { it.id.toString() + it.updateDate }) { post ->
|
||||
items(
|
||||
uiState.posts,
|
||||
{ it.id.toString() + it.updateDate }) { post ->
|
||||
SwipeableCard(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
enabled = uiState.swipeActionsEnabled,
|
||||
@ -559,7 +569,10 @@ class UserDetailScreen(
|
||||
}
|
||||
},
|
||||
onOpenCommunity = rememberCallbackArgs { community, instance ->
|
||||
detailOpener.openCommunityDetail(community, instance)
|
||||
detailOpener.openCommunityDetail(
|
||||
community,
|
||||
instance
|
||||
)
|
||||
},
|
||||
onOpenCreator = rememberCallbackArgs { user, instance ->
|
||||
detailOpener.openUserDetail(user, instance)
|
||||
@ -623,7 +636,9 @@ class UserDetailScreen(
|
||||
}
|
||||
|
||||
OptionId.CrossPost -> {
|
||||
detailOpener.openCreatePost(crossPost = post)
|
||||
detailOpener.openCreatePost(
|
||||
crossPost = post
|
||||
)
|
||||
}
|
||||
|
||||
OptionId.SeeRaw -> {
|
||||
@ -642,8 +657,11 @@ class UserDetailScreen(
|
||||
)
|
||||
)
|
||||
} else {
|
||||
val screen = ShareBottomSheet(urls = urls)
|
||||
navigationCoordinator.showBottomSheet(screen)
|
||||
val screen =
|
||||
ShareBottomSheet(urls = urls)
|
||||
navigationCoordinator.showBottomSheet(
|
||||
screen
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@ -662,7 +680,8 @@ class UserDetailScreen(
|
||||
if (uiState.posts.isEmpty() && !uiState.loading) {
|
||||
item {
|
||||
Text(
|
||||
modifier = Modifier.fillMaxWidth().padding(top = Spacing.xs),
|
||||
modifier = Modifier.fillMaxWidth()
|
||||
.padding(top = Spacing.xs),
|
||||
textAlign = TextAlign.Center,
|
||||
text = stringResource(MR.strings.message_empty_list),
|
||||
style = MaterialTheme.typography.bodyLarge,
|
||||
@ -680,7 +699,9 @@ class UserDetailScreen(
|
||||
)
|
||||
}
|
||||
}
|
||||
items(uiState.comments, { it.id.toString() + it.updateDate }) { comment ->
|
||||
items(
|
||||
uiState.comments,
|
||||
{ it.id.toString() + it.updateDate }) { comment ->
|
||||
SwipeableCard(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
enabled = uiState.swipeActionsEnabled,
|
||||
@ -756,7 +777,9 @@ class UserDetailScreen(
|
||||
},
|
||||
onDismissToEnd = rememberCallback(model) {
|
||||
model.reduce(
|
||||
UserDetailMviModel.Intent.DownVoteComment(comment.id),
|
||||
UserDetailMviModel.Intent.DownVoteComment(
|
||||
comment.id
|
||||
),
|
||||
)
|
||||
},
|
||||
content = {
|
||||
@ -776,7 +799,9 @@ class UserDetailScreen(
|
||||
)
|
||||
},
|
||||
onImageClick = rememberCallbackArgs { url ->
|
||||
navigationCoordinator.pushScreen(ZoomableImageScreen(url))
|
||||
navigationCoordinator.pushScreen(
|
||||
ZoomableImageScreen(url)
|
||||
)
|
||||
},
|
||||
onDoubleClick = if (!uiState.doubleTapActionEnabled) {
|
||||
null
|
||||
@ -834,7 +859,10 @@ class UserDetailScreen(
|
||||
}
|
||||
},
|
||||
onOpenCommunity = rememberCallbackArgs { community, instance ->
|
||||
detailOpener.openCommunityDetail(community, instance)
|
||||
detailOpener.openCommunityDetail(
|
||||
community,
|
||||
instance
|
||||
)
|
||||
},
|
||||
onOpenCreator = rememberCallbackArgs { user, instance ->
|
||||
detailOpener.openUserDetail(user, instance)
|
||||
@ -892,7 +920,8 @@ class UserDetailScreen(
|
||||
if (uiState.comments.isEmpty() && !uiState.loading) {
|
||||
item {
|
||||
Text(
|
||||
modifier = Modifier.fillMaxWidth().padding(top = Spacing.xs),
|
||||
modifier = Modifier.fillMaxWidth()
|
||||
.padding(top = Spacing.xs),
|
||||
textAlign = TextAlign.Center,
|
||||
text = stringResource(MR.strings.message_empty_list),
|
||||
style = MaterialTheme.typography.bodyLarge,
|
||||
@ -907,7 +936,8 @@ class UserDetailScreen(
|
||||
model.reduce(UserDetailMviModel.Intent.LoadNextPage)
|
||||
} else {
|
||||
Row(
|
||||
modifier = Modifier.fillMaxWidth().padding(top = Spacing.s),
|
||||
modifier = Modifier.fillMaxWidth()
|
||||
.padding(top = Spacing.s),
|
||||
horizontalArrangement = Arrangement.Center,
|
||||
) {
|
||||
Button(
|
||||
|
Loading…
x
Reference in New Issue
Block a user