mirror of
https://github.com/LiveFastEatTrashRaccoon/RaccoonForLemmy.git
synced 2025-02-08 18:38:40 +01:00
fix: instance info screen community list (#709)
This commit is contained in:
parent
f14eeaefb9
commit
35e60cac79
@ -7,7 +7,6 @@ import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.foundation.lazy.LazyColumn
|
||||
@ -166,14 +165,13 @@ class InstanceInfoScreen(
|
||||
.pullRefresh(pullRefreshState),
|
||||
) {
|
||||
LazyColumn(
|
||||
modifier = Modifier.padding(top = Spacing.xs, start = Spacing.m, end = Spacing.m),
|
||||
modifier = Modifier.padding(top = Spacing.xs, start = Spacing.s, end = Spacing.s),
|
||||
state = listState,
|
||||
verticalArrangement = Arrangement.spacedBy(Spacing.xs),
|
||||
verticalArrangement = Arrangement.spacedBy(Spacing.s),
|
||||
) {
|
||||
item {
|
||||
CustomizedContent(ContentFontClass.Title) {
|
||||
Column(
|
||||
modifier = Modifier.padding(horizontal = Spacing.s),
|
||||
verticalArrangement = Arrangement.spacedBy(Spacing.s),
|
||||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
) {
|
||||
@ -191,21 +189,25 @@ class InstanceInfoScreen(
|
||||
color = MaterialTheme.colorScheme.onBackground,
|
||||
)
|
||||
}
|
||||
Spacer(modifier = Modifier.height(Spacing.xxxs))
|
||||
Text(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
text = LocalXmlStrings.current.instanceDetailCommunities,
|
||||
style = MaterialTheme.typography.titleMedium,
|
||||
color = MaterialTheme.colorScheme.onBackground,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
item {
|
||||
Text(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
text = LocalXmlStrings.current.instanceDetailCommunities,
|
||||
style = MaterialTheme.typography.titleMedium,
|
||||
color = MaterialTheme.colorScheme.onBackground,
|
||||
)
|
||||
}
|
||||
|
||||
if (uiState.communities.isEmpty()) {
|
||||
items(5) {
|
||||
CommunityItemPlaceholder()
|
||||
}
|
||||
}
|
||||
|
||||
items(uiState.communities) { community ->
|
||||
CommunityItem(
|
||||
modifier = Modifier.onClick(
|
||||
@ -217,8 +219,10 @@ class InstanceInfoScreen(
|
||||
autoLoadImages = uiState.autoLoadImages,
|
||||
preferNicknames = uiState.preferNicknames,
|
||||
showSubscribers = true,
|
||||
noPadding = true,
|
||||
)
|
||||
}
|
||||
|
||||
item {
|
||||
if (!uiState.loading && !uiState.refreshing && uiState.canFetchMore) {
|
||||
model.reduce(InstanceInfoMviModel.Intent.LoadNextPage)
|
||||
|
@ -5,7 +5,6 @@ import com.github.diegoberaldin.raccoonforlemmy.core.architecture.DefaultMviMode
|
||||
import com.github.diegoberaldin.raccoonforlemmy.core.notifications.NotificationCenter
|
||||
import com.github.diegoberaldin.raccoonforlemmy.core.notifications.NotificationCenterEvent
|
||||
import com.github.diegoberaldin.raccoonforlemmy.core.persistence.repository.SettingsRepository
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.SearchResult
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.SortType
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.repository.CommunityRepository
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.repository.GetSortTypesUseCase
|
||||
@ -99,13 +98,13 @@ class InstanceInfoViewModel(
|
||||
page = currentPage,
|
||||
sortType = currentState.sortType,
|
||||
limit = 50,
|
||||
).filterIsInstance<SearchResult.Community>().let {
|
||||
).let {
|
||||
if (refreshing) {
|
||||
it
|
||||
} else {
|
||||
// prevents accidental duplication
|
||||
it.filter { c1 ->
|
||||
currentState.communities.none { c2 -> c1.model.id == c2.id }
|
||||
currentState.communities.none { c2 -> c1.id == c2.id }
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -113,8 +112,8 @@ class InstanceInfoViewModel(
|
||||
currentPage++
|
||||
}
|
||||
val itemsToAdd = itemList.filter { e ->
|
||||
e.model.instanceUrl == url
|
||||
}.map { it.model }
|
||||
e.instanceUrl == url
|
||||
}
|
||||
updateState {
|
||||
it.copy(
|
||||
communities = if (refreshing) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user