diff --git a/unit/instanceinfo/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/unit/instanceinfo/InstanceInfoScreen.kt b/unit/instanceinfo/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/unit/instanceinfo/InstanceInfoScreen.kt index 21e108a79..fa8dd09ba 100644 --- a/unit/instanceinfo/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/unit/instanceinfo/InstanceInfoScreen.kt +++ b/unit/instanceinfo/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/unit/instanceinfo/InstanceInfoScreen.kt @@ -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) diff --git a/unit/instanceinfo/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/unit/instanceinfo/InstanceInfoViewModel.kt b/unit/instanceinfo/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/unit/instanceinfo/InstanceInfoViewModel.kt index 4b1649e50..230bea7ac 100644 --- a/unit/instanceinfo/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/unit/instanceinfo/InstanceInfoViewModel.kt +++ b/unit/instanceinfo/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/unit/instanceinfo/InstanceInfoViewModel.kt @@ -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().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) {