mirror of
https://github.com/LiveFastEatTrashRaccoon/RaccoonForLemmy.git
synced 2025-02-02 02:46:49 +01:00
fix: community and user stats info (#467)
* fix: show count instead of score in PersonAggregates on Lemmy 0.19 * fix: community stats loading * enhancement: improve info screens layout closes #464
This commit is contained in:
parent
dfb0a8504f
commit
4e4c5103ea
@ -160,8 +160,8 @@ internal fun PersonView.toModel() = person.toModel().copy(
|
||||
)
|
||||
|
||||
internal fun PersonAggregates.toModel() = UserScoreModel(
|
||||
postScore = postScore ?: 0,
|
||||
commentScore = commentScore ?: 0,
|
||||
postScore = postScore ?: postCount,
|
||||
commentScore = commentScore ?: commentCount,
|
||||
)
|
||||
|
||||
internal fun PostView.toModel() = post.toModel().copy(
|
||||
|
@ -23,7 +23,6 @@ import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TopAppBar
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.collectAsState
|
||||
import androidx.compose.runtime.getValue
|
||||
@ -73,43 +72,40 @@ class CommunityInfoScreen(
|
||||
modifier = Modifier
|
||||
.background(MaterialTheme.colorScheme.background)
|
||||
.padding(
|
||||
top = Spacing.s,
|
||||
top = Spacing.m,
|
||||
start = Spacing.s,
|
||||
end = Spacing.s,
|
||||
bottom = Spacing.m,
|
||||
)
|
||||
.fillMaxHeight(0.9f)
|
||||
.fillMaxWidth(),
|
||||
verticalArrangement = Arrangement.spacedBy(Spacing.s),
|
||||
) {
|
||||
BottomSheetHandle(modifier = Modifier.align(Alignment.CenterHorizontally))
|
||||
|
||||
Scaffold(
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
title = {
|
||||
Row {
|
||||
Spacer(modifier = Modifier.weight(1f))
|
||||
Text(
|
||||
text = buildString {
|
||||
append(uiState.community.name)
|
||||
if (uiState.community.host.isNotEmpty()) {
|
||||
append("@${uiState.community.host}")
|
||||
}
|
||||
},
|
||||
style = MaterialTheme.typography.bodyLarge,
|
||||
color = MaterialTheme.colorScheme.onBackground,
|
||||
)
|
||||
Spacer(modifier = Modifier.weight(1f))
|
||||
}
|
||||
})
|
||||
},
|
||||
Row(
|
||||
modifier = Modifier.padding(top = Spacing.s),
|
||||
) {
|
||||
Spacer(modifier = Modifier.weight(1f))
|
||||
Text(
|
||||
text = buildString {
|
||||
append(uiState.community.name)
|
||||
if (uiState.community.host.isNotEmpty()) {
|
||||
append("@${uiState.community.host}")
|
||||
}
|
||||
},
|
||||
style = MaterialTheme.typography.bodyLarge,
|
||||
color = MaterialTheme.colorScheme.onBackground,
|
||||
)
|
||||
Spacer(modifier = Modifier.weight(1f))
|
||||
}
|
||||
}
|
||||
) { paddingValues ->
|
||||
LazyColumn(
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
.padding(paddingValues)
|
||||
.padding(top = Spacing.m),
|
||||
.padding(top = Spacing.xs, start = Spacing.m, end = Spacing.m),
|
||||
verticalArrangement = Arrangement.spacedBy(Spacing.s),
|
||||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
) {
|
||||
|
@ -32,8 +32,12 @@ class CommunityInfoViewModel(
|
||||
}.launchIn(this)
|
||||
|
||||
if (uiState.value.moderators.isEmpty()) {
|
||||
val community = communityRepository.get(id = communityId)
|
||||
if (community != null) {
|
||||
mvi.updateState { it.copy(community = community) }
|
||||
}
|
||||
val moderators = communityRepository.getModerators(
|
||||
id = communityId
|
||||
id = communityId,
|
||||
)
|
||||
mvi.updateState { it.copy(moderators = moderators) }
|
||||
}
|
||||
|
@ -170,7 +170,7 @@ class InstanceInfoScreen(
|
||||
.pullRefresh(pullRefreshState),
|
||||
) {
|
||||
LazyColumn(
|
||||
modifier = Modifier.padding(top = Spacing.m),
|
||||
modifier = Modifier.padding(top = Spacing.xs, start = Spacing.m, end = Spacing.m),
|
||||
state = listState,
|
||||
verticalArrangement = Arrangement.spacedBy(Spacing.xs),
|
||||
) {
|
||||
|
@ -21,7 +21,6 @@ import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TopAppBar
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.collectAsState
|
||||
import androidx.compose.runtime.getValue
|
||||
@ -82,36 +81,33 @@ class UserInfoScreen(
|
||||
)
|
||||
.fillMaxHeight(0.9f)
|
||||
.fillMaxWidth(),
|
||||
verticalArrangement = Arrangement.spacedBy(Spacing.s),
|
||||
) {
|
||||
BottomSheetHandle(modifier = Modifier.align(Alignment.CenterHorizontally))
|
||||
|
||||
Scaffold(
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
title = {
|
||||
Row {
|
||||
Spacer(modifier = Modifier.weight(1f))
|
||||
Text(
|
||||
text = buildString {
|
||||
append(uiState.user.name)
|
||||
if (uiState.user.host.isNotEmpty()) {
|
||||
append("@${uiState.user.host}")
|
||||
}
|
||||
},
|
||||
style = MaterialTheme.typography.bodyLarge,
|
||||
color = MaterialTheme.colorScheme.onBackground,
|
||||
)
|
||||
Spacer(modifier = Modifier.weight(1f))
|
||||
}
|
||||
})
|
||||
},
|
||||
Row(
|
||||
modifier = Modifier.padding(top = Spacing.s),
|
||||
) {
|
||||
Spacer(modifier = Modifier.weight(1f))
|
||||
Text(
|
||||
text = buildString {
|
||||
append(uiState.user.name)
|
||||
if (uiState.user.host.isNotEmpty()) {
|
||||
append("@${uiState.user.host}")
|
||||
}
|
||||
},
|
||||
style = MaterialTheme.typography.bodyLarge,
|
||||
color = MaterialTheme.colorScheme.onBackground,
|
||||
)
|
||||
Spacer(modifier = Modifier.weight(1f))
|
||||
}
|
||||
}
|
||||
) { paddingValues ->
|
||||
LazyColumn(
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
.padding(paddingValues)
|
||||
.padding(top = Spacing.m, start = Spacing.m, end = Spacing.m),
|
||||
.padding(top = Spacing.xs, start = Spacing.m, end = Spacing.m),
|
||||
verticalArrangement = Arrangement.spacedBy(Spacing.s),
|
||||
) {
|
||||
item {
|
||||
|
Loading…
x
Reference in New Issue
Block a user